האם אפשר לעשות עיצוב מותנה לפקד באקסס?
- 
@אוריי אתה יכול בארוע הטעינה של הטופס להריץ לולאה על הטבלה ולשנות את הצבע של כל פקד בטופס שמסומן. 
- 
@OdedDvir 
 שם הטבלה: ShelfCharacteristics
 שם שדה של מספרי פקדים : ShelfNumber
 שם שדה של תיבות סימון בטבלה: ClosedShelf
- 
@אוריי תוסיף את הקוד הבא לטופס (הופך את צבע הקידמה של הפקד לאדום): Private Sub SetColors() Dim rs As DAO.Recordset Set rs = CurrentDb.OpenRecordset("SELECT * FROM ShelfCharacteristics WHERE ClosedShelf=True", dbOpenSnapshot, dbReadOnly) rs.MoveFirst While Not rs.EOF Me.Controls(CStr(rs!ShelfNumber)).ForeColor = vbRed rs.MoveNext Wend rs.Close End Sub Private Sub Form_Load() SetColors End Sub
- 
@אוריי תוסיף את הקוד הבא לטופס (הופך את צבע הקידמה של הפקד לאדום): Private Sub SetColors() Dim rs As DAO.Recordset Set rs = CurrentDb.OpenRecordset("SELECT * FROM ShelfCharacteristics WHERE ClosedShelf=True", dbOpenSnapshot, dbReadOnly) rs.MoveFirst While Not rs.EOF Me.Controls(CStr(rs!ShelfNumber)).ForeColor = vbRed rs.MoveNext Wend rs.Close End Sub Private Sub Form_Load() SetColors End Sub
- 
@אוריי יש לך כנראה כבר קוד עבור הארוע Form_Load 
 פשוט תוסיף רק את הקוד של הפונקציה הראשונה SetColors() שבשורות 1-10, ואת השאר לא, ותוסיף לפונקציה Form_Load הקיימת בטופס את הקריאה שבשורה 13
- 
@אוריי יש לך כנראה כבר קוד עבור הארוע Form_Load 
 פשוט תוסיף רק את הקוד של הפונקציה הראשונה SetColors() שבשורות 1-10, ואת השאר לא, ותוסיף לפונקציה Form_Load הקיימת בטופס את הקריאה שבשורה 13
- 
@אוריי תוסיף את הקוד הבא לטופס (הופך את צבע הקידמה של הפקד לאדום): Private Sub SetColors() Dim rs As DAO.Recordset Set rs = CurrentDb.OpenRecordset("SELECT * FROM ShelfCharacteristics WHERE ClosedShelf=True", dbOpenSnapshot, dbReadOnly) rs.MoveFirst While Not rs.EOF Me.Controls(CStr(rs!ShelfNumber)).ForeColor = vbRed rs.MoveNext Wend rs.Close End Sub Private Sub Form_Load() SetColors End Sub
- 
@אוריי אתה צריך לקרוא לפונקציה SetColors() אחרי כל עדכון של הטבלה. 
 ראשית תשנה את הפונקציה לציבורית, כדי שתוכל לקרוא לה מטופס אחר:Public Sub SetColors() .....אחר כך תוסיף לטופס שבו נמצאת הטבלה את הארוע After_Apdate() ושם תקרא לפונקציה של הטופס: Private Sub After_Update() Forms("<form-name>").SetColors() End Sub
- 
@אוריי אתה צריך לקרוא לפונקציה SetColors() אחרי כל עדכון של הטבלה. 
 ראשית תשנה את הפונקציה לציבורית, כדי שתוכל לקרוא לה מטופס אחר:Public Sub SetColors() .....אחר כך תוסיף לטופס שבו נמצאת הטבלה את הארוע After_Apdate() ושם תקרא לפונקציה של הטופס: Private Sub After_Update() Forms("<form-name>").SetColors() End Sub
- 
@אוריי אתה צריך לקרוא לפונקציה SetColors() אחרי כל עדכון של הטבלה. 
 ראשית תשנה את הפונקציה לציבורית, כדי שתוכל לקרוא לה מטופס אחר:Public Sub SetColors() .....אחר כך תוסיף לטופס שבו נמצאת הטבלה את הארוע After_Apdate() ושם תקרא לפונקציה של הטופס: Private Sub After_Update() Forms("<form-name>").SetColors() End Sub
- 
@OdedDvir 
 סליחה אבל לא הבנתי מה לעשות בדיוק
 א. איך להפוך לציבורית
 ב. האם אני אמור לשנות את זה?("<form-name>")
- 
@אוריי אמר בהאם אפשר לעשות עיצוב מותנה לפקד באקסס?: א. איך להפוך לציבורית רשמתי לך למעלה (לשנות את המילה Private למילה Public) ב. האם אני אמור לשנות את זה? כן, תכניס שם את שם הטופס שמכיל את הפקדים, למשל: Forms("Shelves").SetColors()
- 
@אוריי זו שגיאה כי הקומפיילר לא מזהה את הפונקציה. 
 תוכל לעקוף את השגיאה על ידיForms("as").Form.SetColors()או על ידי Forms!as.SetColors()
 




