Duomenų bazės objektų įvykių tvarka

Taikoma
„Access“, skirta „Microsoft 365“ „Access 2024“ Access 2021 Access 2019 Access 2016

Vienas veiksmas, pvz., perėjimas iš vieno objekto valdiklio į 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 perkeliate įvesties vietą į 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:

EnterarrowGotFocus

Kai atidarote formą, įvykiai Įvesti ir GotFocus vyksta po įvykių, susietų su formos atidarymu (pvz., Atidaryti, Aktyvinti ir Dabartinis), kaip nurodyta toliau:

Open (form) arrowAktyvinti (formos) rodyklėDabartinė (formos) rodyklė Enter (valdiklio) rodyklė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šėjimorodyklė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šėjimo (valdiklio) rodyklėLostFocus (valdiklio) rodyklėIškelti (forma) rodyklėIšjungti (formavimo ) rodyklę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:

Rodyklė BeforeUpdatePoNaujinimas

Valdiklio, kurio reikšmės pasikeičia, įvykiai Išeiti ir LostFocus įvyksta po įvykių BeforeUpdate ir AfterUpdate:

BeforeUpdatearrowAfterUpdatearrowIšėjimorodyklė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:

KeyDownarrowKeyPressarrowDirtyarrowChangearrowKeyUp

Į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 reikšmė Taip, formos klaidos įvykis įvyksta iškart po įvykio NotInList :

KeyDownarrowKeyPressarrowDirtyarrowChangearrowKeyUparrowNotInListarrowError

Puslapio viršus

Formose esančių įrašų įvykių seka

Formose esančių įrašų įvykiai įvyksta, kai perkeliate įvesties vietą į kitą įrašą, atnaujinate įrašo duomenis, panaikinate esamą įrašą ar įrašus arba sukuriate naują įrašą.

Į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:

Dabartinė (formos) rodyklėBeforeUpdate (formos) rodyklėAfterUpdate (formos) rodyklė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 (formos) rodyklėAfterUpdate (formos) rodyklėIšėjimo (valdiklis) rodyklėLostFocus (valdiklio) rodyklėDabartinis (forma)

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:
    Dabartinė (formos) rodyklėEnter (valdiklio) rodyklėGotFocus (valdiklis) rodyklėBeforeUpdate (valdiklis) rodyklė AfterUpdate ( valdiklis)
  • Perkeliate įvesties vietą į kitą valdiklį:
    Exit (control1) arrowLostFocus (control1) arrowEnter (control2) arrowGotFocus (control2)
  • Perkeliate įvesties vietą į kitą įrašą:
    BeforeUpdate (formos) rodyklėAfterUpdate (forma) rodyklė Išeiti (valdiklis2) rodyklėLostFocus (valdiklis2) rodyklė Dabartinis (forma)

Įrašų naikinimas

Kai įrašą panaikinate, įvyksta nurodyti formos įvykiai ir „Microsoft Office Access“ parodo dialogo langą, kuriame prašoma patvirtinti naikinimą:

DeletearrowBeforeDelConfirmarrowAfterDelConfirm

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:

Dabartinė (formos) rodyklėEnter (valdiklio) rodyklėGotFocus (valdiklio) rodyklėBeforeInsert (formos) rodyklėAfterInsert (forma)

Įvykis BeforeInsert (forma) suaktyvinamas iškart, kai pradedate vesti tekstą valdiklyje. AfterInsert (forma) įvykis suaktyvinamas jums išėjus iš įrašo.

Formoje esančių valdiklių ir naujo įrašo įvykiai BeforeUpdate ir AfterUpdate įvyksta po įvykio BeforeInsert ir prieš įvykį AfterInsert.

Puslapio viršus

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:

Open arrowLoadarrowResizearrowActivatearrowCurrent

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škrovimorodyklėIšjungtirodyklę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 (form1) rodyklėAktyvinti (form2)

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:

Open (form) arrowĮkelti (formos) rodyklęKeisti dydį (formos) rodyklėAktyvinti (formos) rodyklėDabartinė (formos) rodyklė Enter (valdiklis) GotFocus (valdiklis)

Ir panašiai, kai uždarote formą, įvyksta tokia įvykių seka:

Išėjimo (valdiklio) rodyklėLostFocus (valdiklio) rodyklėIškelti (forma) rodyklėIšjungti (formavimo ) rodyklę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:

  1. Papildomos formos valdiklių įvykiai (pvz., išeiti ir LostFocus)
  2. Formos valdiklių įvykiai (įskaitant papildomos formos valdiklį)
  3. Formos įvykiai (pvz., Išjungti ir Uždaryti)
  4. 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į.

Puslapio viršus

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ą arba sakinį SendKeys klavišo paspaudimui siųsti), įvyksta ši įvykių seka:

KeyDownarrowKeyPressarrowKeyUp

Kai paspaudžiate ir atleidžiate klavišą arba siunčiate klavišo paspaudimą ANSI simbolių rinkinyje, įvyksta visi įvykiai "KeyDown", "KeyPress" ir " KeyUp ". Jei paspaudžiate ir laikote nuspaudę klavišą ANSI, "KeyDown " ir " KeyPress" įvykiai kaitaliojasi (KeyDown, KeyPress, KeyDown, KeyPress ir pan.), kol atleisite klavišą; įvyksta įvykis "KeyUp ".

Jei paspauskite ir atleiskite ne ANSI klavišą, įvyks " KeyDown " ir "KeyUp " įvykiai. Jei laikysite nuspaudę ne ANSI klavišą, "KeyDown " įvykis kartosis tol, kol atleisite klavišą. Tada įvyks " KeyUp " įvykis.

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:

KeyDownarrowKeyPressarrowKeistirodyklę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:
    KeyDownarrowBeforeUpdatearrowAfterUpdatearrowIšėjimorodyklėLostFocus
  • Antras valdiklis:
    EnterarrowGotFocusarrowKeyPressarrowKeyUp

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:

MouseDownarrowMouseUparrowClick

Jei valdiklyje yra įvesties vieta ir spustelėkite kitą valdiklį norėdami įvesties vietą perkelti į kitą valdiklį, įvyksta tokia įvykių seka:

  • Pirmas valdiklis:
    IšėjimorodyklėLostFocus
  • Antras valdiklis:
    EnterarrowGotFocusarrowMouseDownarrowMouseUparrowClick

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:

Rodyklė MouseDownarrowMouseUp Click arrowDblClickarrowMouseUp

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ų.

Puslapio viršus

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:

Open arrowLoadarrowActivatearrowClosearrowDeactivate

Kai pereinate iš vienos atidarytos ataskaitos į kitą, įvyksta pirmos ataskaitos įvykis Išjungti, tada antros ataskaitos įvykis Aktyvinti:

Deactivate (report1) arrowAktyvinti (report2)

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:

Open (report) arrowLoad (report) arrowActivate (report) arrowFormat (report section) arrowPrint (report section) arrowClose (report) arrow Close (report) arrowDeactivate (report)

Saugumas Galite naudoti ataskaitos rodinį, kad įgalintumėte vartotojo ataskaitų filtravimą. Tačiau skirtingai nei spaudinio peržiūroje, bet kurios sekcijos formato ir spausdinimo įvykiai ataskaitos rodinyje nevyksta. Tai taip pat taikoma VBA funkcijos rezultatams ir vartotojo apibrėžtoms procedūroms, kurios rodomos valdikliuose (pvz., etikečių antraštės, rodymo būsena, sąlyginis formatavimas, valdiklių dydžio keitimas ir t. t.) šių įvykių metu. Todėl šiame įvykyje nenaudokite kodo konfidencialiems duomenims, kurie gali būti atskleisti, formatuoti, slėpti ar spausdinti. Rekomenduojame iš anksto filtruoti duomenis arba išjungti ataskaitos peržiūrą nustatant ypatybės AllowReportView reikšmę 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ą.

Puslapio viršus