Jednoduchá akce, například přechod z jednoho ovládacího prvku (Ovládací prvek: Objekt grafického uživatelského rozhraní, jako jsou např. textové pole, zaškrtávací políčko, posuvník nebo příkazové tlačítko, který uživatelům umožňuje ovládat daný program. Pomocí ovládacích prvků lze zobrazit data nebo volby, provést určitou akci nebo zpřehlednit zobrazení uživatelského rozhraní.) v objektu na jiný ovládací prvek, může spustit několik různých událostí (Událost: Akce rozpoznávaná objektem, například kliknutí myší nebo stisknutí klávesy, pro kterou lze nadefinovat odezvu. Událost může být způsobena akcí uživatele nebo příkazem jazyka Visual Basic, případně může být také vyvolána systémem.), které proběhnou v určitém pořadí. Znalost toho, kdy k událostem dojde a v jakém pořadí, je důležitá, protože toto pořadí může mít vliv na způsob a čas spuštění maker (Makro: Akce nebo sada akcí, které můžete použít k automatizaci úloh) nebo obslužných procedur událostí (Obslužná procedura události: Procedura vykonávaná automaticky jako odezva na událost inicializovanou uživatelem nebo programovým kódem nebo vyvolanou systémem). Pokud například existují dvě obslužné procedury událostí, které mají být spuštěny v určitém pořadí, je nutné zajistit, aby k událostem přiřazeným k těmto procedurám došlo ve stejném pořadí.
V tomto článku
Pořadí událostí pro ovládací prvky ve formulářích
V případě ovládacích prvků ve formulářích dojde k událostem v situaci, kdy přesunete fokus (Fokus: Schopnost přijímat vstup uživatele prostřednictvím akcí myši či klávesnice nebo metody SetFocus. Fokus může být nastaven uživatelem nebo aplikací. Objekt, na kterém je fokus, je obvykle označen zvýrazněným popiskem nebo záhlavím.) na jiný ovládací prvek nebo změníte či aktualizujete data v ovládacím prvku.
Poznámka Aplikace Microsoft Office Access zobrazuje názvy událostí v editoru jazyka Visual Basic trochu jinak než v seznamu vlastností a Tvůrci maker. Například událost s názvem On Got Focus v seznamu vlastností formuláře a v Tvůrci maker má v editoru jazyka Visual Basic název GotFocus. V příkladech v tomto článku je pro názvy událostí použitý formát jazyka VBA (Visual Basic for Applications).
Přesun fokusu na ovládací prvek
Při přesunu fokusu na ovládací prvek ve formuláři (například otevřením formuláře, který obsahuje jeden nebo více aktivních ovládacích prvků, nebo přesunutím fokusu na jiný ovládací prvek ve stejném formuláři) dojde k událostem Enter a GotFocus v tomto pořadí:
Enter
GotFocus
Otevřete-li formulář, dojde k událostem Enter a GotFocus po událostech spojených s otevřením formuláře (například události Open, Activate a Current) v následujícím pořadí:
Open (formulář)
Activate (formulář)
Current (formulář)
Enter (ovládací prvek)
GotFocus (ovládací prvek)
Při přesunu fokusu pryč z ovládacího prvku ve formuláři (například zavřením formuláře, který obsahuje jeden nebo více aktivních ovládacích prvků, nebo přesunutím na jiný ovládací prvek ve stejném formuláři) dojde k událostem Exit a LostFocus v tomto pořadí:
Exit
LostFocus
Při zavření formuláře dojde k událostem Exit a LostFocus před událostmi souvisejícími se zavřením formuláře (například Unload, Deactivate a Close) v následujícím pořadí:
Exit (ovládací prvek)
LostFocus (ovládací prvek)
Unload (formulář)
Deactivate (formulář)
Close (formulář)
Změna a aktualizace dat v ovládacím prvku
Zadáte-li nebo změníte-li data v ovládacím prvku ve formuláři a poté přesunete fokus na jiný ovládací prvek, dojde k událostem BeforeUpdate a AfterUpdate v tomto pořadí:
BeforeUpdate
AfterUpdate
K událostem Exit a LostFocus pro změněný ovládací prvek dojde po událostech BeforeUpdate a AfterUpdate:
BeforeUpdate
AfterUpdate
Exit
LostFocus
Změníte-li text v textovém poli nebo v textové části pole se seznamem, dojde k události Change. K této události dojde při každé změně obsahu ovládacího prvku, ale před přemístěním na jiný ovládací prvek nebo záznam (tedy předtím, než dojde k událostem BeforeUpdate a AfterUpdate). K následující posloupnosti událostí dojde po každém stisknutí klávesy v textovém poli nebo v textové části pole se seznamem:
KeyDown
KeyPress
Dirty
Change
KeyUp
K události NotInList dojde poté, co zadáte do pole se seznamem hodnotu, která není v seznamu, a poté se pokusíte přemístit na jiný ovládací prvek nebo záznam. Dojde k ní po událostech klávesnice a po události Change pro pole se seznamem, ale před jakýmikoli jinými událostmi ovládacího prvku nebo formuláře. Je-li vlastnost pole se seznamem Omezit na seznam nastavena na hodnotu Ano, dojde pro formulář bezprostředně po události NotInList k události Error:
KeyDown
KeyPress
Dirty
Change
KeyUp
NotInList
Error
Začátek stránky
Pořadí událostí pro záznamy ve formulářích
V případě záznamů ve formulářích dojde k událostem v situaci, kdy přesunete fokus (Fokus: Schopnost přijímat vstup uživatele prostřednictvím akcí myši či klávesnice nebo metody SetFocus. Fokus může být nastaven uživatelem nebo aplikací. Objekt, na kterém je fokus, je obvykle označen zvýrazněným popiskem nebo záhlavím.) na záznam, aktualizujete data v záznamu, odstraníte existující záznam nebo záznamy, případně vytvoříte nový záznam.
Přesun fokusu na záznam a aktualizace dat v záznamech
Přesunete-li fokus na existující záznam ve formuláři, zadáte nebo změníte data v tomto záznamu a poté přesunete fokus na jiný záznam, bude pro formulář generována tato posloupnost událostí:
Current (formulář)
BeforeUpdate (formulář)
AfterUpdate (formulář)
Current (formulář)
Po opuštění záznamu, jehož data byla změněna, ale před vstupem do dalšího záznamu budou pro ovládací prvek, který má fokus, generovány události Exit a LostFocus. K těmto událostem dojde po událostech BeforeUpdate a AfterUpdate generovaných pro formulář v tomto pořadí:
BeforeUpdate (formulář)
AfterUpdate (formulář)
Exit (ovládací prvek)
LostFocus (ovládací prvek)
RecordExit (formulář)
Current (formulář)
Když přesouváte fokus mezi ovládacími prvky ve formuláři, dojde k událostem pro každý ovládací prvek. V případě následujících akcí dojde k následujícím posloupnostem událostí:
- Otevření formuláře a změna dat v ovládacím prvku:
Current (formulář)
Enter (ovládací prvek)
GotFocus (ovládací prvek)
BeforeUpdate (ovládací prvek)
AfterUpdate (ovládací prvek)
- Přesunutí fokusu na jiný ovládací prvek:
Exit (ovládací prvek 1)
LostFocus (ovládací prvek 1)
Enter (ovládací prvek 2)
GotFocus (ovládací prvek 2)
- Přesunutí fokusu na jiný záznam:
BeforeUpdate (formulář)
AfterUpdate (formulář)
Exit (ovládací prvek 2)
LostFocus (ovládací prvek 2)
RecordExit (formulář)
Current (formulář)
Odstraňování záznamů
Odstraníte-li záznam, budou pro formulář generovány následující události a aplikace Microsoft Access zobrazí dialogové okno se žádostí o potvrzení odstranění:
Delete
BeforeDelConfirm
AfterDelConfirm
Jestliže událost Delete zrušíte, k událostem BeforeDelConfirm a AfterDelConfirm nedojde a dialogové okno se nezobrazí.
Vytvoření nového záznamu
Přesunete-li fokus na nový (prázdný) záznam ve formuláři a poté vytvoříte nový záznam zápisem do ovládacího prvku, dojde k následující posloupnosti událostí:
Current (formulář)
Enter (ovládací prvek)
GotFocus (ovládací prvek)
BeforeInsert (formulář)
AfterInsert (formulář)
K událostem BeforeUpdate a AfterUpdate pro ovládací prvky ve formuláři a pro nový záznam dojde po události BeforeInsert a před událostí AfterInsert.
Začátek stránky
Pořadí událostí pro formuláře a podformuláře
V případě formuláře dojde k událostem v situaci, kdy otevřete nebo zavřete formulář, přesunete se mezi formuláři nebo pracujete s daty ve formuláři.
Otevření a zavření formuláře
Otevřete-li formulář, bude pro formulář generována následující posloupnost událostí:
Open
Load
Resize
Activate
Current
Není-li ve formuláři aktivní ovládací prvek, bude pro formulář generována rovněž událost GotFocus po události Activate, ale před událostí Current.
Zavřete-li formulář, bude pro formulář generována tato posloupnost událostí:
Unload
Deactivate
Close
Nejsou-li ve formuláři aktivní ovládací prvky, bude pro formulář generována rovněž událost LostFocus po události Unload, ale před událostí Deactivate.
Přesun mezi formuláři
Při přepínání mezi dvěma otevřenými formuláři dojde pro první formulář k události Deactivate a pro druhý formulář k události Activate:
Deactivate (formulář 1)
Activate (formulář 2)
K události Deactivate dojde pro formulář i v případě, že z formuláře přepnete do jiného okna aplikace Access. K události Deactivate ovšem nedojde, přepnete-li do dialogového okna nebo formuláře, jehož vlastnost Překryvné okno je nastavena na hodnotu Ano, nebo do okna v jiné aplikaci.
Poznámka K události Open nedojde, pokud se přesunete do formuláře, který už je otevřený, a to ani v případě, že se do formuláře přesunete pomocí akce OtevřítFormulář.
Práce s daty ve formuláři
V případě formuláře a ovládacího prvku dojde k událostem při přesunu mezi záznamy ve formuláři a při změně dat. Otevřete-li například poprvé formulář, dojde k této posloupnosti událostí:
Open (formulář)
Load (formulář)
Resize (formulář)
Activate (formulář)
Current (formulář)
Enter (ovládací prvek)
GotFocus (ovládací prvek)
Podobně při zavření formuláře dojde k této posloupnosti událostí:
Exit (ovládací prvek)
LostFocus (ovládací prvek)
Unload (formulář)
Deactivate (formulář)
Close (formulář)
Jestliže jste změnili data v ovládacím prvku, dojde k událostem BeforeUpdate a AfterUpdate pro ovládací prvek i pro formulář před událostí Exit.
Práce s podformuláři
Otevřete-li formulář, který obsahuje podformulář, je podformulář a jeho záznamy zaveden před hlavním formulářem. Znamená to, že události pro podformulář a jeho ovládací prvky (například Open, Current, Enter a GotFocus) budou generovány před událostmi pro formulář. V podformulářích ovšem nedochází k události Activate, takže otevření hlavního formuláře generuje událost Activate pouze pro hlavní formulář.
Podobně při zavření formuláře, který obsahuje podformulář, je podformulář se svými záznamy uvolněn až po formuláři. Pro podformuláře nedochází k události Deactivate, takže zavření hlavního formuláře spustí událost Deactivate pouze pro hlavní formulář. K událostem pro ovládací prvky, formuláře a podformuláře dojde v tomto pořadí:
- Události pro ovládací prvky podformuláře (například Exit a LostFocus)
- Události pro ovládací prvky formuláře (včetně ovládacího prvku podformulář)
- Události pro formulář (například Deactivate a Close)
- Události pro podformulář
Poznámka Vzhledem k tomu, že události pro podformulář jsou generovány po zavření hlavního formuláře, nedojde k některým událostem, například zrušení zavření hlavního formuláře prostřednictvím události z podformuláře. Tyto typy ověření je tedy třeba přemístit do událostí hlavního formuláře.
Začátek stránky
Pořadí událostí pro klávesové úhozy a klepnutí myší
V případě formulářů a ovládacích prvků dochází k událostem klávesnice v situaci, kdy stisknete klávesu nebo předáte klávesové úhozy v době, kdy má formulář nebo ovládací prvek fokus (Fokus: Schopnost přijímat vstup uživatele prostřednictvím akcí myši či klávesnice nebo metody SetFocus. Fokus může být nastaven uživatelem nebo aplikací. Objekt, na kterém je fokus, je obvykle označen zvýrazněným popiskem nebo záhlavím.). V případě formulářů, sekcí a ovládacích prvků dochází k událostem myši v případě, že stisknete tlačítko myši v době, kdy je kurzor myši ve formuláři, sekci nebo ovládacím prvku, nebo když posunete ukazatelem myši nad formulářem, sekcí nebo ovládacím prvkem.
Události klávesnice
Pokud stisknete a uvolníte klávesu v době, kdy má ovládací prvek nebo formulář fokus (nebo použijete akci nebo příkaz (Příkaz: Syntakticky úplná jednotka, která vyjadřuje jeden konkrétní druh operace, deklarace nebo definice. Příkaz je v proceduře nebo oddílu deklarací obvykle uveden na samostatném řádku, ale na řádek je možné zadat i dva či více příkazů oddělených středníky (;).)PředatKlávesovéÚhozy pro předání klávesových úhozů), dojde k následující posloupnosti událostí:
KeyDown
KeyPress
KeyUp
Stisknete-li a uvolníte klávesu nebo odešlete klávesový úhoz ze znakové sady ANSI (Znaková sada ANSI: 8bitová znaková sada používaná operačním systémem Microsoft Windows, která umožňuje zadání až 256 různých znaků (0 až 255) pomocí klávesnice. Znaková sada ASCII je podsadou sady ANSI.), dojde k událostem KeyDown, KeyPress a KeyUp. Pokud klávesu ze znakové sady ANSI stisknete a podržíte stisknutou, budou se opakovaně střídat události KeyDown a KeyPress(KeyDown, KeyPress, KeyDown, KeyPress atd.), dokud klávesu neuvolníte. Potom dojde k události KeyUp.
Pokud stisknete a uvolníte klávesu, která není součástí sady ANSI, dojde k událostem KeyDown a KeyUp. Jestliže tuto klávesu stisknete a podržíte stisknutou, dojde opakovaně k událost KeyDown, dokud ji neuvolníte. Poté dojde k události KeyUp.
Jestliže stisknutí klávesy spouští pro ovládací prvek další událost, dojde k této události po události KeyPress, ale před událostí KeyUp. Jestliže například klávesový úhoz mění text v textovém poli spuštěním události Change, dojde k následující posloupnosti událostí:
KeyDown
KeyPress
Change
KeyUp
Jestliže klávesový úhoz přesune fokus z jednoho ovládacího prvku na druhý, dojde pro první ovládací prvek k události KeyDown, zatímco pro druhý ovládací prvek dojde k událostem KeyPress a KeyUp. Jestliže například změníte data v ovládacím prvku a potom stisknete klávesu TAB pro přesun na další ovládací prvek, dojde k následujícím posloupnostem událostí:
KeyDown
BeforeUpdate
AfterUpdate
Exit
LostFocus
Enter
GotFocus
KeyPress
KeyUp
Události myši
Když stisknete a uvolníte tlačítko myši v době, kdy je ukazatel myši v ovládacím prvku nebo ve formuláři, dojde pro ovládací prvek k této posloupnost událostí:
MouseDown
MouseUp
Click
Má-li nějaký ovládací prvek fokus a vy klepnete na jiný ovládací prvek, abyste na něj přesunuli fokus, dojde k této posloupnosti událostí:
Exit
LostFocus
Enter
GotFocus
MouseDown
MouseUp
Click
Jestliže se přesunete na jiný záznam a poté klepnete na ovládací prvek, dojde před událostí Enter pro ovládací prvek také k události Current pro formulář.
Poklepání na ovládací prvek způsobí výskyt události Click a DblClick. Pokud například poklepete na jiný ovládací prvek, než je příkazové tlačítko, dojde pro ovládací prvek k této posloupnosti událostí:
MouseDown
MouseUp
Click
DblClick
MouseUp
Poklepete-li na příkazové tlačítko, dojde ke stejným událostem a poté k druhé události Click.
Pro formulář, sekci nebo ovládací prvek dojde k události MouseMove v případě, že posunete ukazatelem myši nad formulářem, sekcí nebo ovládacím prvkem. Tato událost je nezávislá na ostatních událostech myši.
Začátek stránky
Pořadí událostí pro sestavy a sekce sestav
K událostem pro sestavy a sekce sestav dojde v případě, že otevřete sestavu pro tisk nebo pro náhled nebo sestavu zavřete.
Události pro sestavu
Když otevřete sestavu pro tisk nebo pro náhled a později sestavu zavřete nebo se přesunete do jiného okna v aplikaci Microsoft Access, dojde pro sestavu k této posloupnost událostí:
Open
Activate
Close
Deactivate
Přepnete-li mezi dvěma otevřenými sestavami, dojde pro první sestavu k události Deactivate a pro druhou sestavu k události Activate:
Deactivate (sestava 1)
Activate (sestava 2)
K události Deactivate dojde pro sestavu i v případě, že ze sestavy přepnete do jiné karty objektu v aplikaci Access. K události Deactivate ovšem nedojde, přepnete-li do dialogového okna nebo do formuláře, jehož vlastnost Překryvné okno je nastavena na hodnotu Ano, nebo do okna v jiné aplikaci.
Otevřete-li sestavu založenou na dotazu, aplikace Access spustí před spuštěním podkladového dotazu událost Open pro sestavu. Výsledkem je, že můžete nastavit kritéria pro sestavu pomocí makra nebo obslužné procedury událostí odpovídající události Open. Makro nebo obslužná procedura událostí mohou například otevřít vlastní dialogové okno, ve kterém zadáte kritéria sestavy.
Události v sekcích sestavy
Při tisku nebo náhledu sestavy dojde pro sekce sestavy k událostem Format a Print po událostech Open a Activate pro sestavu a před událostmi Close nebo Deactivate pro sestavu:
Open (sestava)
Activate (sestava)
Format (sekce sestavy)
Print (sekce sestavy)
Close (sestava)
Deactivate (sestava)
Navíc může během nebo po formátování dojít k následujícím událostem (ale vždy před událostí Print):
- K události Retreat dojde v případě, že se aplikace Access během formátování sestavy vrátí k předchozí sekci.
- K události NoData dojde v případě, že sestava nezobrazuje žádná data.
- K události Page dojde po formátování před tiskem. Tuto událost můžete využít k přizpůsobení vzhledu tištěné sestavy.
Začátek stránky