Applies ToAccess של Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

במאמר זה

סדר האירועים של פקדים בטפסים

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

הערה: Microsoft Office Access מציג שמות אירועים בצורה שונה מעט בעורך Visual Basic לעומת גליון המאפיינים ובונה המאקרו. לדוגמה, אירוע שנקרא On Got Focus בגליון המאפיינים של הטופס ובבונה המאקרו, נקרא GotFocus בעורך Visual Basic. הדוגמאות במאמר זה משתמשות בתבנית Visual Basic for Applications ‏(VBA) עבור שמות אירועים.

העברת המוקד לפקד

בעת העברת המוקד לפקד בטופס (לדוגמה, על-ידי פתיחת טופס המכיל פקד פעיל אחד או יותר, או על-ידי העברת המוקד לפקד אחר באותו טופס), מתרחשים האירועים Enter ו- GotFocus בסדר זה:

Enter חץ GotFocus

בעת פתיחת טופס, האירועים Enter ו- GotFocus מתרחשים אחרי האירועים המשויכים לפתיחת הטופס (כגון Open,‏ Activate ו- Current), באופן הבא:

פתח (טופס) חץהפעל (טופס) חץנוכחי (טופס) חץEnter (control) חץGotFocus (control)

כאשר המוקד עוזב את הפקד בטופס (לדוגמה, בעת סגירת טופס המכיל פקד פעיל אחד או יותר, או בעת מעבר לפקד אחר באותו טופס), האירועים Exit ו- LostFocus מתרחשים בסדר זה:

יציאה חץ LostFocus

בעת סגירת טופס, האירועים Exit ו- LostFocus מתרחשים לפני האירועים המשויכים לסגירת הטופס (כגון Unload,‏ Deactivate ו- Close), באופן הבא:

Exit (control) חץLostFocus (control) חץUnload (form) חץDeactivate (form) חץClose (form)

שינוי ועדכון נתונים בפקד

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

BeforeUpdate חץ Afte rUpdate

האירועים Exit ו- LostFocus עבור פקד ששינויי הערך שלהם מתרחשים אחרי האירועים BeforeUpdate ו- AfterUpdate:

BeforeUpdate חץ AfterUpdate חץ Exit חץ LostFocus

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

KeyDown חץ KeyPress חץ Dirty חץ change חץ KeyUp

האירוע NotInList מתרחש לאחר הזנת ערך בתיבה משולבת שלא נמצאת ברשימת התיבות המשולבות וניסיון להעביר את המוקד לפקד אחר או לרשומה אחרת. האירוע NotInList מתרחש אחרי אירועי לוח המקשים ואירועי Change עבור התיבה המשולבת, אך לפני האירועים עבור כל פקד אחר או טופס. אם המאפיין LimitToList של התיבה המשולבת מוגדר כ- Yes, האירוע Error עבור הטופס מתרחש מיד אחרי האירוע NotInList:

KeyDown חץ KeyPress חץ Dirty חץ Change חץ KeyUp חץ NotInList 0 Error

לראש הדף

סדר האירועים של רשומות בטפסים

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

העברת המוקד לרשומות ועדכון נתונים ברשומות

בעת העברת המוקד לרשומה קיימת בטופס, הזן או שנה נתונים ברשומה ולאחר מכן העבר את המוקד לרשומה אחרת, מתרחש רצף האירועים הבא עבור הטופס:

שם נוכחי (טופס) חץBeforeUpdate (טופס) חץAfterUpdate (form) חץנוכחי (טופס)

במהלך היציאה מהרשומה שהנתונים שלה השתנו, אך לפני הכניסה לרשומה הבאה, מתרחשים האירועים Exit ו- LostFocus עבור הפקד שהמוקד נמצא בו. אירועים אלה מתרחשים אחרי האירועים BeforeUpdate ו- AfterUpdate עבור הטופס, באופן הבא:

BeforeUpdate (form) חץAfterUpdate (form) חץExit (control) חץLostFocus (control) חץCurrent (form)

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

  • פתיחת טופס ושינוי נתונים בפקד:

    Current (form) חץEnter (control) חץGotFocus (control) חץBeforeUpdate (control) חץAfterUpdate (control)

  • העברת המוקד לפקד אחר:

    Exit (control1) חץLostFocus (control1) חץEnter (control2) חץGotFocus (control2)

  • העברת המוקד לרשומה אחרת:

    BeforeUpdate (form) חץAfterUpdate (form) חץExit (control2) חץLostFocus (control2) חץCurrent (form)

מחיקת רשומות

בעת מחיקת רשומה, מתרחשים האירועים הבאים עבור הטופס ו- Microsoft Office Access מציג תיבת דו-שיח המבקשת ממך לאשר את המחיקה:

Delete חץ BeforeDelConfirm חץ AfterDelConfirm

אם תבטל את האירוע Delete, האירועים BeforeDelConfirm ו- AfterDelConfirm לא יתרחשו ותיבת הדו-שיח לא תוצג.

יצירת רשומה חדשה

בעת העברת המוקד לרשומה חדשה (ריקה) בטופס ולאחר מכן יצירת רשומה חדשה על-ידי הקלדת נתונים בפקד, מתרחש רצף האירועים הבא:

Current (form) חץEnter (control) חץGotFocus (control) חץBeforeInsert (form) חץAfterInsert (form)

האירוע BeforeInsert (טופס) מופעל ברגע שאתה מתחיל להקליד בפקד. האירוע AfterInsert (form) מופעל לאחר שאתה עוזב את הרשומה.

האירועים BeforeUpdate ו- AfterUpdate עבור הפקדים בטופס ועבור הרשומה החדשה מתרחשים אחרי האירוע BeforeInsert ולפני האירוע AfterInsert.

לראש הדף

סדר האירועים של טפסים וטפסי משנה

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

פתיחה וסגירה של טופס

בעת פתיחת טופס, מתרחש רצף האירועים הבא עבור הטופס:

פתיחת חץ טעינה חץ שינוי גודל חץהפעלת חץהנוכחי

אם לא קיימים פקדים פעילים בטופס, האירוע GotFocus מתרחש עבור הטופס אחרי האירוע Activate אך לפני האירוע Current.

בעת סגירת טופס, מתרחש רצף האירועים הבא עבור הטופס:

ביטול טעינה חץ ביטול חץ סגירה

אם לא קיימים פקדים פעילים בטופס, האירוע LostFocus מתרחש עבור הטופס אחרי האירוע Unload אך לפני האירוע Deactivate.

מעבר בין טפסים

בעת מעבר בין שני טפסים פתוחים, האירוע Deactivate מתרחש עבור הטופס הראשון והאירוע Activate מתרחש עבור הטופס השני:

Deactivate (form1) חץActivate (form2)

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

הערה:  האירוע Open לא מתרחש בעת העברת המוקד לטופס שהנו כבר פתוח, גם אם העברת את המוקד לאותו טופס על-ידי ביצוע הפעולה OpenForm.

עבודה עם נתונים בטופס

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

פתח (טופס) חץטעינה (טופס) חץשינוי גודל (טופס ) חץהפעל (טופס) חץנוכחי (טופס) חץEnter (פקד)0 GotFocus (control)

בדומה, בעת סגירת טופס, מתרחש רצף האירועים הבא:

Exit (control) חץLostFocus (control) חץUnload (form) חץDeactivate (form) חץClose (form)

אם שינית נתונים בפקד, האירועים BeforeUpdate ו- AfterUpdate עבור הפקד והטופס מתרחשים לפני האירוע Exit עבור הפקד.

עבודה עם טפסי משנה

בעת פתיחת טופס המכיל טופס משנה, טופס המשנה והרשומות שלו נטענים לפני הטופס הראשי. לכן, האירועים עבור טופס המשנה והפקדים שלו (כגון Open,‏ Current,‏ Enter ו- GotFocus) מתרחשים לפני האירועים עבור הטופס. עם זאת, האירוע Activate לא מתרחש עבור טפסי משנה. לכן, פתיחת טופס ראשי מפעילה אירוע Activate עבור הטופס הראשי בלבד.

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

  1. אירועים עבור פקדי טופס המשנה (כגון Exit ו- LostFocus)

  2. אירועים עבור פקדי הטופס (כולל פקד טופס המשנה)

  3. אירועים עבור הטופס (כגון Deactivate ו- Close)

  4. אירועים עבור טופס המשנה

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

לראש הדף

סדר האירועים של הקשות ולחיצות עכבר

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

אירועי לוח מקשים

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

KeyDown חץ KeyPress חץ KeyUp

בעת הקשה על מקש ושחרורו או שליחת הקשה בערכת תווי ANSI, מתרחשים כל האירועים KeyDown, ‏KeyPress ו- KeyUp. אם אתה מחזיק את מקש ANSI לחוץ, האירועים KeyDown ו- KeyPress מתחלפים שוב ושוב (KeyDown, ‏KeyPress,‏ KeyDown,‏ KeyPressוכן הלאה) עד שתשחרר את המקש; לאחר מכן יתרחש האירוע KeyUp.

אם אתה מקיש על מקש שאינו ANSI ומשחרר אותו, מתרחשים האירועים KeyDown ו- KeyUp. אם אתה מחזיק מקש שאינו ANSI לחוץ, האירוע KeyDown מתרחש שוב ושוב עד לשחרור המקש ולאחר מכן יתרחש האירוע KeyUp.

אם הקשה על מקש מפעילה אירוע אחר עבור פקד, אירוע זה מתרחש אחרי האירוע KeyPress אך לפני האירוע KeyUp. לדוגמה, אם הקשה משנה את הטקסט בתיבת טקסט, אשר מפעיל את האירוע Change, מתרחש רצף האירועים הבא:

KeyDown חץ KeyPress חץ KeyPress חץ KeyUp

אם הקשה גורמת למוקד לעבור מפקד אחד לפקד אחר, האירוע KeyDown מתרחש עבור הפקד הראשון, בעוד האירועים KeyPress ו- KeyUp מתרחשים עבור הפקד השני. לדוגמה, אם תשנה נתונים בפקד ולאחר מכן תקיש על מקש TAB כדי לעבור לפקד הבא, יתרחשו רצפי האירועים הבאים:

  • פקד ראשון:

    KeyDown חץ BeforeUpdate חץ AfterUpdate חץ Exit חץ LostFocus

  • פקד שני:

    Enter חץ GotFocus חץ KeyPress חץ KeyUp

אירועי עכבר

בעת לחיצה על לחצן עכבר ושחרורו בזמן שמצביע העכבר נמצא על פקד בטופס, מתרחש רצף האירועים הבא עבור הפקד:

MouseDown חץ MouseUp חץ לחיצה

אם המוקד נמצא על פקד ואתה לוחץ על פקד אחר כדי להעביר את המוקד לפקד שני זה, מתרחש רצף האירועים הבא:

  • פקד ראשון:

    יציאה חץ LostFocus

  • פקד שני:

    Enter חץ GotFocus חץ MouseDown חץ MouseUp חץ לחיצה

אם אתה עובר לרשומה אחרת ולאחר מכן לוחץ על פקד, האירוע Current עבור הטופס מתרחש גם לפני האירוע Enter עבור הפקד.

לחיצה כפולה על פקד גורמת הן לאירוע Click והן לאירוע DblClick להתרחש. לדוגמה, בעת לחיצה כפולה על פקד שאינו לחצן פקודה, מתרחש רצף האירועים הבא עבור הפקד:

MouseD own חץ MouseUp חץ לחיצה חץ DblClick חץ MouseUp

בעת לחיצה כפולה על לחצן פקודה, מתרחש רצף האירועים הקודם, ולאחר מכן מתרחש האירוע השני Click.

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

לראש הדף

סדר האירועים של דוחות ומקטעי דוחות

אירועים מתרחשים עבור דוחות ומקטעי דוחות בעת פתיחת דוח כדי להדפיסו, לסגור אותו או להציג אותו בתצוגה מקדימה.

אירועים עבור דוחות

בעת פתיחת דוח כדי להדפיסו או להציג אותו בתצוגה מקדימה ולאחר מכן לסגור אותו או לעבור לכרטיסיית אובייקטים אחרת ב- Access, מתרחש רצף האירועים הבא עבור הדוח:

פתיחת חץ הפעלת חץ ביטול הפעלה חץ הפעלה

בעת מעבר בין שני דוחות פתוחים, האירוע Deactivate מתרחש עבור הדוח הראשון והאירוע Activate מתרחש עבור הדוח השני:

Deactivate (report1) חץActivate (report2)

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

בעת פתיחת דוח המבוסס על שאילתה, Access מפעיל את האירוע Open עבור הדוח לפני הפעלת השאילתה המשמשת כבסיס. כתוצאה מכך, ניתן להגדיר את הקריטריונים עבור הדוח באמצעות הליך מאקרו או אירוע המגיב לאירוע Open. לדוגמה, הליך המאקרו או האירוע יכולים לפתוח תיבת דו-שיח מותאמת אישית שבה תזין קריטריונים לדוח.

אירועים עבור מקטעי דוחות

בעת הדפסת דוח או הצגתו בתצוגה מקדימה, האירועים Format ו- Print מתרחשים עבור מקטעי הדוח אחרי האירועים Open ו- Activate עבור הדוח ולפני האירועים Close או Deactivate של הדוח:

פתח (דוח) חץהפעל(דוח) חץעיצוב (מקטע דוח) חץהדפס ( מקטע דוח) חץסגור (דוח) חץבטל הפעלה (דוח)

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

בנוסף, האירועים הבאים עשויים להתרחש במהלך עיצוב או אחרי עיצוב, אך לפני האירוע Print:

  • האירוע Retreat מתרחש כאשר Access חוזר למקטע קודם במהלך עיצוב דוח.

  • האירוע NoData מתרחש אם בדוח לא מוצגות רשומות.

  • האירוע Page מתרחש לאחר עיצוב אך לפני הדפסה. ניתן להשתמש באירוע זה כדי להתאים אישית את המראה של הדוח המודפס.

לראש הדף

זקוק לעזרה נוספת?

מעוניין באפשרויות נוספות?

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

קהילות עוזרות לך לשאול שאלות ולהשיב עליהן, לתת משוב ולשמוע ממומחים בעלי ידע עשיר.