האם אפשר לעשות עיצוב מותנה לפקד באקסס?
-
@אוריי אמר בהאם אפשר לעשות עיצוב מותנה לפקד באקסס?:
א. איך להפוך לציבורית
רשמתי לך למעלה (לשנות את המילה Private למילה Public)
ב. האם אני אמור לשנות את זה?
כן, תכניס שם את שם הטופס שמכיל את הפקדים, למשל:
Forms("Shelves").SetColors()
-
@אוריי אההה, זו לא באמת שגיאה, אלא מוגבלות של השפה:
תשנה את הקוד ל:Forms!as.SetColors או Forms("as").Form.SetColors דהיינו בלי סוגריים, או אם דווקא אתה רוצה סוגריים תוסיף את המילה Call בהתחלה
Call Forms("as").Form.SetColors()
-
@OdedDvir
משום מה לא מצליח
יכול להיות שאני לא כותב את זה במקום הנכון
אני אסביר מה יש לי ואיפה אני כותב כעת
לי יש שאילתה לפי מס' מדף השאילתה מוצגת בתוך טופס והטופס הזה בתוך טופס אחר
אני ניסתי לכתוב את זה באירוע לאחר עידכון של הטופס האמצעי (המקשר בין השאילתה לטופס המוצג)
ושם כתבתי כךPrivate Sub Form_AfterUpdate() Call Forms("as").Form.SetColors End Sub וזה לא עובד.
-
@אוריי הקוד צריך להמצא בטופס שמציג את השאילתא על ShelfCharacteristics
העובדה שהטופס הנ"ל נמצא בעוד טופס אחר לא משנה.י יש שאילתה לפי מס' מדף השאילתה מוצגת בתוך טופס
נקרא לו A
והטופס הזה בתוך טופס אחר
נקרא לו B
הקוד צריך להיות בטופס A
-
@אוריי זה בגלל שמעיקרא הפונקציה סורקת רק את הפקדים שמסומנים
אפשר לשנות שתסרוק הכל ולעדכן את כולם, כךPublic Sub SetColors() Dim rs As DAO.Recordset Set rs = CurrentDb.OpenRecordset("ShelfCharacteristics", dbOpenSnapshot, dbReadOnly) rs.MoveFirst While Not rs.EOF If rs!ClosedShelf Then Me.Controls(CStr(rs!ShelfNumber)).ForeColor = vbRed Else Me.Controls(CStr(rs!ShelfNumber)).ForeColor = vbBlack End If rs.MoveNext Wend rs.Close End Sub -
תוכל להוסיף בין שורה 1 לשורה 2 את הקוד
On Error Resume Next
שזה אומר להתעלם מכל השגיאות בפונקציה.
שים לב, לא הייתי משתמש בקוד כזה כלל בגרסת הפצה של תוכנה, כי באופן כללי זה דבר לא מומלץ להתעלם משגיאות בלי הבחנה, והנכון הוא לטפל בכל שגיאה לפי הקוד שלה.
אבל זה כבר נושא בפני עצמו.
למקרה שלך שבה הפונקציה רק משנה עיצוב - זה לא נורא...
21/40