Pořadí událostí pro databázové objekty

Jedna akce, jako je přechod z jednoho ovládacího prvku objektu na jiný, může aktivovat různé události, které nastanou v určitém pořadí. Je důležité vědět, kdy a v jakém pořadí k událostem dochází, protože to může mít vliv na způsob a načasování spuštění maker nebo obslužných procedur událostí. Pokud máte třeba dvě obslužné procedury událostí, které se spouštějí v určitém pořadí, budete chtít, aby přidružené události proběhly ve stejném pořadí.

V tomto článku

Pořadí událostí u ovládacích prvků ve formulářích

Pořadí událostí u záznamů ve formulářích

Pořadí událostí u formulářů a podformulářů

Pořadí událostí u klávesových úhozů a kliknutí myší

Pořadí událostí u sestav a jejich oddílů

Pořadí událostí u ovládacích prvků ve formulářích

U ovládacích prvků formulářů dochází k událostem, když přesunete Fokus na ovládací prvek nebo když v ovládacím prvku změníte a aktualizujete data.

Poznámka: Microsoft Office Access zobrazuje názvy událostí trochu jinak ve Visual Basic Editoru než v seznamu vlastností a v Tvůrci maker. Například událost, která je v seznamu vlastností formuláře a v Tvůrci maker pojmenovaná Při získání fokusu, se ve Visual Basic Editoru jmenuje GotFocus. Příklady v tomto článku používají pro názvy událostí formát VBA (Visual Basic for Applications).

Přesunutí fokusu na ovládací prvek

Když přesunete fokus na ovládací prvek formuláře (například při otevření formuláře, který obsahuje jeden nebo více aktivních ovládacích prvků, nebo při přesunutí fokusu na jiný ovládací prvek stejného formuláře), nastanou události Enter a GotFocus v tomto pořadí:

Zadání Šipka GotFocus

Při otevření formuláře nastanou události Enter a GotFocus až po událostech spojených s otevřením formuláře (například Open, Activate a Current) v následujícím pořadí:

Open (formulář) Šipka Activate (formulář) Šipka Current (formulář) Šipka ENTER (ovládací prvek) Šipka GotFocus (ovládací prvek)

Když fokus opustí ovládací prvek formuláře (například když zavřete formulář, který obsahuje jeden nebo více aktivních ovládacích prvků nebo když přejdete k jinému ovládacímu prvku stejného formuláře), nastanou události Exit a LostFocus v tomto pořadí:

Exit Šipka LostFocus

Když zavřete formulář, nastanou události Exit a LostFocus před událostmi spojenými se zavřením formuláře (jako je Unload, Deactivate a Close) v následujícím pořadí:

Exit (ovládací prvek) Šipka LostFocus (ovládací prvek) Šipka Unload (formulář) Šipka Deactivate (formulář) Šipka Close (formulář)

Změna a aktualizace dat ovládacího prvku

Když do ovládacího prvku formuláře zadáte data nebo je v něm změníte a pak přesunete fokus do jiného ovládacího prvku, nastanou události BeforeUpdate a AfterUpdate v tomto pořadí:

BeforeUpdate Šipka afterUpdate

Události Exit a LostFocus u ovládacího prvku se změněnou hodnotou nastanou po událostech BeforeUpdate a AfterUpdate:

BeforeUpdate Šipka AfterUpdate Šipka Exit Šipka LostFocus

Pokud změníte text v textovém poli nebo v textové části pole se seznamem, nastane událost Change. Tato událost nastane při každé změně obsahu ovládacího prvku, ale ještě před přesunutím fokusu na jiný ovládací prvek nebo záznam (to znamená před událostmi BeforeUpdate a AfterUpdate). Následující posloupnost událostí nastane pro každou klávesu, kterou stisknete v textovém poli nebo v textové části pole se seznamem:

Stisknutí klávesy Šipka #x2 Šipka Změna Šipka KeyUp

Událost NotInList nastane, když do pole se seznamem zadáte hodnotu, která v tomto poli není, a pak se pokusíte přesunout fokus na jiný ovládací prvek nebo záznam. Událost NotInList nastane po událostech klávesnice a po události Change pole se seznamem, ale ještě před událostmi jiného ovládacího prvku nebo formuláře. Pokud je vlastnost LimitToList pole se seznamem nastavena na hodnotu Yes, nastane hned po události NotInList událost formuláře Error:

Stisknutí klávesy Šipka KeyPress Šipka Šipka změnit Šipka KeyUp Šipka

Začátek stránky

Pořadí událostí u záznamů ve formulářích

U záznamů ve formulářích dochází k událostem, když přesunete Fokus na jiný záznam, aktualizujete data záznamu, odstraníte stávající záznam (nebo záznamy) nebo vytvoříte nový záznam.

Přesunutí fokusu na záznamy a aktualizace dat v záznamech

Když fokus přesunete na stávající záznam ve formuláři, zadáte nebo změníte data v záznamu a pak přesunete fokus na jiný záznam, proběhne ve formuláři následující posloupnost událostí:

Current (formulář) Šipka BeforeUpdate (formulář) Šipka AfterUpdate (formulář) Šipka aktuální (formulář)

Při opuštění záznamu, u kterého se změnila data, ale ještě před zadáním dalšího záznamu, proběhnou u ovládacího prvku s fokusem události Exit a LostFocus. Tyto události nastanou až po událostech BeforeUpdate a AfterUpdate formuláře v následujícím pořadí:

BeforeUpdate (formulář) Šipka AfterUpdate (formulář) Šipka Exit (ovládací prvek) Šipka LostFocus (ovládací prvek) Šipka Current (formulář)

Při přesunu fokusu mezi ovládacími prvky formuláře proběhnou tyto události u každého ovládacího prvku. Při následujících akcích například proběhnou tyto posloupnosti událostí:

  • Otevření formuláře a změna dat v ovládacím prvku:

    Current (formulář) Šipka ENTER (ovládací prvek) Šipka GotFocus (ovládací prvek) Šipka BeforeUpdate (ovládací prvek) Šipka AfterUpdate (ovládací prvek)

  • Přesunutí fokusu do jiného ovládacího prvku:

    Exit (ovládací prvek 1) Šipka LostFocus (ovládací prvek 1) Šipka ENTER (ovládací prvek 2) Šipka GotFocus (ovládací prvek 2)

  • Přesunutí fokusu do jiného záznamu:

    BeforeUpdate (formulář) Šipka AfterUpdate (formulář) Šipka Exit (ovládací prvek 2) Šipka LostFocus (ovládací prvek 2) Šipka Current (formulář)

Odstranění záznamů

Při odstranění záznamu proběhnou ve formuláři následující události a Microsoft Office Access zobrazí dialogové okno s žádostí o potvrzení odstranění:

Delete Šipka BeforeDelConfirm Šipka AfterDelConfirm

Pokud událost Delete zrušíte, události BeforeDelConfirm a AfterDelConfirm nenastanou a dialogové okno se nezobrazí.

Vytvoření nového záznamu

Když ve formuláři přesunete fokus na nový (prázdný) záznam a pak vytvoříte nový záznam tím, že do ovládacího prvku zadáte data, proběhne následující posloupnost událostí:

Current (formulář) Šipka ENTER (ovládací prvek) Šipka GotFocus (ovládací prvek) Šipka BeforeInsert (formulář) Šipka AfterInsert (formulář)

Aktivační události BeforeInsert (Form) hned po zahájení zadávání textu do ovládacího prvku. Aktivační události AfterInsert (Form) po opuštění záznamu

Události BeforeUpdate a AfterUpdate ovládacích prvků ve formuláři a nového záznamu nastanou po události BeforeInsert, ale ještě před událostí AfterInsert.

Začátek stránky

Pořadí událostí u formulářů a podformulářů

K událostem dochází, když formulář otevřete nebo zavřete, přecházíte mezi formuláři nebo pracujete s daty ve formuláři nebo podformuláři.

Otevření a zavření formuláře

Když otevřete formulář, proběhne u něj následující posloupnost událostí:

Otevřít Šipka načíst Šipka Šipka aktivovat Šipka aktuální

Pokud ve formuláři nejsou aktivní ovládací prvky, nastane v něm událost GotFocus po události Activate, ale ještě před událostí Current.

Když zavřete formulář, proběhne následující posloupnost událostí:

Uvolnit Šipka deaktivovat Šipka Zavřít

Pokud ve formuláři nejsou aktivní ovládací prvky, nastane v něm událost LostFocus po události Unload, ale ještě před událostí Deactivate.

Přechod mezi formuláři

Když přepnete mezi dvěma otevřenými formuláři, nastane u prvního formuláře událost Deactivate a u druhého formuláře událost Activate:

Deactivate (form1) Šipka Activate (Form2)

Událost Deactivate u formuláře také nastane, když v Accessu přepnete z formuláře na jinou kartu objektu. Událost Deactivate ale nenastane, když přepnete do dialogového okna s formulářem, jehož vlastnost PopUp je nastavena na hodnotu Yes, nebo do okna s jiným programem.

Poznámka: Událost Open nenastane, pokud fokus přesunete do formuláře, který je otevřený, i když jste fokus do daného formuláře přesunuli provedením akce OpenForm.

Práce s daty ve formuláři

Události formuláře a ovládacích prvků nastávají, když ve formuláři přecházíte mezi záznamy a měníte data. Když například poprvé otevřete formulář, proběhne následující posloupnost událostí:

Open (formulář) Šipka Load (formulář) Šipka změnit velikost (formulář) Šipka aktivovat (formulář) Šipka Current (formulář) Šipka ENTER (ovládací prvek)0 GotFocus (ovládací prvek)

Podobně při zavření formuláře proběhne následující posloupnost událostí:

Exit (ovládací prvek) Šipka LostFocus (ovládací prvek) Šipka Unload (formulář) Šipka Deactivate (formulář) Šipka Close (formulář)

Pokud jste v ovládacím prvku změnili data, nastanou události BeforeUpdate a AfterUpdate ovládacího prvku i formuláře před událostí ovládacího prvku Exit.

Práce s podformuláři

Když otevřete formulář, který obsahuje podformulář, načte se podformulář a jeho záznamy před hlavním formulářem. Události podformuláře a jeho ovládacích prvků (například Open, Current, Enter a GotFocus) nastanou před událostmi formuláře. U podformulářů ale nedojde k události Activate. To znamená, že při otevření hlavního formuláře se událost Activate spustí jen pro hlavní formulář.

Podobně platí, že pokud zavřete formulář, který obsahuje podformulář, zruší se načtení podformuláře a jeho záznamů až po formuláři. U podformulářů nedojde k události Deactivate. To znamená, že při zavření hlavního formuláře se událost Deactivate spustí jen pro hlavní formulář. K událostem ovládacích prvků, formulářů a podformulářů dochází v následujícím pořadí:

  1. Události ovládacích prvků podformulářů (např. Exit a LostFocus)

  2. Události ovládacích prvků formuláře (včetně ovládacího prvku podformuláře)

  3. Události formuláře (např. Deactivate a Close)

  4. Události podformuláře

Poznámka: Události podformuláře nastanou až po zavření hlavního formuláře, a proto některé události, třeba zrušení zavření hlavního formuláře událostí v podformuláři, nenastanou. Pravděpodobně bude potřeba přesunout tyto typy validačních testů k události hlavního formuláře.

Začátek stránky

Pořadí událostí u klávesových úhozů a kliknutí myší

Události klávesnice ve formulářích nebo na ovládacích prvcích nastanou, když je Fokus ve formuláři nebo na ovládacím prvku a stisknete klávesy nebo odešlete klávesové úhozy. Události myši nastanou u formulářů, oddílů formulářů a ovládacích prvků ve formulářích, když kliknete na tlačítka myši a ukazatel myši je ve formuláři, oddílu nebo na ovládacím prvku. Události myši také nastanou, když přesunete ukazatel myši přes formulář, oddíl formuláře nebo ovládací prvek.

Události klávesnice

Když je fokus na ovládacím prvku ve formuláři a vy stisknete a uvolníte klávesu (nebo použijete k odeslání stisknutí klávesy akci SendKeys nebo Příkaz), proběhne následující posloupnost událostí:

Stisknutí klávesy Šipka #x2 KeyUp

Když stisknete a uvolníte klávesu nebo v Znaková sada ANSI odešlete klávesu, dojde k událostem KeyDown, KeyPressa KeyUp . Když stisknete a podržíte klávesu ANSI, události KeyDown a KeyPress střídavě opakovaně (zapíná, KeyPress, KeyDown, KeyPressatd.), dokud neuvolníte klávesu. dojde k události KeyUp .

Pokud stisknete a uvolníte jinou klávesu než ANSI, proběhnou události KeyDown a KeyUp. Pokud stisknete a podržíte jinou klávesu než ANSI, opakovaně probíhá událost KeyDown, dokud klávesu neuvolníte, a pak nastane událost KeyUp.

Pokud stisknutím klávesy aktivujete jinou událost ovládacího prvku, nastane tato událost po události KeyPress, ale ještě před událostí KeyUp. Když například stisknutím klávesy změníte text v textovém poli, čímž aktivujete událost Change, proběhne následující posloupnost událostí:

Stisknutí klávesy Šipka KeyPress Šipka Změna Šipka KeyUp

Pokud stisknutí klávesy způsobí, že se fokus přesune z jednoho ovládacího prvku na jiný, nastane u prvního ovládacího prvku událost KeyDown, zatímco u druhého ovládacího prvku nastanou události KeyPress a KeyUp. Když například změníte data v ovládacím prvku a pak stisknete klávesu TAB, abyste přešli k dalšímu ovládacímu prvku, proběhne následující posloupnost událostí:

  • První ovládací prvek:

    Šipka Šipka BeforeUpdate Šipka Exit Šipka LostFocus

  • Druhý ovládací prvek:

    Zadejte Šipka GotFocus Šipka Šipka KeyUp

Události myši

Když je ukazatel myši na ovládacím prvku formuláře a vy kliknete na tlačítko myši a uvolníte ho, proběhne u ovládacího prvku následující posloupnost událostí:

MouseDown Šipka MouseUp Šipka klikněte na

Pokud je fokus na ovládacím prvku a kliknete na jiný ovládací prvek, abyste do něj fokus přesunuli, proběhnou následující posloupnosti událostí:

  • První ovládací prvek:

    Exit Šipka LostFocus

  • Druhý ovládací prvek:

    Zadejte Šipka GotFocus Šipka MouseDown Šipka MouseUp Šipka klikněte na

Pokud přejdete na jiný záznam a pak kliknete na ovládací prvek, nastane před událostí Enter ovládacího prvku ještě událost Current formuláře.

Když poklikáte na ovládací prvek, nastanou události Click a DblClick. Pokud například poklikáte na jiný ovládací prvek než na příkazové tlačítko, proběhne následující posloupnost událostí ovládacího prvku:

Najeďte myší Šipka MouseUp Šipka klikněte na Šipka DblClick Šipka MouseUp

Když poklikáte na příkazové tlačítko, proběhne předchozí posloupnost událostí následovaná druhou událostí Click.

Událost MouseMove formuláře, oddílu nebo ovládacího prvku nastane, když ukazatel myši přesunete přes formulář, oddíl nebo ovládací prvek. Tato událost je nezávislá na jiných událostech myši.

Začátek stránky

Pořadí událostí u sestav a jejich oddílů

U sestav a jejich oddílů probíhají události při otevření sestavy kvůli tisku, zobrazení náhledu nebo při jejím zavření.

Události sestav

Když otevřete sestavu, abyste si ji vytiskli nebo zobrazili její náhled a pak ji zavřete nebo v Accessu přejdete na jinou kartu objektu, proběhne v sestavě následující posloupnost událostí:

Otevření Šipka aktivace Šipka Zavřít Šipka deaktivace

Když přepnete mezi dvěma otevřenými sestavami, nastane u první sestavy událost Deactivate a u druhé sestavy událost Activate:

Deaktivace (report1) Šipka Aktivace (Report2)

Událost Deactivate sestavy také nastane, když v Accessu přepnete ze sestavy na jinou kartu objektu. Událost Deactivate ale nenastane, když přepnete do dialogového okna s formulářem, jehož vlastnost PopUp je nastavena na hodnotu Yes, nebo do okna s jiným programem.

Když otevřete sestavu, která je založená na dotazu, Access před spuštěním příslušného dotazu spustí pro sestavu událost Open. To znamená, že k nastavení kritérií sestavy můžete použít makro nebo obslužnou proceduru události, která odpovídá události Open. Makro nebo obslužná procedura události může otevřít třeba vlastní dialogové okno pro zadání kritérií sestavy.

Události oddílů sestav

Když tisknete sestavu nebo zobrazujete její náhled, nastanou pro oddíly sestavy události Format a Print. Dojde k tomu po událostech sestavy Open a Activate, ale ještě před jejími událostmi Close nebo Deactivate:

Otevřít (sestava) Šipka Aktivace (sestavy) Šipka formát (oddíl sestavy) Šipka Print (oddíl sestavy) Šipka Close (sestava) Šipka Deactivate (sestava)

Zabezpečení    Pomocí zobrazení sestavy můžete povolit filtrování uživatelů v sestavách. Ale na rozdíl od náhledu tisku se v zobrazení sestavy nevyskytují události Format a Print v jakémkoli oddílu. Platí to taky pro výsledky funkcí jazyka VBA a uživatelem definované procedury, které se zobrazují v ovládacích prvcích (například popisky popisků, zobrazení stavu, podmíněné formátování, změna velikosti ovládacích prvků atd.) v těchto událostech. Proto nepoužívejte kód v této události k formátování, skrytí nebo tisku důvěrných dat, která by mohla být vystavena. Doporučujeme předběžné filtrování dat nebo zakázání náhledu sestavy nastavením vlastnosti AllowReportView na hodnotu ne.

Během formátování nebo po něm, ale ještě před událostí Print, také mohou nastat následující události:

  • Událost Retreat nastane, když se Access při formátování sestavy vrátí k předchozímu oddílu.

  • Událost NoData nastane, když se v sestavě nezobrazí žádné záznamy.

  • Událost Page nastane po formátování, ale ještě před tiskem. Tuto událost můžete použít k přizpůsobení vzhledu tištěné sestavy.

Začátek stránky

Poznámka:  Tato stránka byla přeložena automaticky a může obsahovat gramatické chyby nebo nepřesnosti. Naším cílem je to, aby pro vás byl její obsah užitečný. Mohli byste nám prosím dát vědět, jestli vám informace pomohly? Pokud chcete, můžete se podívat na anglickou verzi článku.

Potřebujete další pomoc?

Rozšiřte své dovednosti s Office
Projít školení
Získejte nové funkce jako první
Připojte se k účastníkům programu Office Insiders

Byly tyto informace užitečné?

Děkujeme vám za zpětnou vazbu.

Děkujeme vám za váš názor! Pravděpodobně bude užitečné, když vás spojíme s některým z našich agentů podpory Office.

×