Volgorde van gebeurtenissen voor databaseobjecten

Van toepassing op
Access voor Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Eén bepaalde actie, zoals het verplaatsen van van het ene besturingselement naar het andere besturingselement, kan verschillende gebeurtenissen tot gevolg hebben, die in een bepaalde volgorde plaatsvinden. Het is belangrijk om te weten wanneer gebeurtenissen plaatsvinden en in welke volgorde, omdat dit van invloed kan zijn op hoe en wanneer uw macro's of gebeurtenisprocedures worden uitgevoerd. Als er bijvoorbeeld twee gebeurtenisprocedures zijn die in een bepaalde volgorde moeten worden uitgevoerd, moet u ervoor zorgen dat de gebeurtenissen waaraan de procedures zijn gekoppeld in dezelfde volgorde plaatsvinden.

In dit artikel

Volgorde van gebeurtenissen voor besturingselementen op formulieren

Gebeurtenissen voor besturingselementen op formulieren vinden plaats wanneer u de focus naar een besturingselement verplaatst en wanneer u gegevens in een besturingselement wijzigt en bijwerkt.

Opmerking

In Microsoft Office Access worden namen van gebeurtenissen anders weergegeven in de Visual Basic Editor dan in het eigenschappenvenster en in de opbouwfunctie voor macro's. De gebeurtenis met de naam Bij focus in het eigenschappenvenster van het formulier en in de opbouwfunctie voor macro's heet bijvoorbeeld GotFocus in de Visual Basic Editor. In de voorbeelden in dit artikel worden de gebeurtenisnamen van VBA (Visual Basic for Applications) gebruikt.

De focus naar een besturingselement verplaatsen

Wanneer u de focus verplaatst naar een besturingselement op een formulier (bijvoorbeeld door een formulier te openen dat een of meer actieve besturingselementen bevat, of door naar een ander besturingselement op hetzelfde formulier te gaan), vinden de gebeurtenissen Enter en GotFocus plaats in deze volgorde:

Pijl EnterGotFocus

Wanneer u een formulier opent, vinden de gebeurtenissen Enter en GotFocus plaats na de gebeurtenissen die zijn gekoppeld aan het openen van het formulier (zoals Open, Activate en Current) in deze volgorde:

Pijl (formulier) openen, pijl activeren (formulier)Pijl Current, pijl Enter,pijl (besturingselement), GotFocus (besturingselement)

Wanneer een besturingselement op een formulier de focus verliest (bijvoorbeeld wanneer u een formulier sluit dat een of meer actieve besturingselementen bevat, of wanneer u naar een ander besturingselement op hetzelfde formulier gaat), vinden de gebeurtenissen Exit en LostFocus plaats in deze volgorde:

PijlAfsluitenLostFocus

Wanneer u een formulier sluit, vinden de gebeurtenissen Exit en LostFocus plaats vóór de gebeurtenissen die zijn gekoppeld aan het sluiten van het formulier (zoals Unload, Deactivate en Close) in deze volgorde:

Exit (control) arrow LostFocus (control) arrowUnload (formulier) arrowDeactivate (formulier) arrowClose (formulier)

Gegevens in een besturingselement wijzigen en bijwerken

Wanneer u gegevens in een besturingselement op een formulier invoert of wijzigt en vervolgens de focus naar een ander besturingselement verplaatst, vinden de gebeurtenissen BeforeUpdate en AfterUpdate plaats:

Pijl BeforeUpdate AfterUpdate

De gebeurtenissen Exit en LostFocus voor een besturingselement waarvan de waarde wordt gewijzigd nadat de gebeurtenissen BeforeUpdate en AfterUpdate zijn uitgevoerd:

Pijl VoorUpdatePijlNaUpdatePijlAfsluitenLostFocus

Wanneer u de tekst in een tekstvak of in het invoervak van een keuzelijst wijzigt, vindt de gebeurtenis Change plaats. Deze gebeurtenis vindt altijd plaats wanneer de inhoud van het besturingselement wordt gewijzigd en voordat u de focus naar een ander besturingselement of een andere record verplaatst (dus voordat de gebeurtenissen BeforeUpdate en AfterUpdate plaatsvinden). De volgende reeks gebeurtenissen vindt plaats voor iedere toets die u in een tekstvak of het invoervak van een keuzelijst indrukt:

KeyDownarrowKeyPressarrowDirtyarrowPijl wijzigenKeyUp

De gebeurtenis NotInList vindt plaats nadat u een waarde hebt ingevoerd in een keuzelijst met invoervak die niet is gevonden in de keuzelijst en u vervolgens probeert om de focus verplaatsen naar een ander besturingselement of andere record. De gebeurtenis NotInList vindt plaats na de toetsenbordgebeurtenissen en de gebeurtenissen Change voor de keuzelijst met invoervak, maar vóór de gebeurtenissen voor een ander besturingselement of het formulier. Als de eigenschap LimitToList van de keuzelijst met invoervak is ingesteld op Ja, treedt de gebeurtenis Fout voor het formulier direct op na de gebeurtenis NotInList :

KeyDownarrowKeyPressarrowDirtyarrowPijl wijzigenKeyUparrowNotInListarrowError

Naar boven

Volgorde van gebeurtenissen voor records op formulieren

Gebeurtenissen voor records op formulieren vinden plaats wanneer u de focus verplaatst naar een andere record, gegevens in een record bijwerkt, een of meer bestaande records verwijdert of een nieuwe record maakt.

De focus verplaatsen naar records en gegevens in records bijwerken

Wanneer u de focus verplaatst naar een bestaande record op een formulier, gegevens in de record invoert of wijzigt en vervolgens de focus naar een andere record verplaatst, vindt de volgende reeks gebeurtenissen voor het formulier plaats:

Pijl Huidig ( formulier) Pijl BeforeUpdate (formulier) Pijl AfterUpdate (formulier) Huidig (formulier)

Wanneer u de record met de gewijzigde gegevens verlaat, maar voordat u de volgende record kiest, vinden de gebeurtenissen Exit en LostFocus plaats voor het besturingselement met de focus. Deze gebeurtenissen vinden plaats na de gebeurtenissen BeforeUpdate en AfterUpdate voor het formulier, in deze volgorde:

Pijl BeforeUpdate (formulier) Pijl AfterUpdate (formulier) Pijl Afsluiten (besturingselement) LostFocus (besturingselement) pijlCurrent (formulier)

Terwijl u de focus op een formulier van het ene besturingselement naar het andere verplaatst, vinden voor elk besturingselement gebeurtenissen plaats. De volgende gebeurtenisreeksen vinden bijvoorbeeld plaats wanneer u de volgende handelingen uitvoert:

  • U opent een formulier en wijzigt gegevens in een besturingselement:
    Huidige pijl (formulier) Enter-pijl ( besturingselement) Pijl GotFocus (besturingselement) Pijl BeforeUpdate ( besturingselement) AfterUpdate (besturingselement)
  • U verplaatst de focus naar een ander besturingselement:
    Exit (control1) pijl LostFocus (besturingselement1) pijlEnter (besturingselement2) pijlGotFocus (besturingselement2)
  • U verplaatst de focus naar een andere record:
    Pijl BeforeUpdate (formulier) Pijl AfterUpdate (formulier)Pijl Exit (besturingselement2)LostFocus (besturingselement2) pijlCurrent (formulier)

Records verwijderen

Wanneer u een record verwijdert, vinden de volgende gebeurtenissen plaats voor het formulier en verschijnt er een dialoogvenster waarin u wordt gevraagd het verwijderen te bevestigen:

Pijl verwijderenPijl BeforeDelConfirmAfterDelConfirm

Als u de gebeurtenis Delete annuleert, vinden de gebeurtenissen BeforeDelConfirm en AfterDelConfirm niet plaats en wordt het dialoogvenster niet weergegeven.

Een nieuwe record maken

Wanneer u de focus verplaatst naar een nieuwe (lege) record op een formulier en vervolgens een nieuwe record maakt door in een besturingselement te typen, vindt de volgende reeks gebeurtenissen plaats:

Huidige pijl (formulier) Enter-pijl (besturingselement) GotFocus (besturingselement)pijl Pijl BeforeInsert (formulier)AfterInsert (formulier)

De gebeurtenis BeforeInsert (formulier) wordt geactiveerd zodra u begint met typen in het besturingselement. De gebeurtenis AfterInsert (formulier) wordt geactiveerd nadat u de record hebt verlaten.

De gebeurtenissen BeforeUpdate en AfterUpdate voor de besturingselementen op het formulier en voor de nieuwe record vinden plaats na de gebeurtenis BeforeInsert en vóór de gebeurtenis AfterInsert.

Naar boven

Volgorde van gebeurtenissen voor formulieren en subformulieren

Gebeurtenissen voor formulieren vinden plaats wanneer u een formulier opent of sluit, naar een ander formulier gaat of met gegevens op een formulier of subformulier werkt.

Een formulier openen en sluiten

Wanneer u een formulier opent, vindt de volgende reeks gebeurtenissen plaats voor het formulier:

Pijl openenPijl ladenPijl Formaat wijzigenPijlStroomactiveren

Als het formulier geen actieve besturingselementen bevat, vindt de gebeurtenis GotFocus voor het formulier plaats na de gebeurtenis Activate, maar voor de gebeurtenis Current.

Wanneer u een formulier sluit, vindt de volgende reeks gebeurtenissen plaats voor het formulier:

Pijl LossenPijl DeactiverenClose

Als het formulier geen actieve besturingselementen bevat, vindt de gebeurtenis LostFocus voor het formulier plaats na de gebeurtenis Unload , maar vóór de gebeurtenis Deactivate .

Schakelen tussen formulieren

Wanneer u overschakelt tussen twee geopende formulieren, vindt voor het eerste formulier de gebeurtenis Deactivate plaats en voor het tweede formulier de gebeurtenis Activate:

Deactivate (formulier1) arrowActivate (formulier2)

De gebeurtenis Deactivate voor een formulier vindt ook plaats wanneer u schakelt tussen het formulier en een ander objecttabblad in Access. De gebeurtenis Deactivate vindt echter niet plaats wanneer u overschakelt naar een dialoogvenster, naar een formulier waarvan de eigenschap PopUp is ingesteld op Ja of naar een venster in een ander programma.

Opmerking

De gebeurtenis Open vindt niet plaats als u de focus verplaatst naar een formulier dat al is geopend, ook niet als u de focus verplaatst naar dit formulier door de actie OpenForm uit te voeren.

Werken met gegevens op een formulier

Gebeurtenissen voor formulieren en besturingselementen vinden plaats terwijl u op het formulier van de ene naar de andere record gaat en wanneer u gegevens wijzigt. Wanneer u een formulier bijvoorbeeld voor het eerst opent, vindt de volgende reeks gebeurtenissen plaats:

Pijl (formulier) Pijlbij Laden (formulier)Pijl Formaat (formulier) wijzigen PijlActiveren (formulier) Pijl Stroom (formulier)Pijl Enter (Ctrl)GotFocus (besturingselement)

Wanneer u een formulier sluit, vindt de volgende reeks gebeurtenissen plaats:

Exit (control) arrow LostFocus (control) arrowUnload (formulier) arrowDeactivate (formulier) arrowClose (formulier)

Als u gegevens in een besturingselement hebt gewijzigd, vinden de gebeurtenissen BeforeUpdate en AfterUpdate voor het besturingselement en het formulier plaats vóór de gebeurtenis Exit voor het besturingselement.

Werken met subformulieren

Wanneer u een formulier opent dat een subformulier bevat, worden het subformulier en de bijbehorende records geladen vóór het hoofdformulier. De gebeurtenissen voor het subformulier en de bijbehorende besturingselementen (zoals Open, Current, Enter en GotFocus) vinden dus plaats vóór de gebeurtenissen voor het formulier. De gebeurtenis Activate wordt echter niet uitgevoerd voor subformulieren. Wanneer u een hoofdformulier opent, wordt de gebeurtenis Activate daarom alleen uitgevoerd voor het hoofdformulier.

Wanneer u een formulier sluit dat een subformulier bevat, wordt ook eerst het formulier uit het geheugen verwijderd en dan pas het subformulier met de bijbehorende records. De gebeurtenis Deactivate vindt niet plaats voor subformulieren. Wanneer u een hoofdformulier sluit, wordt daarom alleen voor het hoofdformulier een gebeurtenis Deactivate uitgevoerd. De gebeurtenissen voor de besturingselementen, het formulier en het subformulier vinden plaats in deze volgorde:

  1. Gebeurtenissen voor de besturingselementen van het subformulier (zoals Exit en LostFocus)
  2. Gebeurtenissen voor de formulierbesturingselementen (met inbegrip van het besturingselement van het subformulier)
  3. Gebeurtenissen voor het formulier (zoals Deactivate en Close)
  4. Gebeurtenissen voor het subformulier

Opmerking

Omdat de gebeurtenissen voor een subformulier plaatsvinden nadat het hoofdformulier is gesloten, vinden bepaalde gebeurtenissen niet plaats, zoals het annuleren van het sluiten van het hoofdformulier vanuit een gebeurtenis in het subformulier. Mogelijk moet u deze typen validatietests verplaatsen naar een gebeurtenis op het hoofdformulier.

Naar boven

Volgorde van gebeurtenissen voor toetsaanslagen en muisklikken

Toetsenbordgebeurtenissen voor formulieren en besturingselementen vinden plaats wanneer u op toetsen drukt of toetsaanslagen verzendt terwijl het formulier of besturingselement de focus heeft. Muisgebeurtenissen voor formulieren, formuliersecties en besturingselementen op formulieren vinden plaats wanneer u op de muisknoppen klikt terwijl de muisaanwijzer zich op een formulier, sectie of besturingselement bevindt. Muisgebeurtenissen vinden ook plaats wanneer u de muisaanwijzer over een formulier, sectie of besturingselement beweegt.

Toetsenbordgebeurtenissen

Wanneer u een toets indrukt en loslaat terwijl een besturingselement op een formulier de focus heeft (of de actie ToetsenVerzenden of instructie gebruikt om een toetsaanslag te verzenden), vindt de volgende reeks gebeurtenissen plaats:

KeyDownarrowKeyPressarrowKeyUp

Wanneer u een toets in de ANSI-tekenset indrukt en loslaat of een toetsaanslag verzendt, vinden de gebeurtenissen KeyDown, KeyPress en KeyUp allemaal plaats. Als u een ANSI-toets ingedrukt houdt, vinden de gebeurtenissen KeyDown en KeyPress herhaaldelijk om de beurt plaats (KeyDown, KeyPress, KeyDown, KeyPress, enzovoort) totdat u de toets loslaat, waarna de gebeurtenis KeyUp wordt uitgevoerd.

Als u een niet-ANSI-toets indrukt en loslaat, vinden de gebeurtenissen KeyDown en KeyUp plaats. Als u een niet-ANSI-toets ingedrukt houdt, vindt de gebeurtenis KeyDown herhaaldelijk plaats totdat u de toets loslaat, waarna de gebeurtenis KeyUp wordt uitgevoerd.

Als door het indrukken van een toets een andere gebeurtenis voor een besturingselement wordt geactiveerd, vindt deze andere gebeurtenis plaats na de gebeurtenis KeyPress, maar vóór de gebeurtenis KeyUp. Als bijvoorbeeld met een toetsaanslag tekst in een tekstvak wordt gewijzigd, waardoor een gebeurtenis Wijzigen wordt uitgevoerd, vindt de volgende reeks gebeurtenissen plaats:

KeyDownarrowKeyPressarrowChangearrowKeyUp

Als met een toetsaanslag de focus van het ene besturingselement naar het andere wordt verplaatst, vindt de gebeurtenis KeyDown plaats voor het eerste besturingselement, terwijl de gebeurtenissen KeyPress en KeyUp voor het tweede besturingselement plaatsvinden. Als u bijvoorbeeld gegevens in een besturingselement wijzigt en vervolgens op Tab drukt om naar het volgende besturingselement te gaan, vindt de volgende reeks gebeurtenissen plaats:

  • Eerste besturingselement:
    KeyDownarrowBeforeUpdatearrow AfterUpdatearrowExitarrowLostFocus
  • Tweede besturingselement:
    Enter-pijlGotFocus-pijltoetsDrukoppijl-omhoog

Muisgebeurtenissen

Wanneer u een muisknop indrukt en loslaat terwijl de muisaanwijzer zich op een besturingselement van een formulier bevindt, vindt de volgende reeks gebeurtenissen plaats voor het besturingselement:

MouseDown arrow MouseUparrowClick

Als een besturingselement de focus heeft en u op een ander besturingselement klikt om de focus naar dit tweede besturingselement te verplaatsen, vindt de volgende reeks gebeurtenissen plaats:

  • Eerste besturingselement:
    PijlAfsluitenLostFocus
  • Tweede besturingselement:
    Pijl-EnterGotFocuspijlMousePijl-omlaagMousePijl-omhoogKlikken

Als u naar een andere record gaat en vervolgens op een besturingselement klikt, vindt ook de gebeurtenis Current voor het formulier plaats voordat de gebeurtenis Enter voor het besturingselement plaatsvindt.

Wanneer u dubbelklikt op een besturingselement, vinden de gebeurtenissen Click en DblClick plaats. Wanneer u bijvoorbeeld dubbelklikt op een besturingselement, met uitzondering van een opdrachtknop, vindt de volgende reeks gebeurtenissen plaats voor het besturingselement:

MouseDownarrowMouseUparrowKlikpijlDblClickarrowMouseUp

Wanneer u dubbelklikt op een opdrachtknop, vindt na de bovenstaande reeks gebeurtenissen nog een tweede gebeurtenis Klikken plaats.

De gebeurtenis MouseMove voor een formulier, sectie of besturingselement vindt plaats wanneer u de muisaanwijzer over het formulier, de sectie of het besturingselement beweegt. Deze gebeurtenis is niet afhankelijk van de andere muisgebeurtenissen.

Naar boven

Volgorde van gebeurtenissen voor rapporten en rapportsecties

Gebeurtenissen voor rapporten en rapportsecties vinden plaats wanneer u een rapport opent om het af te drukken of er een afdrukvoorbeeld van te bekijken, of wanneer u een rapport sluit.

Gebeurtenissen voor rapporten

Wanneer u een rapport opent om het af te drukken of een afdrukvoorbeeld ervan te bekijken en vervolgens het rapport sluit of naar een ander venster in Access gaat, vindt de volgende reeks gebeurtenissen plaats voor het rapport:

Pijl openen, pijl laden, pijl activeren, pijl sluiten,deactiveren

Wanneer u schakelt tussen twee geopende rapporten, vindt de gebeurtenis Deactivate plaats voor het eerste rapport en de gebeurtenis Activate voor het tweede rapport:

Pijl Deactiveren (rapport1) Activeren (rapport2)

De gebeurtenis Deactivate voor een rapport vindt ook plaats wanneer u van een rapport overschakelt naar een ander objecttabblad in Access. De gebeurtenis Deactivate vindt echter niet plaats wanneer u overschakelt naar een dialoogvenster, naar een formulier waarvan de eigenschap PopUp is ingesteld op Ja of naar een venster in een ander programma.

Wanneer u een rapport opent dat is gebaseerd op een query, wordt in Access de gebeurtenis Open uitgevoerd voor het rapport voordat de onderliggende query wordt uitgevoerd. Hierdoor kunt u de criteria voor het rapport instellen met een macro of gebeurtenisprocedure die reageert op de gebeurtenis Openen. Met de macro of gebeurtenisprocedure kan bijvoorbeeld een aangepast dialoogvenster worden geopend waarin u de rapportcriteria invoert.

Gebeurtenissen voor rapportsecties

Wanneer u een rapport afdrukt of een afdrukvoorbeeld hiervan bekijkt, vinden de gebeurtenissen Format en Print voor de rapportsecties plaats na de gebeurtenissen Open en Activate voor het rapport en vóór de gebeurtenissen Close of Deactivate van het rapport:

Pijl Open (rapporteren) Pijl Laden (rapporteren) Pijl Activeren (rapporteren) Pijl Opmaak (rapportsectie) Afdrukken (rapportsectie) pijlSluiten (rapporteren) pijlDeactiveren (rapporteren)

Beveiliging U kunt de rapportweergave gebruiken om het filteren van rapporten door gebruikers mogelijk te maken. Maar anders dan bij het afdrukvoorbeeld vinden de gebeurtenissen Opmaak en Afdrukken in een sectie niet plaats in de rapportweergave. Dit geldt ook voor resultaten van VBA-functies en door de gebruiker gedefinieerde procedures die worden weergegeven in besturingselementen (zoals bijschriften van labels, weergavestatus, voorwaardelijke opmaak, grootte van besturingselementen wijzigen enzovoort) binnen die gebeurtenissen. Gebruik daarom in dit evenement geen code om vertrouwelijke gegevens die mogelijk zichtbaar kunnen worden, in te delen, te verbergen of af te drukken. Het is raadzaam de gegevens vooraf te filteren of Rapportvoorbeeld uit te schakelen door de eigenschap AllowReportView in te stellen op Nee.

Bovendien kunnen de volgende gebeurtenissen plaatsvinden tijdens of na het opmaken, maar vóór de gebeurtenis Print:

  • De gebeurtenis Retreat vindt plaats wanneer tijdens het opmaken van een rapport wordt teruggegaan naar een vorige sectie.
  • De gebeurtenis NoData vindt plaats als er in het rapport geen records worden weergegeven.
  • De gebeurtenis Pagina vindt plaats na het opmaken, maar vóór het afdrukken. Met deze gebeurtenis kunt u het uiterlijk van het afgedrukte rapport aanpassen.

Naar boven