Üksik toiming (nt ühe objekti juhtelemendi teisaldamine teise juhtelementi) võib käivitada mitu eri sündmust, mis toimuvad konkreetses 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
Kui viite fookuse juhtelemendile ning kui muudate ja värskendate juhtelemendi andmeid, toimuvad juhtelementide sündmused.
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:
Sisestage 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 (vorm) Current (vorm) Enter (juhtelement) 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 (juhtelement) LostFocus (juhtelement) Unload (vorm) 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 Afte rUpdate
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 atribuudiks LimitToList on määratud Yes, toimub vormi sündmus Error kohe pärast sündmust NotInList:
KeyDown KeyPress Dirty Change KeyUp NotInList 0 error
Vormide kirjete sündmuste järjestus
Vormidel olevate kirjete sündmused toimuvad fookuse viimisel teisele kirjele, kirjeandmete värskendamisel, olemasoleva(te) kirje(te) kustutamisel või uue kirje loomisel.
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 (vorm) BeforeUpdate (vorm) AfterUpdate (vorm) Current (vorm)
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 (juhtelement) 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 (vorm) Enter (juhtelement) GotFocus (juhtelement) BeforeUpdate (juhtelement) AfterUpdate (juhtelement)
-
Fookuse viimine teisele juhtelemendile:
Exit (control1) LostFocus (control1) Enter (juhtelement2) 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 (vorm) Enter (juhtelement) GotFocus (juhtelement) 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 praeguse aktiveerimise suuruse muutmine
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:
Laadi Inaktiveeri Sule
Kui vormil pole aktiivseid juhtelemente, toimub vormil sündmus LostFocus pärast sündmust Unload ja enne sündmust Deactivate.
Ühelt vormilt teisele liikumine
Ühelt vormilt teisele liikumisel toimub esimeses sündmus Deactivate ja teises sündmus Activate:
Desaktiveeri (vorm1) Activate (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 (vorm) Current (vorm) Enter (juhtelement)0 GotFocus (juhtelement)
Vormi sulgemisel toimub järgmine sündmuste jada:
Exit (control) LostFocus (juhtelement) Unload (vorm) 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 edastamisel, 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 saadate toimingu SendKeys või lause lause abil klahvivajutuse), toimub järgmine sündmuste jada:
KeyDown KeyPress KeyUp
Kui vajutate ja vabastate klahvi või saadate klahvivajutuse ANSI-märgistikus, toimuvad 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:
Sisestage 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:
Sisestage 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:
MouseD own 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:
Inaktiveeri aktiveerimine aktiveerimine
Ühelt aruandelt teisele liikumisel toimub esimeses sündmus Deactivate ja teises sündmus Activate:
Inaktiveeri (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:
Ava (aruanne) Aktiveeri (aruanne) Vorming (aruande jaotis) Prindi (aruande jaotis) Sule (aruanne) Inaktiveeri (aruanne)
Turve 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.