Az EseményMegszakítása művelettel megszakíthatja azt az eseményt, amelynek hatására az Access a műveletet tartalmazó makrót futtatta. A makrónév egy eseménytulajdonság (például BeforeUpdate, OnOpen, OnUnload vagy OnPrint) beállítása.
Megjegyzés: Az Esemény törlése makróművelet nem érhető el az Access-webappokban.
Beállítás
Az Esemény megszakítása műveletnek nincsenek argumentumai.
Megjegyzések
Egy űrlap általában az Esemény megszakítása műveletet használja egy érvényesítés makróban a BeforeUpdate esemény tulajdonsággal. Amikor egy felhasználó adatokat ad meg egy vezérlő vagy rekord, az Access futtatja a makrót, mielőtt hozzáadja az adatokat az adatbázishoz. Ha az adatok nem teljesítik a makró érvényesítési feltételeit, az Esemény megszakítása művelet még a kezdés előtt megszakítja a frissítés folyamatot.
Ezt a műveletet gyakran használja az MsgBox művelettel annak jelzésére, hogy az adatok nem mentek át az érvényesítési feltételeken, és hasznos információkat nyújtanak a beírandó adatok típusáról.
A CancelEvent művelet az alábbi eseményeket szakíthatja meg.
SzűrőAlkalmazása |
Dirty |
Mousedown |
Beforedelconfirm |
Kilépés |
NoData |
BeforeInsert |
Szűrés |
Nyitott |
BeforeUpdate |
Formázás |
Nyomtatás |
Dblclick |
Gombnyomás |
Kirak |
Törlés |
Megjegyzés: A CancelEvent művelet csak akkor szakítható meg a MouseDown eseménysel, ha a jobb gombbal egy objektumra kattint.
Ha egy vezérlő OnDblClick eseménytulajdonság-beállítása megad egy makrót, amely tartalmazza az CancelEvent műveletet, a művelet megszakítja a DblClick eseményt.
A megszakítható események esetében az esemény alapértelmezett viselkedése (vagyis az, hogy az Access általában mit csinál az esemény bekövetkezésekor) az esemény makrójának futtatása után következik be. Ez lehetővé teszi az alapértelmezett viselkedés megszakítását. Ha például duplán kattint egy olyan szóra, amelyen a beszúrási pont be van kapcsolva egy szövegmező, az Access általában kijelöli a szót. Ezt az alapértelmezett viselkedést megszakíthatja a DblClick esemény makrójában, és egyéb műveleteket is végrehajthat, például megnyithat egy űrlapot, amely a szövegmező adatairól tartalmaz információkat. A nem megszakítható események esetén az alapértelmezett viselkedés a makró futtatása előtt következik be.
Megjegyzés: Ha egy űrlap OnUnload eseménytulajdonság olyan makrót ad meg, amely Mégseesemény műveletet hajt végre, nem tudja bezárni az űrlapot. Ki kell javítania a CancelEvent műveletet okozó feltételt, vagy meg kell nyitnia a makrót, és törölnie kell a CancelEvent műveletet. Ha az űrlap egy modális űrlap, nem tudja megnyitni a makrót.
A CancelEvent művelet Visual Basic for Applications (VBA) modulban való végrehajtásához használja a DoCmd objektum CancelEvent metódusát.
Példa
Adatok érvényesítése makróval
Az alábbi érvényesítési makró ellenőrzi a Szállítók űrlapon megadott irányítószámokat. A StopMacro, Az MsgBox, a CancelEvent és a GoToControl művelet használatát mutatja. A feltételes kifejezés ellenőrzi az űrlapon egy rekordban megadott országot/régiót és irányítószámot. Ha az irányítószám nem a megfelelő formátumú az országhoz/régióhoz, a makró megjelenít egy üzenetmezőt, és megszakítja a rekord mentését. Ezután visszakerül az Irányítószám vezérlőelemre, ahol kijavíthatja a hibát. Ezt a makrót a Szállítók űrlap BeforeUpdate tulajdonságához kell csatolni.
Feltétel |
Művelet |
Argumentumok: Beállítás |
Megjegyzés |
IsNull([OrszágRégió]) |
StopMacro |
Ha a CountryRegion értéke Null, az irányítószám nem érvényesíthető. |
|
[OrszágRégió] In ("France","Olaszország","Spanyolország") and Len([Irányítószám]) <> 5 |
Üzenetpanel |
Üzenet: Az irányítószámnak 5 karakternek kell lennie. Hangjelzés: Igen Típus: Információ Cím: Irányítószám-hiba |
Ha az irányítószám nem 5 karakter, jelenítsen meg egy üzenetet. |
... |
Mégsevent |
Szakítsa meg az eseményt. |
|
VezérlőelemreUgrás |
Vezérlőelem neve: Irányítószám |
||
[OrszágRégió] In ("Australia","Szingapúr") and Len([Irányítószám]) <> 4 |
Üzenetpanel |
Üzenet: Az irányítószámnak 4 karakternek kell lennie. Hangjelzés: Igen Típus: Információ Cím: Irányítószám-hiba |
Ha az irányítószám nem 4 karakter, jelenítsen meg egy üzenetet. |
... |
Mégsevent |
Szakítsa meg az eseményt. |
|
VezérlőelemreUgrás |
Vezérlőelem neve: Irányítószám |
||
([OrszágRégió] = "Kanada") And ([Irányítószám] Not Like"[A-Z][0-9][A-Z] [0-9][A-Z][0-9]") |
Üzenetpanel |
Üzenet: Az irányítószám érvénytelen. Példa kanadai kódra: H1J 1C3 Hangjelzés: Igen Típus: Információ Cím: Irányítószám-hiba |
Ha az irányítószám kanadához nem megfelelő, megjeleníthet egy üzenetet. (Példa kanadai kódra: H1J 1C3) |
... |
Mégsevent |
Szakítsa meg az eseményt. |