אקסס 2007 VBA..בעיה עם SETFOCUS

  • פותח הנושא ub65
  • פורסם בתאריך

ub65

New member
אקסס 2007 VBA..בעיה עם SETFOCUS

הי,
משום מה ב SUBFORM מנסה לבדוק אם תאריך תחילת תקופה הוזן לפני שמזינים תאריך סוף תקופה, אם כן מנסה להחזיר את הפוקוס לתאריך ההתחלה.
מ
שום מה האקסס נותן שגיאה בפונקציה של הsetfocus....
Private Sub mainList_todate_BeforeUpdate(Cancel As Integer)
If Nz(Me.fromdate) = "" Then
MsgBox "éù ìäæéï úàøéê úçéìú ú÷åôä", vbCritical, "òãëåï ôòåìä"
Form_mainForm.fromdate.SetFocus
Cancel = True

Else
If Me.todate < Forms!mainform.fromdate Then
MsgBox "úàøéê çåøâ îú÷åôú äîç÷ø", vbCritical, "úàøéê ùâåé"
Cancel = True
End If
End If
End Sub
 

ub65

New member
השגיאה בפונקציה של setfocus

לא ניתן לעבור לאובייקט...
תודה !
 

כלליים

New member
אולי ...

לא בדקתי ואינני זוכר, אבל תתכן בעיה כזו:
בשגרה BeforeUpdate אי אפשר לעשות פוקוס לפקד אחר, כי מעבר לפקד אחר מצית את השגרה BeforeUpdate ...
פתרונות: נסה לעשות Undo לפקד, ואולי אז תוכל לעבור לפקד אחר.
אם גם זה לא עוזר, את הפוקוס לפקד אחר תעשה בשגרה AfterUpdate.

חזור לדווח...
 

ub65

New member
לפי כל הנסיונות ...זה כנראה קשור להפניה...

ז"א מתוך הSUBFORM אני כן מצליח לעשות פוקוס לשדה בטופס הראשי.
הבעיה היא לעשות פוקוס משדה לשדה בתוך הטופס משנה, לא משנה באיזה אירוע....
 

ub65

New member
משהו מוזר....

פתחתי את הטופס משנה (בעיצוב ישירות...) ומתברר שהפונ' SETFOCUS מתאפשרת רק אם אני מפנה את הפוקוס לשדה טקסט ולא לשדה תאריך.
בזמן הכתיבה האפיין שמתאפשר להוסיף לשדה התאריך זה רק הערך, בשאר השדות נותן את כל המאפיינים....
 

כלליים

New member
כדאי שתצרף את הקובץ

התופעה שתארת, שלפקד יש רק מאפיין VALUE, נגרמה כנראה בגלל שלשדה ולתיבת הטקסט אין שם זהה.
 

ub65

New member
שיחקת אותה...איך לא שמתי לב לשם השדה...


 

ub65

New member
כללים...לידיעה כללית ...שימוש ב BETWEEN

כן עובד כמו שחשבתי...(בכ"ז זכרתי למרות הגיל
.. )
בתוך תנאי לכלל אימות לשדה תאריך, ולא רק בשאילתה.
 

כלליים

New member
נכון

הסיבה פשוטה: כללי האימות, מורצים ע"י צד השרת, והם משפטי SQL לכל דבר.
VBA מורץ בצד הלקוח, והוא איננו מכיר את האופרטור הזה.
 
למעלה