Poradie udalostí pre databázové objekty

Vzťahuje sa na
Access pre Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Jedna akcia, napríklad prechod z jedného ovládacieho prvku na objekte na iný ovládací prvok, môže spustiť viacero rôznych udalostí, ktoré sa vyskytnú v určitej sekvencii. Je dôležité vedieť, kedy udalosti nastanú a v akom poradí, pretože to môže ovplyvniť, ako a kedy sa vaše makrá alebo udalostné procedúry spustia. Ak napríklad existujú dve udalostné procedúry, ktoré majú byť spustené v určitom poradí, chcete sa uistiť, že udalosti, ku ktorým sú priradené, nastanú v rovnakom poradí.

Obsah tohto článku

Poradie udalostí pre ovládacie prvky vo formulároch

Udalosti pre ovládacie prvky vo formulároch nastanú, keď presuniete zameranie na ovládací prvok a keď zmeníte a aktualizujete údaje v ovládacom prvku.

Poznámka

Microsoft Office Access zobrazuje názvy udalostí v editore jazyka Visual Basic trochu inak, než to robí v hárku vlastností a v Zostavovači makier. Udalosť s názvom On Got Focus v hárku vlastností formulára a v Zostavovači makier sa napríklad v editore jazyka Visual Basic volá GotFocus. V príkladoch v tomto článku je pre názvy udalostí použitý formát jazyka Visual Basic pre aplikácie (VBA).

Premiestnenie zamerania na ovládací prvok

Pri premiestnení zamerania na ovládací prvok vo formulári (napríklad otvorením formulára, ktorý obsahuje jeden alebo viac aktívnych ovládacích prvkov alebo premiestnením zamerania na iný ovládací prvok v tom istom formulári), nastanú udalosti Enter a GotFocus v tomto poradí:

EnterarrowGotFocus

Ak otvoríte formulár, nastanú udalosti Enter a GotFocus po udalostiach spojených s otvorením formulára (napríklad Open, Activate a Current) v nasledujúcim poradí:

Šípka otvorenia (formulára) ŠípkaActivate (formulár) Šípkaaktuálneho (formulára) Enter (ovládací prvok) GotFocus (ovládací prvok)

Pri presune zamerania preč z ovládacieho prvku vo formulári (napríklad pri zatvorení formulára, ktorý obsahuje jeden alebo viac aktívnych ovládacích prvkov alebo premiestnením na iný ovládací prvok v tom istom formulári), nastanú udalosti Exit a GotFocus v tomto poradí:

UkončiťšípkuLostFocus

Pri zatvorení formulára nastanú udalosti Exit a LostFocus pred udalosťami súvisiacimi so zatvorením formulára (napríklad Unload, Deactivate a Close) v nasledujúcom poradí:

Šípka ukončenia (ovládacieho prvku) ŠípkaLostFocus (ovládací prvok) ŠípkaUnload (formulár) ŠípkaDeactivate (formulár) Zavrieť (formulár)

Zmena a aktualizácia údajov v ovládacom prvku

Ak zadáte alebo zmeníte údaje v ovládacom prvku vo formulári a potom premiestníte zameranie na iný ovládací prvok, nastanú udalosti BeforeUpdate a AfterUpdate:

Šípka BeforeUpdate AfterUpdate

Udalosti Exit a LostFocus pre ovládací prvok so zmenenou hodnotou nastanú po udalostiach BeforeUpdate a AfterUpdate:

Šípka PredAktualizovaťŠípkapo aktualizáciiŠípkaukončeniaLost Focus

Ak zmeníte text v textovom poli alebo v časti textového poľa v rozbaľovacom poli, nastane udalosť Change. Táto udalosť nastane pri každej zmene obsahu ovládacieho prvku, ale pred premiestnením zamerania na iný ovládací prvok alebo záznam (a teda pred výskytom udalostí BeforeUpdate a AfterUpdate). Nasledujúca postupnosť udalostí sa vyskytne pri každom stlačení klávesu v textovom poli alebo v časti textového poľa v rozbaľovacom poli:

Šípka nadolKláves Stlačte kláves ŠípkaUšretášípka Šípkana zmenuKláves nahor

Udalosť NotInList nastane po tom, čo zadáte hodnotu v rozbaľovacom poli, ktorá nie je v zozname rozbaľovacieho poľa, a potom sa pokúsite presunúť zameranie na ďalší ovládací prvok alebo záznam. Udalosť NotInList nastane po udalostiach klávesnice a udalostiach Change v rozbaľovacom poli, ale pred udalosťami pre iný ovládací prvok alebo formulár. Ak je vlastnosť LimitToList rozbaľovacieho poľa nastavená na hodnotu Áno, udalosť Error pre formulár nastane bezprostredne po udalosti NotInList :

Šípka nadolŠípka klávesu Stlačený klávesŠípkaŠpinavášípka Šípkana zmenuŠípkanahorŠípkaNotInListChyba

Na začiatok stránky

Poradie udalostí pre záznamy vo formulároch

V prípade záznamov vo formulároch nastanú udalosti v situácii, keď premiestníte zameranie na iný záznam, aktualizujete údaje v zázname, odstránite existujúci záznam alebo záznamy alebo vytvoríte nový záznam.

Presun zamerania na záznamy a aktualizácia údajov v záznamoch

Ak premiestníte zameranie na existujúci záznam vo formulári, zadáte alebo zmeníte údaje v tomto zázname, a potom premiestníte zameranie na ďalší záznam, pre formulári sa vygeneruje nasledujúca postupnosť udalostí :

Šípka Aktuálne (formulár) Šípka BeforeUpdate (formulár) ŠípkaPoAktualizácii (formulár) Aktuálne (formulár)

Po opustení záznamu, ktorého údaje boli zmenené, ale pred zadaním ďalšieho záznamu, nastanú pre ovládací prvok, ktorý má zameranie, udalosti Exit a LostFocus. Tieto udalosti nastanú po udalostiach pre formulár BeforeUpdate a AfterUpdate v tomto poradí:

Šípka BeforeUpdate (formulár) ŠípkaAfterUpdate (formulár) Šípka na ukončenie (ovládací prvok) ŠípkaLostFocus (ovládací prvok) Aktuálny (formulár)

Keď presúvate zameranie medzi ovládacími prvkami vo formulári, udalosti nastanú pre každý ovládací prvok. V prípade nasledujúcich akcií napríklad nastane nasledujúca postupnosť udalostí:

  • Otvorenie formulára a zmena údajov v ovládacom prvku:
    Šípka aktuálnej položky (formulára) Enter (ovládací prvok) šípkaGotFocus (ovládací prvok) šípkaBeforeUpdate (ovládací prvok) šípkaAfterUpdate (ovládací prvok) AfterUpdate (ovládací prvok)
  • Prechod na iný ovládací prvok:
    Šípka ukončenia (ovládací prvok1) Šípka LostFocus (ovládací prvok1) ŠípkaEnter (ovládací prvok2) GotFocus (ovládací prvok2)
  • Prechod na iný záznam:
    Šípka BeforeUpdate (formulár) ŠípkaAfterUpdate (formulár) Šípka Exit (ovládací prvok2) ŠípkaLostFocus (ovládací prvok2) Aktuálny (formulár)

Odstránenie záznamov

Ak odstránite záznam, pre formulár sa vygenerujú nasledujúce udalosti a Microsoft Office Access zobrazí dialógové okno so žiadosťou o potvrdenie odstránenia:

Šípka odstráneniapredŠípka DelConfirmAfterDelConfirm

Ak udalosť Delete zrušíte, udalosti BeforeDelConfirm a AfterDelConfirm nenastanú a dialógové okno sa nezobrazí.

Vytvorenie nového záznamu

Ak premiestníte zameranie na nový (prázdny) záznam vo formulári a potom vytvoríte nový záznam zadaním údajov do ovládacieho prvku, nastane nasledujúca postupnosť udalostí:

Šípka aktuálnej položky (formulára) Enter (ovládací prvok) GotFocus (ovládací prvok) GotFocus (ovládací prvok) GotFocus (ovládací prvok) TGotInsert (formulár) AfterInsert (formulár)

Udalosť BeforeInsert (formulár) sa spustí hneď po začatí zadávania textu do ovládacieho prvku. Udalosť Po vložení (formulár) sa spustí po opustení záznamu.

Udalosti BeforeUpdate a AfterUpdate pre ovládacie prvky vo formulári a pre nový záznam nastanú po udalosti BeforeInsert a pred udalosťou AfterInsert.

Na začiatok stránky

Poradie udalostí pre formuláre a podformuláre

V prípade formulára nastanú udalosti, keď otvoríte alebo zatvoríte formulár, premiestníte sa medzi formulármi alebo pracujete s údajmi vo formulári alebo podformulári.

Otvorenie a zatvorenie formulára

Pri otvorení formulára nastane pre formulár nasledujúca postupnosť udalostí:

Šípka na otvorenieŠípkanačítaniaŠípkana zmenu veľkostiŠípkana aktiváciuAktuálny

Ak neexistujú žiadne aktívne ovládacie prvky vo formulári, udalosť GotFocus pre formulár nastane po výskyte udalosti Activate, ale pred udalosťou Current.

Pri zatvorení formulára pre formulár nastane nasledujúca postupnosť udalostí:

UnloadarrowDeactivatearrow Close

Ak vo formulári nie sú žiadne aktívne ovládacie prvky, udalosť LostFocus pre formulár nastane po udalosti Unload , ale pred udalosťou Deactivate .

Presun medzi formulármi

Pri prepínaní medzi dvoma otvorenými formulármi nastane udalosť Deactivate pre prvý formulár a udalosť Activate pre druhý formulár:

Šípka Deactivate (formulár1) Activate (formulár2)

Udalosť Deactivate nastane pri formulári aj pri prepnutí z formulára na inú kartu objektu v programe Access. Udalosť Deactivate však nenastane, ak sa prepnete do dialógového okna, do formulára, ktorého vlastnosť PopUp je nastavená na hodnotu Áno alebo do okna v inom programe.

Poznámka

Udalosť Open sa nevyskytne, ak premiestníte zameranie do formulára, ktorý je už otvorený, ani v prípade, že ste premiestnili zameranie do tohto formulára vykonaním akcie OpenForm.

Práca s údajmi vo formulári

V prípade formulára a ovládacích prvkov nastanú udalosti pri presúvaní medzi záznamami vo formulári a pri zmene údajov. Pri prvom otvorení formulára nastane napríklad nasledujúca postupnosť udalostí:

Šípka otvorenia (formulár) Šípka načítania (formulár) Šípkana zmenu veľkosti (formulár) ŠípkaActivate (formulár) Šípkaaktuálneho (formulára) ŠípkaEnter (ovládací prvok) GotFocus (ovládací prvok)

Podobne pri zatvorení formulára nastane nasledujúca postupnosť udalostí:

Šípka ukončenia (ovládacieho prvku) ŠípkaLostFocus (ovládací prvok) ŠípkaUnload (formulár) ŠípkaDeactivate (formulár) Zavrieť (formulár)

Ak ste zmenili údaje v ovládacom prvku, nastanú udalosti BeforeUpdate a AfterUpdate pre ovládací prvok aj formulár pred udalosťou Exit pre ovládací prvok.

Práca s podformulármi

Keď otvoríte formulár s podformulárom, podformulár a jeho záznamy sa načítajú pred načítaním hlavného formulára. Znamená to, že udalosti pre podformulár a jeho ovládacie prvky (ako napríklad Open, Current, Enter a GotFocus) nastanú skôr než udalosti pre formulár. Pre podformuláre sa však nevyskytuje udalosť Activate. Z tohto dôvodu otvorenie hlavného formulára spustí udalosť Activate len pre hlavný formulár.

Podobne pri zatvorení formulára, ktorý obsahuje podformulár, je podformulár so svojimi záznamami uvoľnený až hlavnom formulári. Pre podformuláre sa udalosť Deactivate nevyskytuje. Z tohto dôvodu zatvorenie hlavného formulára spustí udalosť Deactivate len pre hlavný formulár. Udalosti pre ovládacie prvky, formulár a podformulár sa vyskytujú v tomto poradí:

  1. Udalosti pre ovládacie prvky podformulára (napríklad Exit a LostFocus)
  2. Udalosti pre ovládacie prvky formulára (vrátane ovládacieho prvku podformulára)
  3. Udalosti pre formulár (napríklad Deactivate a Close)
  4. Udalosti pre podformulár

Poznámka

Vzhľadom na to, že udalosti pre podformulár sú generované po zatvorení hlavného formulára, určité udalosti sa neuskutočnia (napríklad zrušenie zatvárania hlavného formulára prostredníctvom udalosti z podformulára). Možno budete musieť presunúť tieto typy overovacích testov do udalostí hlavného formulára.

Na začiatok stránky

Poradie udalostí pre stlačenia klávesov a kliknutia myšou

V prípade formulárov a ovládacích prvkov nastávajú udalosti klávesnice počas stlačenia klávesov alebo odosielaní stlačenia klávesov, keď je zameranie na formulári alebo ovládacom prvku. V prípade formulárov, sekcií alebo v ovládacích prvkov nastávajú udalosti myši v prípade, že kliknete na tlačidlá myši v čase, keď je ukazovateľ myši vo formulári, časti formulára alebo ovládacom prvku. Udalosť myši sa vyskytne aj vtedy, keď premiestníte ukazovateľ myši nad formulár, sekciu alebo ovládací prvok.

Udalosti klávesnice

Ak stlačíte a uvoľníte kláves počas toho, keď ovládací prvok vo formulári má zameranie (alebo použijete akciu alebo príkaz OdoslaťKlávesy na odoslanie stlačenia klávesu), nastane nasledujúca postupnosť udalostí:

Kláves so šípkou nadolKláves so šípkou nahor

Ak stlačíte a uvoľníte kláves alebo odošlete stlačenie klávesu v tabuľke znakov ANSI, nastanú všetky udalosti KeyDown, KeyPress a KeyUp . Ak stlačíte a podržíte stlačený kláves vo formáte ANSI, udalosti KeyDown a KeyPress sa budú opakovane striedať (KeyDown, KeyPress, KeyDown, KeyPress a podobne), kým kláves neuvoľníte. potom nastane udalosť KeyUp .

Ak stlačíte a uvoľníte kláves, ktorý nie je vo formáte ANSI, udalosti KeyDown a KeyUp nastanú. Ak stlačíte a podržíte stlačený kláves, ktorý nie je vo formáte ANSI, udalosť KeyDown sa vyskytne opakovane, kým neuvoľníte kláves. Potom nastane udalosť KeyUp .

Ak sa stlačením tlačidla spustí pre ovládací prvok ďalšia udalosť, táto udalosť nastane po udalosti KeyPress, ale pred udalosťou KeyUp. Ak napríklad stlačenie klávesu zmení text v textovom poli, ktoré spúšťa udalosť Change, nastane nasledujúca postupnosť udalostí:

Šípka nadolŠípkaKláves Stlačte klávesŠípkana zmenuKláves nahor

Ak stlačenie klávesu spôsobuje premiestnenie zamerania z jedného ovládacieho prvku na iný ovládací prvok, nastane pre prvý ovládací prvok udalosť KeyDown, zatiaľ čo pre druhý ovládací prvok nastanú udalosti KeyPress a KeyUp. Ak napríklad zmeníte údaje v ovládacom prvku a potom stlačením klávesu TAB sa presuniete na ďalší ovládací prvok, nastane táto postupnosť udalostí:

  • Prvý ovládací prvok:
    Šípka nadolPredŠípkaaktualizácieŠípkapo aktualizáciiŠípkaukončeniaStratené zameranie
  • Druhý ovládací prvok:
    EnterarrowGotFocusŠípkaKlávesStlačte kláves so šípkounahor

Udalosti myši

Keď kliknete a uvoľníte tlačidlo myši, keď je ukazovateľ myši na ovládacom prvku vo formulári, nastane pre ovládací prvok nasledujúca postupnosť udalostí:

Šípka nadolŠípkaMyš nahorKliknutie na položku

Ak ovládací prvok má zameranie a vy kliknete na iný ovládací prvok, aby ste premiestnili zameranie na tento druhý ovládací prvok, vyskytne sa táto postupnosť udalostí:

  • Prvý ovládací prvok:
    UkončiťšípkuLostFocus
  • Druhý ovládací prvok:
    Šípka Enter Šípka GotFocus ŠípkanadolŠípka MyšnahorKliknutie na položkuŠípka nahor

Ak sa premiestníte na iný záznam a potom kliknete na ovládací prvok, pred udalosťou Enter pre ovládací prvok nastane aj udalosť Current pre formulár.

Dvojité kliknutie na ovládací prvok spôsobí výskyt udalostí Click a DblClick. Po dvojitom kliknutí na ovládací prvok iný než príkazové tlačidlo napríklad nastane nasledujúca postupnosť udalostí pre ovládací prvok:

Šípka nadolŠípka nahor Šípkanahor Kliknite našípkuDblClickšípkaMyš nahor

Po dvojitom kliknutí na príkazové tlačidlo nastane predchádzajúca postupnosť udalostí a za ňou nasleduje druhá udalosť Click.

Pre formulár, sekciu alebo ovládací prvok nastane udalosť MouseMove v prípade, že premiestníte ukazovateľ myši nad formulár, sekciu alebo ovládací prvok. Táto udalosť je nezávislá od iných udalostí myši.

Na začiatok stránky

Poradie udalostí pre zostavy a sekcie zostáv

Udalosti pre zostavy a sekcie zostáv sa vyskytnú v prípade, že otvoríte zostavu na tlač alebo zobrazíte jej ukážku alebo zostavu zavriete.

Udalosti pre zostavy

Keď otvoríte zostavy na tlač alebo zobrazíte jej ukážku a neskôr zostavu zavriete alebo ju premiestníte na ďalšiu kartu objektu v Accesse, pre zostavu nastane nasledujúca postupnosť udalostí :

Šípka na otvorenieŠípkanačítaniaŠípka na aktiváciuŠípkana zatvorenieDeaktivovať

Pri prepínaní medzi dvoma otvorenými zostavami nastane udalosť Deactivate pre prvú zostavu a udalosť Activate pre druhú zostavu:

Šípka Deaktivovať (zostava1) Aktivovať (zostava2)

Udalosť Deactivate sa pre zostavu vyskytne aj pri prepínaní zo zostavy na inú kartu objektu v Accesse. Udalosť Deactivate však nenastane, ak sa prepnete do dialógového okna, do formulára, ktorého vlastnosť PopUp je nastavená na hodnotu Áno alebo do okna v inom programe.

Keď otvoríte zostavu, ktorá vychádza z dotazu, Access pred spustením príslušného dotazu spúšťa pre zostavu udalosť Open. Výsledkom je, že môžete nastaviť kritériá pre zostavu pomocou makra alebo udalostnej procedúry, ktorá bude zodpovedať udalosti Open. Makro alebo udalostná procedúra môžu napríklad otvoriť vlastné dialógové okno, v ktorom zadáte kritériá zostavy.

Udalosti pre sekcie zostavy

Pri tlači alebo zobrazení ukážky zostavy nastanú pre sekcie zostavy udalosti Format a Print po udalostiach Open a Activate pre zostavu a pred udalosťami Close alebo Deactivate pre zostavu:

Šípka otvorenia (zostava) Šípkanačítania (zostava) Šípka Activate (zostava) Šípkaformátu (sekcia zostavy) Šípkatlače (sekcia zostavy) Šípkana zatvorenie (zostava) Deactivate (zostava)

Zabezpečenie Filtrovanie zostáv používateľov môžete povoliť pomocou zobrazenia zostavy. Na rozdiel od ukážky pred tlačou sa však udalosti formátovania a tlače v žiadnej sekcii nevyskytujú v zobrazení zostavy. To isté platí aj pre výsledky funkcie VBA a používateľom definované procedúry, ktoré sa zobrazujú v ovládacích prvkoch (napríklad popisy označení, stav zobrazenia, podmienené formátovanie, zmena veľkosti ovládacích prvkov a podobne) v rámci týchto udalostí. Preto v tejto udalosti nepoužívajte kód na formátovanie, skrytie alebo tlač dôverných údajov, ktoré by mohli byť odhalené. Odporúčame predbežné filtrovanie údajov alebo zakázanie ukážky zostavy nastavením vlastnosti AllowReportView na hodnotu Nie.

Okrem toho počas formátovania alebo po formátovaní môžu vyskytnúť nasledujúce udalosti (ale vždy pred udalosťou Print):

  • Udalosť Retreat nastane v prípade, že Access počas formátovania zostavy prejde naspäť do predchádzajúcej sekcie.
  • Udalosť NoData nastane v prípade, že zostava nezobrazuje žiadne záznamy.
  • Udalosť Page nastane po formátovaní, ale pred tlačou. Túto udalosť môžete použiť na prispôsobenie vzhľadu vytlačenej zostavy.

Na začiatok stránky