Applies ToAccess pre Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Jednoduchá akcia, napríklad presun z jedného ovládacieho prvku na objekte na iný ovládací prvok, môže spustiť niekoľko rôznych udalostí, ktoré nastanú v určitom poradí. 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ď premiestníte 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í:

Zadajte šípka GotFocus

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í:

Otvoriť (formulár) šípkaAktivovať (formulár) šípkaAktuálny (formulár) šípkaEnter (ovládací prvok) šípkaGotFocus (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ť šípka LostFocus

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í:

Exit (control) šípkaLostFocus (control) šípkaUnload (form) šípkaDeactivate (form) šípkaClose (form)

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:

BeforeUpdate šípka Afte rUpdate

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

BeforeUpdate šípka AfterUpdate šípka Exit šípka LostFocus

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:

KeyDown šípka KeyPress šípka Dirty šípka Zmeniť šípka KeyUp

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ť rozbaľovacieho poľa LimitToList nastavená na hodnotu Yes, udalosť formulára Error nastane hneď po udalosti NotInList:

KeyDown šípka KeyPress šípka Dirty šípka Zmena šípka KeyUp šípka NotInList 0 chyba

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 prípadne 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í :

Current (form) šípkaBeforeUpdate (form) šípkaAfterUpdate (form) šípkaCurrent (form)

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í:

BeforeUpdate (formulár) šípkaAfterUpdate (form) šípkaExit (control) šípkaLostFocus (control) šípkaCurrent (form)

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:

    Current (form) šípkaEnter (control) šípkaGotFocus (control) šípkaBeforeUpdate (control) šípkaAfterUpdate (control)

  • Prechod na iný ovládací prvok:

    Exit (control1) šípkaLostFocus (control1) šípkaEnter (control2) šípkaGotFocus (control2)

  • Prechod na iný záznam:

    BeforeUpdate (form) šípkaAfterUpdate (form) šípkaExit (control2) šípkaLostFocus (control2) šípkaCurrent (form)

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:

Odstrániť šípka BeforeDelConfirm šípka AfterDelConfirm

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í:

Current (form) šípkaEnter (control) šípkaGotFocus (control) šípkaBeforeInsert (form) šípkaAfterInsert (form)

Udalosť BeforeInsert (formulár) sa spustí hneď, ako začnete písať do ovládacieho prvku. Udalosť AfterInsert (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í:

Otvorenie šípka položky Načítať šípka Zmeniť veľkosť šípka Aktivovať šípka Aktuálne

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í:

Uvoľniť šípka deaktivovať šípka zavrieť

Ak vo formulári nie je žiaden aktívny ovládací prvok, pre formulár sa vygeneruje udalosť LostFocus 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:

Deaktivovať (formulár1) šípkaaktivovať (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í:

Open (form) šípkaLoad (form) šípkaResize (form) šípkaActivate (form) šípkaCurrent (form) šípkaEnter (control)0 GotFocus (control)

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

Exit (control) šípkaLostFocus (control) šípkaUnload (form) šípkaDeactivate (form) šípkaClose (form)

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ď má formulár alebo ovládací prvok zameranie. 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 SendKeys alebo príkaz na odoslanie stlačenia klávesu), nastane nasledujúca postupnosť udalostí:

KeyDown šípka KeyPress šípka KeyUp

Keď stlačíte a uvoľníte kláves alebo odošlete stlačenie klávesu v tabuľka znakov ANSI, dôjde k udalostiam KeyDown, KeyPress a KeyUp . Ak stlačíte a podržte kláves ANSI, KeyDown a KeyPress udalosti striedajú opakovane (KeyDown, KeyPress, KeyDown, KeyPress, a tak ďalej), kým sa uvoľníte kľúč; potom nastane udalosť KeyUp .

Ak stlačíte a uvoľníte kláves, ktorý nie je klávesom ANSI, vyskytnú sa udalosti KeyDown a KeyUp . Ak stlačíte a podržíte kláves, ktorý nie je klávesom ANSI, udalosť KeyDown sa bude opakovať dovtedy, kým kláves nevydáte, a 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í:

KeyDown šípka KeyPress šípka Zmeniť šípka KeyUp

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:

    KeyDown šípka BeforeUpdate šípka AfterUpdate šípka Exit šípka LostFocus

  • Druhý ovládací prvok:

    Zadajte šípka GotFocus šípka KeyPress šípka KeyUp

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í:

MouseDown šípka MouseUp šípka Click

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ť šípka LostFocus

  • Druhý ovládací prvok:

    Zadajte šípka GotFocus šípka MouseDown šípka MouseUp šípka Click

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:

MouseD vlastné šípka MouseUp šípka Click šípka DblClick šípka MouseUp

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í :

Otvorenie šípka aktivácie šípka zavretie šípka deaktivácia

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

Deaktivovať (zostava1) šípkaaktivovať (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:

Otvorenie (zostava) šípkaAktivácia (zostava) vo formáte šípka(sekcia zostavy) šípkatlači (sekcia zostavy) šípkazavretie (zostava) šípkadeaktivácia (zostava )

Zabezpečenie    Zobrazenie zostavy môžete použiť na povolenie filtrovania zostáv používateľmi. Na rozdiel od ukážky pred tlačou sa však udalosti Formát a Tlač v žiadnej časti v zobrazení zostavy nevyskytnú. To platí aj pre výsledky funkcie VBA a používateľom definované postupy, 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 atď.) v rámci týchto udalostí. Preto nepoužívajte kód v tejto udalosti na formátovanie, skrytie alebo tlač dôverných údajov, ktoré sa môžu zobraziť. Odporúčame vopred filtrovať údaje alebo vypnúť ukážku 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

Potrebujete ďalšiu pomoc?

Chcete ďalšie možnosti?

Môžete preskúmať výhody predplatného, prehľadávať školiace kurzy, naučiť sa zabezpečiť svoje zariadenie a ešte oveľa viac.

Komunity pomôžu s kladením otázok a odpovedaním na ne, s poskytovaním pripomienok a so získavaním informácií od odborníkov s bohatými znalosťami.