שגיאה 2108 VBA אקסס
-
יש לי תופעה מעניינת כאשר אני בודק באירוע לפני עדכון שם שדה האם הוא ריק או לא ורק אז ניתן להמשיך הלאה.
כאשר השדה הנבדק הינו שדה ריק אני רושם CANCEL=TRUE ומבקש לתת פוקוס לשדה אחר (במקרה הזה זהו שדה של תאריך).
הבעיה כאשר הקוד מגיע לשורה של הפוקוס אני מקבל את השגיאה RUNTIME 2108.
לאחר מחשבה וחיפוש מצאתי שיש לבטל את השינוי שעשיתי.
להלן דוגמא שמצאתי באינטרנט:להלן הקוד שכתבתי.
Private Sub RemindTime_BeforeUpdate(Cancel As Integer) If Nz(Me!RemindDate, 0) = 0 Then MsgBox "לא נבחר תאריך" & vbNewLine & "אנא בחר תאריך והמשך", vbMsgBoxRtlReading + vbMsgBoxRight, MsgDisplay Me!RemindTime.Undo Cancel = True Me!RemindDate.SetFocus 'Me!RemindDate.BackColor = vbYellow Exit Sub End If End Sub
מה לא נכון בקוד??
אולי משהו נתקל במקרה כזה??תודה לעוזרים.
פורסם במקור בפורום CODE613 ב19/07/2015 14:42 (+03:00)
-
מצחיק.....
חשבתי שאתה מדבר איתי על "לפני עידכון" של טופס.אתה לא יכול לעשות ב"לפני עידכון" של פקד cancel ואז להעביר מוקד לפקד אחר. כי הביטול שלך גורם לאקסס לחייב את המשתמש להישאר בפקד הזה, ולתקן את הבעייה. לא לצאת ממנו!!!!!
תוריד את שורה מספר 6.
ובכלל, לא ברור לי למה לבטל את השינויים בשורה 5? ואם כתבתי שעה לפני התאריך אז המתכנת צריך להיות נודניק ולחייב אותי להזין קודם את התאריך???
הייתי מוריד גם את השורה הזו.לפני עידכון של הרשומה תבדוק שיש גם תאריך וגם שעה.
פורסם במקור בפורום CODE613 ב21/07/2015 08:37 (+03:00)