Vienas veiksmas, pvz., perėjimas iš vieno objekto valdiklis į kitą valdiklį, gali inicijuoti kelis skirtingus įvykius, kurie vyksta konkrečia seka. Svarbu žinoti, kada įvykiai įvyksta ir kokia seka vyksta, nes tai gali turėti įtakos, kaip ir kada vykdomos makrokomandos ar net įvykio procedūros. Pavyzdžiui, jei yra dvi įvykio procedūros, kurios turėtų būti vykdomos tam tikra seka, norite įsitikinti, kad su jomis susieti įvykiai vyksta ta pačia seka.
Šiame straipsnyje:
Formose esančių valdiklių įvykių seka
Formose esančių valdiklių įvykiai įvyksta, kai įvesties vieta perkeliama į valdiklį ir kai pakeičiami ir naujinami duomenys valdiklyje.
Pastaba: „Microsoft Office Access“ įvykių pavadinimus „Visual Basic“ rengyklėje rodo šiek tiek kitaip nei ypatybių lape ir makrokomandų daryklėje. Pvz., formos ypatybių lape ir makrokomandų daryklėje įvykis, kurio pavadinimas Gavus aktyvinimą, „Visual Basic“ rengyklėje yra pavadintas GotFocus. Šiame straipsnyje pateiktuose pavyzdžiuose įvykio pavadinimai naudojami taikant „Visual Basic for Applications“ (VBA) formatą.
Įvesties vietos perkėlimas į valdiklį
Kai perkeliate įvesties vietą į formoje esantį valdiklį (pvz., atidarydami formą, kurioje yra vienas arba daugiau aktyvių valdiklių, arba perkeliate įvesties vietą į kitą valdiklį toje pačioje formoje), įvykiai Įvesti ir GotFocus vyksta šia seka:
Įveskite GotFocus
Kai atidarote formą, įvykiai Įvesti ir GotFocus vyksta po įvykių, susietų su formos atidarymu (pvz., Atidaryti, Aktyvinti ir Dabartinis), kaip nurodyta toliau:
Atidaryti (forma) Aktyvinti (forma) Dabartinis (forma) Įvesti (valdiklis) GotFocus (valdiklis)
Kai įvesties vieta palieka formoje esantį valdiklį (pvz., kai uždarote formą, kurioje yra vienas arba daugiau aktyvių valdiklių, arba perkeliate į kitą valdiklį toje pačioje formoje), įvykiai Įvesti ir LostFocus vyksta šia seka:
Išeiti iš LostFocus
Kai uždarote formą, įvykiai Išeiti ir LostFocus vyksta prieš įvykius, susietus su formos uždarymu (pvz., Iškelti, Išjungti ir Uždaryti), kaip nurodyta toliau:
Išeiti iš LostFocus (valdiklis) Iškelti (forma) Išjungti (forma) Uždaryti (forma)
Duomenų keitimas ir naujinimas valdiklyje
Kai įvedate arba pakeičiate duomenis formoje esančiame valdiklyje ir tada perkeliate įvesties vietą į kitą valdiklį, įvyksta įvykiai BeforeUpdate ir AfterUpdate:
BeforeUpdate Afte rUpdate
Valdiklio, kurio reikšmės pasikeičia, įvykiai Išeiti ir LostFocus įvyksta po įvykių BeforeUpdate ir AfterUpdate:
BeforeUpdate AfterUpdate Išeiti LostFocus
Kai pakeičiate tekstą teksto lauke arba pasirinktinio įvedimo lauko teksto lauko dalyje, įvyksta įvykis Keisti. Šis įvykis įvyksta, kai pasikeičia valdiklio turinys, bet prieš perkeliant įvesties vietą į kitą valdiklį arba įrašą (ir todėl prieš įvykstant įvykiams BeforeUpdate ir AfterUpdate). Toliau nurodyta įvykių seka įvyksta su kiekvienu mygtuku, kurį paspaudžiate teksto lauke arba pasirinktinio įvedimo lauko teksto lauko dalyje:
KeyDown KeyPress Dirty Change KeyUp
Įvykis NotInList įvyksta, kai įvedate reikšmę pasirinktinio įvedimo lauke, kurio nėra pasirinktinio įvedimo laukų sąraše, ir tada bandote pereiti įvesties vietą į kitą valdiklį arba įrašą. Įvykis NotInList įvyksta po klaviatūros įvykių ir pasirinktinio įvedimo lauko įvykių Keisti, bet prieš bet kurį kitą kito valdiklio ar formos įvykį. Jei nustatyta pasirinktinio įvedimo lauko ypatybės LimitToList nuostata Taip, formos įvykis Klaida įvyksta iškart po įvykio NotInList:
KeyDown KeyPress Dirty Change KeyUp NotInList 0 Error
Formose esančių įrašų įvykių seka
Formose esančių įrašų įvykiai įvyksta, kai įvesties vieta perkeliama į kitą įrašą, atnaujinami įrašo duomenys, panaikinamas esamas įrašas ar įrašai arba sukuriamas naujas įrašas.
Įvesties vietos perkėlimas į įrašus ir įrašų duomenų naujinimas
Kai perkeliate įvesties vietą į esamą formos įrašą, įvedate arba pakeičiate įrašo duomenis, ir tada perkeliate įvesties vietą į kitą įrašą, formoje įvykiai įvyksta tokia seka:
Dabartinis (forma) BeforeUpdate (forma) AfterUpdate (forma) Dabartinis (forma)
Kai išeinate iš įrašo, kurio duomenys pasikeitė, bet prieš įvedant kitą įrašą, įvyksta valdiklio, kuriame yra įvesties vieta, įvykiai Išeiti ir LostFocus. Šie įvykiai įvyksta po formos įvykių BeforeUpdate ir AfterUpdate taip:
BeforeUpdate (forma) AfterUpdate (forma) Exit (control) LostFocus (control) Current (form)
Kaip perkeliate įvesties vietą į formos valdiklius, įvyksta kiekvieno valdiklio įvykiai. Pvz., toliau nurodytos įvykių sekos įvyksta, kai atliekate šiuos veiksmus:
-
Atidarote formą ir pakeičiate duomenis valdiklyje:
Dabartinis (forma) Enter (valdiklis) GotFocus (valdiklis) BeforeUpdate (valdiklis) AfterUpdate (valdiklis)
-
Perkeliate įvesties vietą į kitą valdiklį:
Išeiti (valdiklis1) LostFocus (valdiklis1) Enter (valdiklis2) GotFocus (valdiklis2)
-
Perkeliate įvesties vietą į kitą įrašą:
BeforeUpdate (forma) AfterUpdate (forma) Išeiti (valdiklis2) LostFocus (valdiklis2) Dabartinis (forma)
Įrašų naikinimas
Kai įrašą panaikinate, įvyksta nurodyti formos įvykiai ir „Microsoft Office Access“ parodo dialogo langą, kuriame prašoma patvirtinti naikinimą:
Naikinti BeforeDelConfirm AfterDelConfirm
Jei atšaukiate įvykį Naikinti, įvykiai BeforeDelConfirm ir AfterDelConfirm neįvyksta ir dialogo langas neparodomas.
Naujo įrašo kūrimas
Kai įvesties vietą perkeliate į naują (tuščią) formos įrašą ir tada sukuriate naują įrašą įvesdami duomenis valdiklyje, įvyksta ši įvykių seka:
Dabartinis (forma) Įvesti (valdiklis) GotFocus ( valdiklis) BeforeInsert (forma) AfterInsert (forma)
Įvykis BeforeInsert (forma) paleidžiamas iškart, kai tik pradedate vesti tekstą valdiklyje. Išėjus iš įrašo, paleidžiamas įvykis AfterInsert (forma).
Formoje esančių valdiklių ir naujo įrašo įvykiai BeforeUpdate ir AfterUpdate įvyksta po įvykio BeforeInsert ir prieš įvykį AfterInsert.
Formų ir papildomų formų įvykių seka
Formų įvykiai įvyksta, kai atidarote arba uždarote formą, pereinate iš vienos formos į kitą ar dirbate su formos arba papildomos formos duomenimis.
Formos atidarymas ir uždarymas
Kai atidarote formą, įvyksta tokia formos įvykių seka:
Atidaryti įkelti keisti dydį aktyvinti dabartinį
Jei formoje nėra aktyvių valdiklių, formos įvykis GotFocus įvyksta po įvykio Aktyvinti, bet prieš įvykį Dabartinis.
Kai uždarote formą, įvyksta tokia formos įvykių seka:
Iškelti išjungti uždaryti
Jei formoje nėra aktyvių valdiklių, formos įvykis LostFocus įvyksta po įvykio Iškelti, bet prieš įvykį Išjungti.
Judėjimas tarp formų
Kai pereinate iš vienos atidarytos formos į kitą, įvyksta pirmos formos įvykis Išjungti, tada antros formos įvykis Aktyvinti:
Išjungti (forma1) Aktyvinti (forma2)
Formos įvykis Išjungti įvyksta ir kai persijungiate iš formos į kitą objekto skirtuką programoje „Access“. Tačiau įvykis Išjungti neįvyksta, kai persijungiate į dialogo langą, formą, kai nustatyta jos ypatybės PopUp nuostata Taip, arba į kitos programos langą.
Pastaba: Įvykis Atidaryti neįvyksta, jei perkeliate įvesties vietą į jau atidarytą formą, net jei įvesties vietą į tą formą perkėlėte atlikdami veiksmą OpenForm.
Darbas su formos duomenimis
Formų ir valdiklių įvykiai įvyksta, kai pereinate iš vieno formos įrašo į kitą ir pakeičiate duomenis. Pavyzdžiui, kai pirma atidarote formą, įvyksta tokia įvykių seka:
Atidaryti (forma) Įkelti (forma) Keisti dydį (forma) Aktyvinti (forma) Dabartinis (forma) Įvesti (valdiklis)0 GotFocus (valdiklis)
Ir panašiai, kai uždarote formą, įvyksta tokia įvykių seka:
Išeiti (valdiklis) LostFocus (valdiklis) Iškelti (forma) Išjungti (forma) Uždaryti (forma)
Jei pakeitėte duomenis valdiklyje, ir valdiklio, ir formos įvykiai BeforeUpdate ir AfterUpdate įvyksta prieš valdiklio įvykį Išeiti.
Darbas su papildomomis formomis
Kai atidarote formą, kurioje yra papildoma forma, prieš įkeliant pagrindinę formą, įkeliama papildoma forma ir jos įrašai. Taigi papildomos formos ir jos valdiklių įvykiai (pvz., Atidaryti, Dabartinis, Įvesti ir GotFocus) įvyksta prieš formos įvykius. Tačiau neįvyksta papildomos formos įvykis Aktyvinti. Todėl atidarius pagrindinę formą paleidžiamas tik pagrindinės formos įvykis Aktyvinti.
Ir panašiai, kai uždarote formą, kurioje yra papildoma forma, prieš iškeliant formą, iškeliama papildoma forma ir jos įrašai. Tačiau neįvyksta papildomos formos įvykis Išjungti. Todėl uždarius pagrindinę formą paleidžiamas tik pagrindinės formos įvykis Išjungti. Valdiklių, formos ir papildomos formos įvykiai įvyksta tokia seka:
-
Papildomos formos valdiklių įvykiai (pvz., išeiti ir LostFocus)
-
Formos valdiklių įvykiai (įskaitant papildomos formos valdiklį)
-
Formos įvykiai (pvz., Išjungti ir Uždaryti)
-
Papildomos formos įvykiai
Pastaba: Kadangi papildomos formos įvykiai vyksta uždarius pagrindinę formą, tam tikri įvykiai, pvz., pagrindinės formos uždarymo atšaukimas iš papildomos formos įvykio, neįvyksta. Jums gali tekti perkelti šių tipų tikrinimo testus į pagrindinės formos įvykį.
Klavišų paspaudimų ir spustelėjimų pele įvykių seka
Formų ir valdiklių klaviatūros įvykiai įvyksta, kai paspaudžiate klavišus arba siunčiate klavišų paspaudimus, kai formoje arba valdiklyje yra įvesties vieta. Formų, formų sekcijų ir formoje esančių valdiklių pelės įvykiai įvyksta, kai spustelėjate pelės mygtukus tuo metu, kai pelės žymiklis yra formoje, sekcijoje arba valdiklyje. Pelės įvykiai taip pat įvyksta, kai užvedate pelės žymiklį virš formos, sekcijos arba valdiklio.
Klaviatūros įvykiai
Kai paspaudžiate ir atleidžiate klavišą tuo metu, kai formos valdiklyje yra įvesties vieta (arba naudojate veiksmą SendKeys arba sakinys, kad nusiųstumėte klavišo paspaudimą), įvyksta ši įvykių seka:
KeyDown KeyPress KeyUp
Kai paspaudžiate ir atleidžiate klavišą arba siunčiate klavišo paspaudimą ANSI simbolių rinkinys, įvyksta visi įvykiai KeyDown, KeyPress ir KeyUp . Jei paspaudžiate ir laikote nuspaudę ANSI klavišą, įvykiai KeyDown ir KeyPress pakaitomis kartojami (KeyDown, KeyPress, KeyDown, KeyPress ir t. t.), kol atleisite klavišą; tada įvyksta įvykis KeyUp .
Jei paspausite ir atleisite ne ANSI klavišą, įvyks įvykiai KeyDown ir KeyUp . Jei paspaudžiate ir laikote ne ANSI klavišą, įvykis KeyDown kartojamas tol, kol atleisite raktą, tada įvyksta įvykis KeyUp .
Jei paspaudus klavišą paleidžiamas kitas valdiklio įvykis, tas įvykis įvyksta po įvykio KeyPress, bet prieš įvykį KeyUp. Pvz., jei klavišo paspaudimas pakeičia tekstą teksto lauke, kuris paleidžia įvykį Keisti, įvyksta tokia įvykių seka:
KeyDown KeyPress Change KeyUp
Jei dėl klavišo paspaudimo įvesties vieta perkeliama iš vieno valdiklio į kitą valdiklį, įvyksta pirmojo valdiklio įvykis KeyDown, o įvykiai KeyPress ir KeyUp įvyksta antrame valdiklyje. Pvz., jei pakeičiate duomenis valdiklyje ir tada paspaudžiate klavišą TAB norėdami pereiti į kitą valdiklį, įvyksta tokia įvykių seka:
-
Pirmas valdiklis:
KeyDown BeforeUpdate AfterUpdate Išeiti LostFocus
-
Antras valdiklis:
Įveskite GotFocus KeyPress KeyUp
Pelės įvykiai
Kai spustelėjate ir atleidžiate pelės mygtuką, kai pelės žymiklis yra formoje arba valdiklyje, įvyksta tokia valdiklio įvykių seka:
MouseDown MouseUp Click
Jei valdiklyje yra įvesties vieta ir spustelėkite kitą valdiklį norėdami įvesties vietą perkelti į kitą valdiklį, įvyksta tokia įvykių seka:
-
Pirmas valdiklis:
Išeiti iš LostFocus
-
Antras valdiklis:
spustelėkite įveskite GotFocus MouseDown MouseUp"
Jei pereinate į kitą įrašą ir tada spustelėjate valdiklį, formos įvykis Dabartinis įvyksta prieš valdiklio įvykį Įvesti.
Du kartus spustelėjus valdiklį įvyksta abu įvykiai Spustelėti ir DblClick. Pvz., kai dukart spustelėjate kurį nors kitą valdiklį, o ne komandos mygtuką, įvyksta ši valdiklio įvykių seka:
MouseD own MouseUp Click DblClick MouseUp
Kai dukart spustelėjate komandos mygtuką, įvyksta aukščiau nurodyta įvykių seka, po to įvyksta antras įvykis Spustelėti.
Formos, sekcijos ar valdiklio įvykis MouseMove įvyksta, kai pelės žymiklį užvedate ant formos, sekcijos arba valdiklio. Šis įvykis nepriklauso nuo kitų pelės įvykių.
Ataskaitų ir ataskaitų sekcijų įvykių seka
Ataskaitų ir ataskaitų sekcijų įvykiai įvyksta, kai atidarote ataskaitą norėdami ją išspausdinti ar peržiūrėti arba uždarote ataskaitą.
Ataskaitų įvykiai
Kai atidarote ataskaitą norėdami ją išspausdinti arba peržiūrėti ir vėliau uždarote ataskaitą arba pereinate į kitą objekto skirtuką programoje „Access“, įvyksta ši ataskaitos įvykių seka:
Atidaryti Aktyvinti Uždaryti Išjungti
Kai pereinate iš vienos atidarytos ataskaitos į kitą, įvyksta pirmos ataskaitos įvykis Išjungti, tada antros ataskaitos įvykis Aktyvinti:
Išjungti (ataskaita1) Aktyvinti (ataskaita2)
Ataskaitos įvykis Išjungti įvyksta ir kai persijungiate iš ataskaitos į kitą objekto skirtuką programoje „Access“. Tačiau įvykis Išjungti neįvyksta, kai persijungiate į dialogo langą, formą, kai nustatyta jos ypatybės PopUp nuostata Taip, arba į kitos programos langą.
Kai atidarote užklausa pagrįstą ataskaitą, „Access“ paleidžia ataskaitos įvykį Atidaryti, tik po to paleidžia esamą užklausą. Todėl galite nustatyti ataskaitos kriterijus, naudodami makrokomandą arba įvykio procedūrą, atitinkančią įvykį Atidaryti. Pvz., makrokomanda arba įvykio procedūra gali atidaryti pasirinktinį dialogo langą, kuriame įvedate ataskaitos kriterijus.
Ataskaitos sekcijų įvykiai
Kai spausdinate arba peržiūrite ataskaitą, ataskaitos sekcijų įvykiai Formatuoti ir Spausdinti įvyksta po ataskaitos įvykių Atidaryti ir Aktyvinti ir prieš ataskaitos įvykius Uždaryti arba Išjungti:
Atidaryti (ataskaita) Aktyvinti (ataskaita) Formatas (ataskaitos sekcija) Spausdinti (ataskaitos sekcija) Uždaryti (ataskaita) Išjungti (ataskaita)
Sauga Ataskaitos rodinį galite naudoti norėdami įgalinti ataskaitų vartotojo filtravimą. Tačiau skirtingai nei spaudinio peržiūros rodinyje, įvykiai Formatuoti ir Spausdinti bet kurioje sekcijoje neįvyksta ataskaitos rodinyje. Tai taip pat taikoma VBA funkcijos rezultatams ir vartotojo apibrėžtoms procedūroms, kurios šiuose įvykiuose rodomos valdikliuose (pvz., etikečių antraštėse, rodymo būsenoje, sąlyginiame formatavime, valdiklių dydžio keitimą ir t. t.). Todėl nenaudokite kodo šiame įvykyje, jei norite formatuoti, slėpti ar spausdinti konfidencialius duomenis, kurie gali tapti matomi. Rekomenduojame iš anksto filtruoti duomenis arba išjungti ataskaitos peržiūrą nustatant ypatybę AllowReportView kaip Ne.
Be to, toliau nurodyti įvykiai gali įvykti formatavimo metu ir po formatavimo, bet prieš įvykį Spausdinti:
-
Įvykis Kartoti įvyksta, kai ataskaitos formatavimo metu „Access“ grįžta į ankstesnę sekciją.
-
Įvykis NoData įvyksta, jei nėra įrašų, kuriuos galėtų rodyti ataskaita.
-
Įvykis Puslapis įvyksta suformatavus, bet prieš spausdinant. Šį įvykį galite naudoti norėdami tinkinti išspausdintos ataskaitos išvaizdą.