Applies ToMicrosoft 365-höz készült Access Access 2024 Access 2021 Access 2019 Access 2016

Egyetlen művelet, például egy objektum egyik vezérlő egy másik vezérlőre való áthelyezése több különböző eseményt is kiválthat, amelyek egy adott sorozatban fordulnak elő. Fontos tudni, hogy mikor és milyen sorrendben következnek be események, mert ez befolyásolhatja a makrók vagy az eseményeljárások futását. Ha például két eseményeljárást kell egy bizonyos sorrendben futtatni, győződjön meg arról, hogy a hozzájuk társított események ugyanabban a sorrendben történnek.

Tartalom

Az űrlapokon lévő vezérlőkön bekövetkező események sorrendje

Az űrlapok vezérlőelemein akkor következnek be események, ha a fókusz egy vezérlőre kerül, illetve amikor módosítják és frissítik a vezérlőelemben szereplő adatokat.

Megjegyzés: A Microsoft Office Access nem ugyanúgy jeleníti meg az események nevét a Visual Basic Editorban, mint a tulajdonságlapon és a Makrószerkesztőben. Az űrlap tulajdonságlapján és a Makrószerkesztőben szereplő Fókusz vételekor eseménynek a Visual Basic Editorban GotFocus a neve. A cikkben szereplő példákban az események nevének VBA (Visual Basic for Applications) formátumú nevét használjuk.

A fókusz áthelyezése egy vezérlőre

Amikor a fókusz egy űrlap valamelyik vezérlőjére kerül (például egy olyan űrlap megnyitásakor, amely egy vagy több aktív vezérlőt tartalmaz, vagy a fókusznak az űrlap egy másik vezérlőjére való átvitelével), az Enter és a GotFocus esemény következik be, az alábbi sorrendben:

Adja meg nyíl GotFocus kifejezést

Ha megnyit egy űrlapot, az Enter és a GotFocus esemény az űrlap megnyitásával kapcsolatos események (az Open, az Activate és a Current) után következik be, az alábbi sorrendben:

Open (űrlap) nyílActivate (űrlap) nyílCurrent (űrlap) nyílEnter (vezérlő) nyílGotFocus (vezérlő)

Amikor a fókusz elhagyja egy űrlap valamelyik vezérlőjét (például egy olyan űrlap bezárásakor, amely egy vagy több aktív vezérlőt tartalmaz, vagy a fókusznak az űrlap egy másik vezérlőjére való átvitelével), az Exit és a LostFocus esemény következik be, az alábbi sorrendben:

Kilépés nyíl LostFocusból

Az űrlapok bezárásakor az Exit és a LostFocus eseményre az űrlap bezárásához kapcsolódó események (az Unload, a Deactivate és a Close) előtt kerül sor, az alábbi sorrendben:

Kilépés (vezérlő) nyílLostFocus (vezérlő) nyílEltávolítás (űrlap) nyílInaktiválás (űrlap) nyílBezárás (űrlap)

A vezérlőkben szereplő adatok módosítása és frissítése

Ha adatokat ír be egy űrlapon szereplő vezérlőelembe, vagy módosítja a benne szereplő adatokat, majd egy másik vezérlőre viszi a fókuszt, a BeforeUpdate és az AfterUpdate eseményre kerül sor:

BeforeUpdate nyíl Afte rUpdate

A módosult értékű vezérlőelem Exit és LostFocus eseményére a BeforeUpdate és az AfterUpdate esemény után kerül sor:

BeforeUpdate nyíl AfterUpdate nyíl Exit nyíl LostFocus

Ha módosítja a szöveget egy kombinált lista szövegmező részében, a Change esemény következik be. Ez az esemény mindig bekövetkezik, ha a vezérlőelem tartalma módosul, de még azt megelőzően, hogy a fókusz másik vezérlőre vagy rekordra kerül (vagyis a BeforeUpdate és az AfterUpdate esemény előtt). A szövegmezőkben vagy a kombinált listák szövegmező szakaszában minden egyes billentyűlenyomáskor a következő eseménysorozat megy végbe:

KeyDown nyíl KeyPress nyíl Dirty nyíl Change nyíl KeyUp

A NotInList esemény következik be, ha olyan értéket ad meg egy kombinált listában, amely nem szerepel a kombinált lista lista részében, és így próbál meg továbblépni egy másik vezérlőre vagy rekordra. A NotInList eseményre a kombinált lista billentyűzeteseményei és Change eseménye után, de még az űrlap minden más vezérlőjének eseményei előtt kerül sor. Ha a kombinált lista LimitToList tulajdonságának Yes az értéke, a NotInList esemény után azonnal bekövetkezik az űrlap Error eseménye:

KeyDown nyíl KeyPress nyíl Dirty nyíl Change nyíl KeyUp nyíl NotInList 0 error

Vissza a lap tetejére

Az űrlapokon szereplő rekordokon bekövetkező események sorrendje

Az űrlapokon szereplő rekordokon akkor következnek be események, ha másik rekordra viszi a fókuszt, ha frissíti a rekordban szereplő adatokat, töröl egy vagy több meglévő rekordot, vagy új rekordot hoz létre.

A fókusz átvitele a rekordokra és a rekordokban szereplő adatok frissítése

Ha egy űrlapon egy meglévő rekordra viszi a fókuszt, adatot visz be a rekordba, vagy módosítja a rekord adatait, majd egy másik rekordra viszi a fókuszt, az alábbi eseménysorozat következik be az űrlapon:

Current (űrlap) nyílBeforeUpdate (űrlap) nyílAfterUpdate (űrlap) nyílCurrent (űrlap)

Amikor elhagyja a módosult adatokat tartalmazó rekordot, de még mielőtt a következő rekordra lép, az Exit és a LostFocus esemény következik be azon a rekordon, amelyen eddig volt a fókusz. Ezekre az eseményekre az űrlap BeforeUpdate és AfterUpdate eseménye előtt kerül sor, az alábbiak szerint:

BeforeUpdate (űrlap) nyílAfterUpdate (űrlap) nyílExit (vezérlő) nyílLostFocus (vezérlő) nyílCurrent (űrlap)

Ahogy lépteti a fókuszt egy űrlap vezérlőin, mindegyik vezérlőn bekövetkeznek a megfelelő események. Az alábbi műveletek végrehajtásakor például a következő eseménysorozatok zajlanak le:

  • Űrlap megnyitása és egy vezérlőelem adatainak módosítása:

    Current (űrlap) nyílEnter (vezérlő) nyílGotFocus (vezérlő) nyílBeforeUpdate (vezérlő) nyílAfterUpdate (vezérlő)

  • A fókusz átvitele egy másik vezérlőre:

    Exit (control1) nyílLostFocus (control1) nyílEnter (control2) nyílGotFocus (control2)

  • A fókusz átvitele egy másik rekordra:

    BeforeUpdate (űrlap) nyílAfterUpdate (űrlap) nyílExit (control2) nyílLostFocus (control2) nyílCurrent (űrlap)

Rekordok törlése

Rekord törlésekor bekövetkeznek az alábbi események az űrlapon, és a Microsoft Office Access megjelenít egy párbeszédpanelt, amely kéri a törlés megerősítését:

nyíl BeforeDelConfirm törlése nyílAfterDelConfirm

Ha visszavonja a Delete eseményt, nem kerül sor a BeforeDelConfirm és a AfterDelConfirm eseményre, és nem jelenik meg a párbeszédpanel.

Új rekord létrehozása

Ha egy űrlap új (üres) rekordjára viszi a fókuszt, majd új rekordot hoz létre úgy, hogy adatokat ír be egy vezérlőbe, a következő eseménysorozat megy végbe:

Current (űrlap) nyílEnter (vezérlő) nyílGotFocus (vezérlő) nyílBeforeInsert (űrlap) nyílAfterInsert (űrlap)

A BeforeInsert (űrlap) esemény azonnal aktiválódik, amint elkezd gépelni a vezérlőben. Az AfterInsert (űrlap) esemény a rekord elhagyása után aktiválódik.

Az űrlapon lévő vezérlők BeforeUpdate és AfterUpdate eseményei és az új rekord eseményei a BeforeInsert esemény után és az AfterInsert esemény előtt következnek be.

Vissza a lap tetejére

Az űrlapokon és a segédűrlapokon bekövetkező események sorrendje

Az űrlapok eseményei az űrlapok megnyitásakor és bezárásakor, az űrlapok közötti váltáskor, illetve az űrlapon vagy segédűrlapon található adatokkal kapcsolatos műveletek alkalmával következnek be.

Űrlap megnyitása és bezárása

Űrlap megnyitásakor az űrlap alábbi eseményei következnek be:

nyíl#x2 átméretezése nyíl aktiválása nyílaktuálisállapotának megnyitása

Ha nincsenek az űrlapon aktív vezérlők, az űrlap GotFocus eseményére az Activate esemény után, de a Current esemény előtt kerül sor.

Az űrlapok bezárásakor a következő eseménysorozatra megy végbe az űrlapon:

nyíl#x2 bezárás inaktiválása

Ha nincsenek az űrlapon aktív vezérlők, az űrlap LostFocus eseményére az Unload esemény után, de a Deactivate esemény előtt kerül sor.

Váltás az űrlapok között

Ha vált két nyitva lévő űrlap között, először az első űrlap Deactivate eseménye, utána a második űrlap Activate eseménye következik be:

Inaktiválás (1. űrlap) nyílAktiválás (2. űrlap)

Az űrlapok Deactivate eseménye akkor is bekövetkezik, ha a felhasználó az űrlapról az Access egy másik objektumlapjára vált. A Deactivate eseményre azonban nem kerül sor, ha párbeszédpanelre vált, vagy egy olyan űrlapra, amelynek PopUp tulajdonsága Yes értékű, illetve egy másik program egy ablakára lép.

Megjegyzés:  Az Open esemény nem következik be, ha már megnyitott űrlapra viszi át a fókuszt, még akkor sem, ha egy OpenForm művelettel vitte is át a fókuszt arra az űrlapra.

Az űrlapokon szereplő adatokon végzett műveletek

Az űrlapokon lévő rekordok között való mozgás és az adatok módosításának hatására űrlap- és vezérlőesemények következnek be. Amikor például először nyit meg egy űrlapot, a következő eseménysorozat megy végbe:

Open (űrlap) nyílLoad (űrlap) nyílResize (űrlap) nyílActivate (űrlap) nyílCurrent (űrlap) nyílEnter (vezérlő)0 GotFocus (vezérlő)

Az űrlapok bezárásakor pedig a következő eseménysorozat megy végbe:

Kilépés (vezérlő) nyílLostFocus (vezérlő) nyílEltávolítás (űrlap) nyílInaktiválás (űrlap) nyílBezárás (űrlap)

Ha módosította az adatokat egy vezérlőben, a vezérlő és az űrlap BeforeUpdate és AfterUpdate eseményére is a vezérlő Exit eseménye előtt kerül sor.

Segédűrlapok használata

Ha olyan űrlapot nyit meg, amely segédűrlapot tartalmaz, a segédűrlapok és rekordjaik betöltésére a fő űrlap betöltése előtt kerül sor. Ezért a segédűrlapnak és vezérlőinek az eseményei (például az Open, a Current, az Enter és a GotFocus) az űrlap eseményei előtt következnek be. A segédűrlapoknál azonban nem következik be az Activate esemény. Így tehát a fő űrlap megnyitása csak a fő űrlap Activate eseményét váltja ki.

Ehhez hasonlóan a segédűrlapot tartalmazó űrlapok bezárásakor a segédűrlapot és rekordjait az űrlap után távolítja el a memóriából a rendszer. A segédűrlapoknál nem következik be Deactivate esemény. Így tehát a fő űrlap bezárása csak a fő űrlap Deactivate eseményét váltja ki. A vezérlők, az űrlap és a segédűrlap eseményei az alábbi sorrendben következnek be:

  1. A segédűrlap vezérlőinek eseményei (például Exit és LostFocus)

  2. Az űrlap vezérlőinek eseményei (a segédűrlap vezérlőt is beleértve)

  3. Az űrlap eseményei (például Deactivate és Close)

  4. A segédűrlap eseményei

Megjegyzés: A segédűrlapok eseményeire a fő űrlap bezárása után kerül sor, ezért bizonyos események nem következnek be; ilyen például a fő űrlap bezárásának a segédűrlapon bekövetkező eseményből történő visszavonása. Az ilyen jellegű érvényesség-ellenőrzéseket célszerű a főűrlapon bekövetkező eseményhez kötni.

Vissza a lap tetejére

A billentyűleütés és az egérrel való kattintás hatására bekövetkező események sorrendje

Az űrlapokhoz és vezérlőkhöz kapcsolódó billentyűzetesemények akkor következnek be, ha billentyűket nyom le vagy billentyűleütéseket küld, miközben az űrlapon vagy a vezérlőn van a fókusz. Az űrlapok, űrlapszakaszok és vezérlőelemek egéreseményeire akkor kerül sor, ha lenyomja az egér gombjait, miközben az egérmutató egy űrlapon, egy szakaszban vagy egy vezérlőelemen van. Akkor is bekövetkeznek egéresemények, ha egy űrlap, szakasz vagy vezérlő fölé viszi az egérmutatót.

Billentyűzetesemények

Ha lenyom és felenged egy billentyűt, miközben a fókusz az űrlap egy vezérlőelemén van (illetve a SendKeys művelettel vagy egy utasítással elküld egy billentyűleütést), a következő eseménysorozat megy végbe:

KeyDown nyíl KeyPress nyíl KeyUp

Ha egy az ANSI karakterkészletbe tartozó billentyűt lenyom, vagy elküld egy ilyen billentyűleütést, a KeyDown, a KeyPress és a KeyUp eseményre is sor kerül. Ha egy ANSI-billentyűt lenyomva tart, akkor váltakozva ismétlődik a KeyDown és a KeyPress esemény (KeyDown, KeyPress, KeyDown, KeyPress stb.), amíg fel nem engedi a billentyűt; ekkor bekövetkezik a KeyUp esemény.

Ha egy nem ANSI-billentyűt lenyom és felenged, a KeyDown és a KeyUp esemény következik be. Ha egy nem ANSI-billentyűt lenyomva tart, akkor a KeyDown esemény ismétlődik, amíg fel nem engedi a billentyűt; ekkor bekövetkezik a KeyUp esemény.

Ha egy billentyű lenyomása kiváltja egy vezérlő egy másik eseményét, akkor az az esemény a KeyPress esemény után, de a KeyUp esemény előtt következik be. Ha például egy billentyűleütés módosítja egy szövegmező szövegét, és ezáltal aktiválódik a Change esemény, a következő eseménysorozat megy végbe:

KeyDown nyíl KeyPress nyíl#x4 KeyUpmódosítása

Ha egy billentyűleütés hatására a fókusz egyik vezérlőről a másikra kerül, a KeyDown esemény az első vezérlőn következik be, a KeyPress és a KeyUp esemény pedig a második vezérlőn. Ha például módosítja az adatokat egy vezérlőben, és a TAB billentyű lenyomásával a következő vezérlőre lép, akkor a következő eseménysorozat megy végbe:

  • Első vezérlő:

    KeyDown nyíl BeforeUpdate nyíl AfterUpdate nyíl Exit nyíl LostFocus

  • Második vezérlő:

    Adja meg nyíl GotFocus nyíl KeyPress nyíl KeyUp

Egéresemények

Ha lenyom vagy felenged egy egérgombot, amikor az egérmutató egy vezérlőelemen vagy egy űrlapon van, az űrlap alábbi eseményei következnek be:

MouseDown nyíl MouseUp nyíl Click

Ha a fókusz egy vezérlőn van, és Ön kattintással átviszi a fókuszt egy másik vezérlőre, az alábbi eseménysorozat következik be:

  • Első vezérlő:

    Kilépés nyíl LostFocusból

  • Második vezérlő:

    Adja meg nyíl GotFocus nyíl MouseDown nyíl MouseUp nyíl kattintásra

Ha egy másik rekordra lép, majd rákattint egy vezérlőre, akkor az űrlap Current eseménye is bekövetkezik a vezérlő Enter eseménye előtt.

Ha duplán kattint egy vezérlőre, akkor a Click és a DblClick esemény is bekövetkezik. Ha például egy olyan vezérlőre kattint duplán, amely nem parancsgomb, az események alábbi sorozata következik be a vezérlőn:

MouseD own nyíl MouseUp nyíl Click nyíl DblClick nyíl MouseUp

Ha egy parancsgombra kattint duplán, az előző eseménysorozat zajlik de, de egy második Click esemény követi.

Az űrlapok, a szakaszok és a vezérlők MouseMove eseményére akkor kerül sor, ha az egérmutatót az űrlap, szakasz vagy vezérlő fölé viszi. Ez az esemény független a többi egéreseménytől.

Vissza a lap tetejére

A jelentésekhez és a jelentések szakaszaihoz kapcsolódó események sorrendje

A jelentések nyomtatásra vagy megtekintésre való megnyitásakor, illetve a jelentések bezárásakor a jelentésekhez és a jelentések szakaszaihoz kapcsolódó események következnek be.

A jelentések eseményei

Ha nyomtatásra vagy megtekintésre megnyit egy jelentést, majd később bezárja a jelentést, vagy az Access egy másik objektumlapjára lép, a jelentéshez kapcsolódó események alábbi sorozata következik be:

nyíl aktiválása nyíl#x4 inaktiválásánakbezárása

Ha vált két jelentés között, először az első jelentés Deactivate eseménye, utána a második jelentés Activate eseménye következik be:

Inaktiválás (jelentés1) nyílAktiválás (jelentés2)

A jelentések Deactivate eseménye akkor is bekövetkezik, ha a felhasználó a jelentésről az Access egy másik objektumlapjára vált. A Deactivate eseményre azonban nem kerül sor, ha párbeszédpanelre vált, vagy egy olyan űrlapra, amelynek PopUp tulajdonsága Yes értékű, illetve egy másik program egy ablakára lép.

Ha lekérdezésen alapuló jelentést nyit meg, az Access előbb a jelentés Open eseményét aktiválja, csak utána futtatja a jelentést megalapozó lekérdezést. Ennek következtében be lehet állítani a jelentés feltételeit olyan makróval vagy eseményvezérelt eljárással, amely az Open eseményre reagál. A makró vagy az eseményvezérelt eljárás például megnyithat egy egyéni párbeszédpanelt, amelyen megadhatók a jelentés feltételei.

A jelentések szakaszainak eseményei

Ha kinyomtat vagy megnyit egy jelentést, a jelentés szakaszainak Format és Print eseménye a jelentés Open és Activate eseménye után, de a jelentés Close vagy Deactivate eseménye előtt következik be:

Open (jelentés) nyílActivate (report) nyílFormat (jelentésszakasz) nyílPrint (jelentésszakasz) nyílClose (jelentés) nyílDeactivate (jelentés)

Biztonság    A Jelentés nézet használatával engedélyezheti a jelentések felhasználószűrését. A Nyomtatási kép funkcióval ellentétben azonban a formázási és nyomtatási események egyik szakaszban sem fordulnak elő Jelentés nézetben. Ez a VBA-függvények eredményeire és a felhasználó által meghatározott eljárásokra is vonatkozik, amelyek a vezérlőkben (például feliratozás, megjelenítési állapot, feltételes formázás, vezérlők átméretezése stb.) jelennek meg ezekben az eseményekben. Ezért ne használjon kódot ebben az eseményben bizalmas adatok formázására, elrejtésére vagy nyomtatására, amelyek nyilvánosságra kerülhetnek. Javasoljuk az adatok előzetes szűrését vagy a Jelentés előnézetének letiltását az AllowReportView tulajdonság Nem értékre állításával.

Ezenkívül a következő események fordulhatnak elő formázás közben vagy után, de még a Print esemény előtt:

  • A Retreat esemény következik be, amikor az Access a jelentés formázása közben visszatér egy előző szakaszra.

  • A NoData esemény következik be, ha nincsenek olyan rekordok, amelyeket a jelentés megjeleníthetne.

  • A Page esemény következik be a formázás után, de a nyomtatás előtt. Ez az esemény felhasználható a kinyomtatott jelentés megjelenésének testreszabásához.

Vissza a lap tetejére

További segítségre van szüksége?

További lehetőségeket szeretne?

Fedezze fel az előfizetés előnyeit, böngésszen az oktatóanyagok között, ismerje meg, hogyan teheti biztonságossá eszközét, és így tovább.

A közösségek segítségével kérdéseket tehet fel és válaszolhat meg, visszajelzést adhat, és részletes ismeretekkel rendelkező szakértőktől hallhat.