Üks toiming (nt objekti ühelt juhtelemendilt teisele liikumine) võib käivitada mitu erinevat sündmust, mis ilmnevad kindlas järjestuses. Oluline on teada, millal ja mis järjestuses sündmused toimuvad, kuna see võib mõjutada seda, kuidas ja millal makrod või sündmuseprotseduurid käivitatakse. Kui näiteks tuleb käivitada kaks eri sündmuseprotseduuri kindlas järjestuses, peaksite kindlaks tegema, et nendega seostatud sündmused toimuksid samas järjestuses.
Selle artikli teemad
- Vormi juhtelementide sündmuste järjestus
- Vormide kirjete sündmuste järjestus
- Vormide ja alamvormide sündmuste järjestus
- Klahvivajutuste ja hiireklõpsude sündmuste järjestus
- Aruannete ja aruande jaotiste sündmuste järjestus
Vormi juhtelementide sündmuste järjestus
Vormide juhtelementide sündmused toimuvad fookuse viimisel juhtelemendile ning juhtelemendi andmete muutmisel ja värskendamisel.
Märkus.
Microsoft Office Access kuvab Visual Basic Editoris sündmuste nimed pisut teistmoodi kui makrokoosturis. Näiteks vormi atribuudilehe ja makrokoosturi sündmus Fookustamisel on Visual Basic Editoris nimega GotFocus. Selle artikli näidetes kasutatakse programmeerimiskeele Visual Basic for Applications (VBA) sündmuste nimede vormingut.
Fookuse viimine juhtelemendile
Fookuse viimisel juhtelemendile või vormile (nt kui avate vormi, mis sisaldab vähemalt ühte aktiivset juhtelementi, või viite fookuse sama vormi teisele juhtelemendile), toimuvad sündmused Enter ja GotFocus järgmises järjekorras:
Enter
GotFocus
Vormi avamisel toimuvad sündmused Enter ja GotFocus pärast vormi avamisega seostatud sündmusi (nt Open, Activate ja Current) järgmiselt:
Open (vorm)
Activate (form)
Current (form)
Enter (control)
GotFocus (juhtelement)
Fookuse teisaldamisel vormi juhtelemendilt (nt kui sulete vormi, mis sisaldab vähemalt ühte aktiivset juhtelementi, või viite fookuse sama vormi teisele juhtelemendile), toimuvad sündmused Exit ja LostFocus järgmises järjekorras:
Exit
LostFocus
Vormi sulgemisel toimuvad sündmused Exit ja LostFocus enne vormi sulgemisega seostatud sündmusi (nt Unload, Deactivate, ja Close) järgmiselt:
Exit (control)
LostFocus (juhtelement)
Unload (form)
Deactivate (vorm)
Close (vorm)
Andmete muutmine ja värskendamine juhtelemendis
Kui sisestate või muudate vormil oleva juhtelemendi andmeid ja seejärel viite fookuse teisele juhtelemendile, toimuvad sündmused BeforeUpdate ja AfterUpdate:
BeforeUpdate
AfterUpdate
Sündmused Exit ja LostFocus toimuvad juhtelemendis, mille väärtus muutub pärast sündmusi BeforeUpdate ja AfterUpdate:
BeforeUpdate
AfterUpdate
Exit
LostFocus
Tekstiväljal või liitboksi tekstiväljajaotisel teksti muutmisel toimub sündmus Change. See sündmus toimub iga kord, kui juhtelemendi sisu muutub, aga enne fookuse viimist teisele juhtelemendile või kirjele (ja seega enne sündmusi BeforeUpdate ja AfterUpdate). Järgmine sündmuste jada toimub iga tekstiväljal või liitboksi tekstiväljajaotisel vajutatava klahvivajutuse korral.
KeyDown
KeyPress
Dirty
Change
KeyUp
Sündmus NotInList toimub pärast seda, kui sisestate liitboksi väärtuse, mis liitboksiloendis puudub, ja kui püüate viia fookust teisele juhtelemendile või kirjele. Sündmus NotInList toimub liitboksi puhul pärast klaviatuurisündmusi ja sündmusi Change, aga mis tahes muu juhtelemendi või vormi korral enne neid sündmusi. Kui liitboksi atribuudi LimitToList väärtuseks on seatud Jah, toimub vormi sündmus Error kohe pärast sündmust NotInList :
KeyDown
KeyPress
Dirty
Change
KeyUp
NotInList
Error
Vormide kirjete sündmuste järjestus
Vormide kirjete sündmused toimuvad siis, kui liigutate fookuse mõnele muule kirjele, värskendate kirje andmeid, kustutate olemasoleva kirje või kirjed või loote uue kirje.
Fookuse viimine kirjetele ja kirjeandmete värskendamine
Fookuse viimisel vormi olemasolevale kirjele sisestage või muutke kirjeandmeid ja seejärel viige fookus teisele kirjele ning vormil toimub järgmine sündmuste jada:
Current (form)
BeforeUpdate (form)
AfterUpdate (form)
Current (form)
Kui lahkute kirjest, mille andmed on muutunud, kuid enne järgmise kirje sisestamist toimuvad fookuses oleva juhtelemendi sündmused Exit ja LostFocus . Need sündmused toimuvad pärast vormi sündmusi BeforeUpdate ja AfterUpdate järgmiselt.
BeforeUpdate (vorm)
AfterUpdate (vorm)
Exit (juhtelement)
LostFocus (juhtelemendi)
Current (vorm)
Fookuse viimisel vormi teisele juhtelemendile toimuvad iga juhtelemendi puhul sündmused. Järgnevalt on loetletud mõned näited toimingutest ja nende korral toimuvatest sündmuste jadadest.
- Vormi avamine ja juhtelemendi andmete muutmine:
Current (form)
Enter (control)
GotFocus (control)
BeforeUpdate (control)
AfterUpdate (juhtelement) - Fookuse viimine teisele juhtelemendile:
Exit (control1)
LostFocus (control1)
Enter (control2)
GotFocus (juhtelement2) - Fookuse viimine teisele kirjele:
BeforeUpdate (vorm)
AfterUpdate (vorm)
Exit (juhtelement2)
LostFocus (juhtelement2)
Current (vorm)
Kirje kustutamine
Kirje kustutamisel toimuvad vormil järgmised sündmused ja Microsoft Office Accessis kuvatakse dialoogiboks, kus palutakse kustutamine kinnitada:
Delete
BeforeDelConfirm
AfterDelConfirm
Kui tühistate sündmuse Delete, siis sündmused BeforeDelConfirm ja AfterDelConfirm ei toimu ning dialoogiboksi ei kuvata.
Uue kirje loomine
Kui viite fookuse vormi uuele (tühjale) kirjele ja loote seejärel uue kirje juhtelementi andmete tippimise teel, toimub järgmine sündmuste jada:
Current (form)
Enter (control)
GotFocus (control)
BeforeInsert (vorm)
AfterInsert (vorm)
Sündmus BeforeInsert (vorm) käivitatakse kohe, kui hakkate juhtelementi tippima. AfterInsert-sündmus (vorm) käivitatakse pärast kirjest lahkumist.
Vormil olevate juhtelementide sündmused BeforeUpdate ja AfterUpdate toimuvad pärast sündmust BeforeInsert ja enne sündmust AfterInsert.
Vormide ja alamvormide sündmuste järjestus
Vormi avamisel või sulgemisel, ühelt vormilt teisele liikumisel või vormi või alamvormi andmetega töötamisel toimuvad vormidel sündmused.
Vormi avamine ja sulgemine
Vormi avamisel toimub vormil järgmine sündmuste jada:
Ava
Laadi
Muuda suurust
Aktiveeri
Praegune
Kui vormil pole aktiivseid juhtelemente, toimub vormil sündmus GotFocus pärast sündmust Activate ja enne sündmust Current.
Vormi sulgemisel toimub vormil järgmine sündmuste jada:
Unload
Deactivate
Close
Kui vormil pole aktiivseid juhtelemente, toimub vormil sündmus LostFocus pärast sündmust Unload , kuid enne sündmust Deactivate .
Ühelt vormilt teisele liikumine
Ühelt vormilt teisele liikumisel toimub esimeses sündmus Deactivate ja teises sündmus Activate:
Desaktiveeri (vorm1)
Aktiveeri (vorm2)
Vormil toimub ka sündmus Deactivate, kui liigute Accessis vormilt teisele objektivahekaardile. Siiski ei toimu sündmus Deactivate, kui liigute dialoogiboksi, vormile, mille atribuudiks PopUp on määratud Yes, või teise programmi aknasse.
Märkus.
Sündmus Open ei toimu siis, kui viite fookuse juba avatud vormile, isegi kui viisite fookuse sellele vormile toimingu OpenForm abil.
Vormi andmetega töötamine
Vormide ja juhtelementide sündmused toimuvad vormil ühelt kirjelt teisele liikumisel ja andmete muutmisel. Näiteks esimese vormi avamisel toimub järgmine sündmuste jada:
Open (vorm)
Load (vorm)
Resize (vorm)
Activate (form)
Current (form)
Enter (juhtelement)
GotFocus (juhtelement)
Vormi sulgemisel toimub järgmine sündmuste jada:
Exit (control)
LostFocus (juhtelement)
Unload (form)
Deactivate (vorm)
Close (vorm)
Kui olete juhtelemendis andmeid muutnud, toimub juhtelemendis ja vormil nii sündmus BeforeUpdate kui ka AfterUpdate enne juhtelemendi sündmust Exit.
Alamvormidega töötamine
Kui avate alamvormi sisaldava vormi, laaditakse alamvorm ja selle kirjed enne põhivormi. Seega toimuvad alamvormi ja selle juhtelementide sündmused (nt Open, Current, Enter ja GotFocus) enne vormi sündmusi. Siiski ei toimu alamvormidel sündmust Activate. Seega käivitatakse põhivormi avamisel sündmus Activate ainult põhivormil.
Kui sulete alamvormi sisaldava vormi, laaditakse samamoodi alamvorm ja selle kirjed maha pärast põhivormi. Alamvormidel ei toimu sündmust Deactivate. Seega käivitatakse põhivormi sulgemisel sündmus Deactivate ainult põhivormil. Juhtelementide, vormi ja alamvormi sündmused toimuvad järgmises järjestuses:
- Alamvormi juhtelementide sündmused (nt Exit ja LostFocus)
- Vormi juhtelementide (sh alamvormi juhtelemendi) sündmused
- Vormi sündmused (nt Deactivate ja Close)
- Alamvormi sündmused
Märkus.
Kuna alamvormi sündmused toimuvad pärast põhivormi sulgemist, siis teatud sündmused (nt põhivormi sulgemise tühistamine alamvormi sündmuse tagajärjel) ei toimu. Teil võib tekkida vajadus seda tüüpi kinnitustestid põhivormi sündmusse teisaldada.
Klahvivajutuste ja hiireklõpsude sündmuste järjestus
Vormide ja juhtelementide klaviatuurisündmused toimuvad klahvide vajutamisel või klahvivajutuste saatmisel, kui fookus on vormil või juhtelemendil. Vormide, vormijaotiste ja vormidel olevate juhtelementide puhul toimuvad hiiresündmused siis, kui klõpsate hiireklahve vormile, jaotisele või juhtelemendile osutades. Hiiresündmused toimuvad ka kursori viimisel vormile, jaotisele või juhtelemendile.
Klaviatuurisündmused
Kui vajutate ja vabastate klahvi, kui fookus on vormi juhtelemendil (või kasutage klahvivajutuse saatmiseks toimingut Või lauset Saada_ klahvid), toimub järgmine sündmuste jada.
KeyDown
KeyPress
KeyUp
Kui vajutate ja vabastate klahvi või saadate klahvivajutuse ANSI märgistikus, toimuvad kõik sündmused KeyDown, KeyPress ja KeyUp . Kui vajutate pikalt ANSI-klahvi, toimuvad sündmused KeyDown ja KeyPress vaheldumisi mitu korda (KeyDown, KeyPress, KeyDown, KeyPress jne), kuni klahvi vabastamiseni; seejärel toimub sündmus KeyUp.
Kui vajutate pikalt ja vabastate mitte-ANSI-klahvi, toimuvad sündmused KeyDown ja KeyUp. Kui vajutate pikalt mitte-ANSI-klahvi, toimub sündmus KeyDown mitu korda kuni klahvi vabastamiseni ja seejärel toimub sündmus KeyUp.
Kui klahvi vajutamine käivitab juhtelemendis muu sündmuse, toimub see pärast sündmust KeyPress ja enne sündmust KeyUp. Kui klahvivajutusega muudetakse näiteks tekstivälja teksti ja nii käivitatakse sündmus Change, toimub järgmine sündmuste jada:
KeyDown
KeyPress
Change
KeyUp
Kui klahvivajutusega viiakse fookus ühelt juhtelemendilt teisele, toimub esimeses juhtelemendis sündmus KeyDown ning teises sündmused KeyPress ja KeyUp. Kui muudate näiteks juhtelemendi andmeid ja vajutate seejärel järgmisse juhtelementi liikumiseks tabeldusklahvi (Tab), toimub järgmine sündmuste jada.
- Esimene juhtelement:
KeyDown
BeforeUpdate
AfterUpdate
Exit
LostFocus - Teine juhtelement:
Enter
GotFocus
KeyPress
KeyUp
Hiiresündmused
Kui vajutate pikalt hiireklahvi vormi juhtelemendile osutades, toimub juhtelemendis järgmine sündmuste jada:
MouseDown
MouseUp
Click
Kui fookus on juhtelemendil ja klõpsate teist juhtelementi fookuse teisaldamiseks, toimuvad järgmised sündmuste jadad.
- Esimene juhtelement:
Exit
LostFocus - Teine juhtelement:
Enter
GotFocus
MouseDown
MouseUp
Click
Kui liigute teisele kirjele ja seejärel klõpsate juhtelementi, toimub ka vormi sündmus Current event enne juhtelemendi sündmust Enter.
Juhtelemendi topeltklõpsamisel toimuvad nii sündmus Click kui ka DblClick. Näiteks kui topeltklõpsate muud juhtelementi peale käsunupu, toimub juhtelemendis järgmine sündmuste jada:
MouseDown
MouseUp
Click
DblClick
MouseUp
Kui topeltklõpsate käsunuppu, toimub eelnevalt esitatud sündmuste jada ning seejärel teine sündmus Click.
Vormil, jaotises või juhtelemendis toimub sündmus MouseMove siis, kui osutate kursoriga vormile, jaotisele või juhtelemendile. Sündmus sõltub teistest hiiresündmustest.
Aruannete ja aruande jaotiste sündmuste järjestus
Aruannete ja aruandejaotiste sündmused toimuvad siis, kui avate aruande selle printimiseks või eelvaateks või sulete selle.
Aruannete sündmused
Kui avate aruande selle printimiseks või eelvaateks ja hiljem sulgete selle või liigute Accessis muule objektivahekaardile, toimub aruandes järgmine sündmuste jada:
Ava
Laadi
Aktiveeri
Sule
Inaktiveeri
Ühelt aruandelt teisele liikumisel toimub esimeses sündmus Deactivate ja teises sündmus Activate:
Desaktiveeri (aruanne1)
Aktiveeri (aruanne2)
Aruandel toimub ka sündmus Deactivate, kui liigute Accessis aruandelt teisele objektivahekaardile. Siiski ei toimu sündmus Deactivate, kui liigute dialoogiboksi, vormile, mille atribuudiks PopUp on määratud Yes, või teise programmi aknasse.
Kui avate päringul põhineva aruande, käivitab Access aruandes sündmuse Open enne aluseks oleva päringu käivitamist. Selle tulemusena saate määrata aruande kriteeriumid makro või sündmuseprotseduuri abil, mis vastab sündmusele Open. Näiteks saab makro või sündmuseprotseduuri abil avada kohandatud dialoogiboksi, kuhu on võimalik sisestada aruande kriteeriumid.
Aruande jaotiste sündmused
Aruande printimisel või eelvaate kuvamisel toimuvad aruandes sündmused Format ja Print pärast sündmusi Open ja Activate ja enne aruande sündmusi Close või Deactivate:
Open (report)
Load (report)
Activate (report)
Format (report section)
Print (report section)
Close (aruanne)
Inaktiveeri (aruanne)
Turvalisus Aruandevaate abil saate lubada aruannete kasutajafiltrimise. Erinevalt prindieelvaatest ei toimu aga aruandevaates mis tahes jaotise sündmusi Vorming ja Prindi . See kehtib ka VBA funktsiooni tulemuste ja kasutaja määratletud protseduuride kohta, mis kuvatakse nendes sündmustes juhtelementides (nt sildipealdised, kuvaolek, tingimusvorming, juhtelementide suuruse muutmine jne). Seetõttu ärge kasutage selle sündmuse koodi konfidentsiaalsete andmete vormindamiseks, peitmiseks või printimiseks, mis võivad muutuda nähtavaks. Soovitame andmeid eelfiltreerimiseks või aruande eelvaate keelamiseks seada atribuudi AllowReportView väärtuseks Ei.
Lisaks võivad järgmised sündmused toimuda vormindamise ajal või pärast seda, aga enne sündmust Print.
- Sündmus Retreat toimub siis, kui Access kuvab aruande vormindamisel varasema jaotise.
- Sündmus NoData toimub siis, kui aruandes kirjeid ei kuvata.
- Sündmus Page toimub pärast vormindamist, aga enne printimist. Selle sündmuse abil saate kohandada prinditud aruande ilmet.