Viena darbība, piemēram, pāriešana no viena vadīkla objektā uz citu vadīklu, var aktivizēt vairākus dažādus notikumus, kas notiek noteiktā secībā. Zināt, kad notikumi notiek un kādā secībā, ir svarīgi, jo tas var ietekmēt to, kā un kad tiek izpildīti makro vai notikumu procedūras. Piemēram, ja pastāv divas notikuma procedūras, kuras jāizpilda noteiktā secībā, jūs vēlaties pārliecināties, vai notikumi, kas saistīti ar šīm procedūrām, notiek tādā pašā secībā.
Tēmas šajā rakstā
Notikumu secība vadīklām formās
Notikumi vadīklām formās notiek, ja pārvietojat fokuss uz vadīklu, kā arī, ja maināt un atjaunināt datus vadīklā.
Piezīme.: Microsoft Office Access rāda notikumu nosaukumus nedaudz atšķirīgi Visual Basic redaktorā nekā rekvizītu lapā un makro veidotājā. Piemēram, notikums ar nosaukumu Fokusējot veidlapas rekvizītu lapā un makro veidotājā tiek dēvēts par GotFocus Visual Basic redaktorā. Šajā rakstā sniegtajos piemēros notikumu nosaukumiem tiek izmantots Visual Basic for Applications (VBA) formāts.
Fokusa pārvietošana uz vadīklu
Pārvietojot fokusu uz vadīklu formā (piemēram, atverot formu, kurā ir viena vai vairākas aktīvas vadīklas, vai pārvietojot fokusu uz citu vadīklu tajā pašā formā), notikumi Enter un GotFocus notiek šādā secībā:
Enter GotFocus
Atverot formu, notikumi Ievadīt un GotFocus notiek pēc notikumiem, kas saistīti ar formas atvēršanu (piemēram, Atvērtu, Aktivizēt un Pašreizējais), kā norādīts tālāk.
Open (forma) Activate (forma) Current (forma) Enter (vadīkla) GotFocus (vadīkla)
Ja fokuss vairs netiek vērsts uz vadīklu formā (piemēram, aizverot formu, kurā ir viena vai vairākas aktīvās vadīklas, vai pārejot uz citu vadīklu tajā pašā formā), notikumi Iziet un LostFocus notiek šādā secībā:
Iziet LostFocus
Aizverot formu, notikumi Iziet un LostFocus notiek pirms notikumiem, kas saistīti ar formas aizvēršanu (piemēram, Izlādēt, Deaktivizēt un Aizvērt), kā norādīts tālāk.
Exit (vadīkla) LostFocus (vadīkla) Unload (forma) Deactivate (form) Close (forma)
Datu maiņa un atjaunināšana vadīklā
Ja ievadāt vai maināt datus, kas atrodas formas vadīklā, un pēc tam pārvietojiet fokusu uz citu vadīklu, notiek notikumi Pirms atjaunināšanas un Pēc atjaunināšanas:
BeforeUpdate Afte rUpdate
Notikumi Iziet un LostFocus vadīklai, kuras vērtība tiek mainīta, notiek pēc notikumiem Pirms atjaunināšanas un Pēc atjaunināšanas:
BeforeUpdate AfterUpdate Exit LostFocus
Ja maināt tekstu tekstlodziņā vai kombinētā lodziņa tekstlodziņa sadaļā, notiek notikums Mainīt. Šis notikums notiek ikreiz, kad mainās vadīklas saturs, taču pirms fokusa pārvietošanas uz citu vadīklu vai ierakstu (un līdz ar to pirms notikumu Pirms atjaunināšanas un Pēc atjaunināšanas notikšanas). Tālāk norādītā notikumu secība notiek katram taustiņam, kas tiek nospiests tekstlodziņā vai kombinētā lodziņa tekstlodziņa sadaļā.
KeyDown KeyPress Dirty Change KeyUp
NotikumsNotInList notiek, ja ievadāt vērtību kombinētajā lodziņā, kas nav atrodams kombinēto lodziņu sarakstā, un pēc tam mēģināt pārvietot fokusu uz citu vadīklu vai ierakstu. Notikums NotInList notiek pēc tastatūras notikumiem un izmaiņu notikumiem kombinētajam lodziņam, bet pirms notikumiem jebkurai citai vadīklai vai formai. Ja kombinētā lodziņa rekvizīts LimitToList ir iestatīts kā Jā, kļūdas notikums formai notiek uzreiz pēc notikuma NotInList:
KeyDown nospiediet Dirty mainīt KeyUp NotInList 0 kļūdu
Notikumu secība ierakstiem formās
Notikumi ierakstiem formās notiek, a pārvietojat fokuss uz citu ierakstu, atjauninat datus ierakstā , dzēšat esošu ierakstu vai ierakstus, vai arī izveidojat jaunu ierakstu.
Fokusa pārvietošana uz ierakstu un datu atjaunināšana ierakstos
Pārvietojot fokusu uz esošu ierakstu formā, ievadot vai mainot datus ierakstā un pēc tam pārvietojot fokusu uz citu ierakstu, formai tiek izpildīta šād notikumu secība.
Pašreizējais (forma) BeforeUpdate (forma) AfterUpdate (forma) Pašreizējais (forma)
Izejot no ieraksta, kura dati ir mainījušies, bet pirms nākamā ieraksta, atvēršanas fokusā esošajai vadīklai tiek izpildīti notikumi Iziet un LostFocus. Šie notikumi tiek izpildīti pēc formas notikumiem BeforeUpdate un AfterUpdate, kā norādīts tālāk.
BeforeUpdate (forma) AfterUpdate (forma) Exit (vadīkla) LostFocus (vadīkla) Current (forma)
Pārvietojot fokusu starp vadīklām formā, notikumi tiek izpildīti katrai vadīklai. Piemēram, šādas notikumu secības tiek izpildītas, ja veicat tālāk norādītās darbības.
-
Atveriet formu un mainiet datus vadīklā:
Pašreizējā (forma) Enter (vadīkla) GotFocus (vadīkla) BeforeUpdate (vadīkla) AfterUpdate (vadīkla)
-
Fokusa pārvietošana uz citu vadīklu:
Iziet (vadīkla1) LostFocus (vadīkla1) Enter (vadīkla2) GotFocus (vadīkla2)
-
Fokusa pārvietošana uz citu ierakstu:
BeforeUpdate (forma) AfterUpdate (forma) Exit (vadīkla2) LostFocus (vadīkla2) Current (forma)
Ierakstu dzēšana
Ja izdzēsīsit kādu ierakstu, formai tiek izpildīti šādi notikumi un Microsoft Office Access parāda dialoglodziņu ar aicinājumu apstiprināt dzēšanu:
Delete BeforeDelConfirm AfterDelConfirm
Ja atcelsit dzēšanas notikumu, notikumi BeforeDelConfirm un AfterDelConfirm nenotiks un dialoglodziņš netiks parādīts.
Jauna ieraksta izveide
Ja pārvietojat fokusu uz jaunu (tukšu) ierakstu formā un pēc tam izveidojat jaunu ierakstu, ierakstot datus vadīklā, tiek izpildīti notikumi šādā secībā:
Current (forma) Enter (vadīkla) GotFocus (vadīkla) BeforeInsert (forma) AfterInsert (forma)
Notikums BeforeInsert (forma) aktivizē, tiklīdz sākat rakstīt vadīklā. Notikums AfterInsert (forma) aktivizē notikumu pēc ieraksta iziešanas.
Notikumi BeforeUpdate un AfterUpdate pēc vadīklām formā un jaunajam ierakstam notiek pēc notikuma BeforeInsert un pirms notikuma AfterInsert.
Notikumu secība formām un apakšformām
Notikumi notiek formām, atverot vai aizverot formu, pārvietojieties starp formām vai strādājot ar datiem formā vai apakšformā.
Formas atvēršana un aizvēršana
Ja atverat formu, formai tiek izpildīta tālāk norādītā notikumu secība.
Atvērt ielādēt izmērus, aktivizētu pašreizējo
Ja formā nav aktīvu vadīklu, notikums GotFocus formai notiek pēc notikuma Activate, bet pirms notikuma Current.
Ja aizverat formu, formai tiek izpildīta tālāk norādītā notikumu secība.
Izlādēt Deaktivizēt aizvērt
Ja formā nav aktīvu vadīklu, notikums LostFocus notiek pēc notikuma Unload, bet pirms notikuma Deactivate.
Pārvietošanās no formas uz formu
Pārslēdzoties starp divām atvērtām formām, pirmajai formai tiek izpildīts notikums Deactivate un otrajai formai tiek izpildīts notikums Activate:
Deaktivizēt (forma1) Aktivizēt (forma2)
Notikums Deaktivizēt formai notiek arī tad, ja pārslēdzaties no formas uz cita objekta cilni programmā Access. Tomēr notikums Deaktivizēt vairs nenotiek, ja pārslēdzaties uz dialoglodziņu formai, kuras rekvizīts PopUp ir iestatīts kā Jā, vai logs citā programmā.
Piezīme.: Notikums Atvērt nenotiek, ja fokuss tiek pārvietots uz formu, kas jau ir atvērta, pat tad, ja esat pārvietojis fokusu uz šo formu, veicot darbību OpenForm.
Darbs ar datiem formā
Formas un vadīklas notikumi tiek izpildīti, pārvietojoties starp ierakstiem formā un mainot datus. Piemēram, kad pirmo reizi atverat formu, tiek izpildīta tālāk norādītā notikumu secība.
Open (forma) Load (forma) Resize (forma) Activate (forma) Current (forma) Enter (vadīkla)0 GotFocus (vadīkla)
Tāpat, ja aizverat formu, tiek izpildīta tālāk norādītā notikumu secība.
Exit (vadīkla) LostFocus (vadīkla) Unload (forma) Deactivate (forma) Close (forma)
Ja esat mainījis datus vadīklā, notikumi BeforeUpdate un AfterUpdate vadīklai un formai notiek pirms notikuma Iziet vadīklai.
Darbs ar apakšformām
Ja atverat formu, kurā ir apakšforma, šī apakšforma un tās ieraksti tiek ielādēti pirms galvenās formas. Tādējādi notikumi apakšformai un tās vadīklām (piemēram, Atvērt, Pašreizējā, Enter, un GotFocus) notiek pirms veidlapas notikumiem. Tomēr notikums Aktivizēt apakšformām netiek izpildīts. Tādēļ galvenās formas atvēršana aktivizē notikumu Aktivizēt tikai galvenajai formai.
Tāpat, ja aizverat formu, kurā ir apakšforma, šī apakšforma un tās ieraksti tiek izlādēti pēc formas. Notikums Deactivate apakšformām netiek izpildīts. Tādēļ galvenās formas aizvēršana aktivizē notikumu Deactivate tikai galvenajai formai. Notikumi vadīklām, formai un apakšformai tiek izpildīti šādā secībā:
-
Apakšformas vadīklu notikumi (piemēram, Iziet un LostFocus)
-
Notikumi formas vadīklām (tostarp apakšformas vadīklai)
-
Notikumu formai (piemēram, Deaktivizēt un Aizvērt)
-
Notikumi apakšformai
Piezīme.: Tā kā apakšformas notikumi notiek pēc galvenās formas aizvēršanas, konkrēti notikumi, piemēram, galvenās formas aizvēršanas atcelšana no notikuma apakšformā, nenotiks. Šāda veida validācijas pārbaudes, iespējams, var būt nepieciešams pārvietot uz notikumu galvenajā formā.
Notikumu secība peles klikšķiem un taustiņsitieniem
Tastatūras notikumi tiek izpildīti formām un vadīklām, nospiežot taustiņus vai nosūtot taustiņsitienus, kamēr formai vai vadīklai ir fokuss. Peles notikumi tiek izpildīti formām, formu sadaļām un vadīklām formās, noklikšķinot ar peles pogām, kamēr peles rādītājs ir uz formas, sadaļas vai vadīklas. Peles notikumi arī notiek, ja pārvietojat peles rādītāju virs formas, sadaļas vai vadīklas.
Tastatūras notikumi
Nospiežot un atlaižot taustiņu, kamēr formas vadīkla atrodas fokusā (vai izmantojot SendKeys darbību vai priekšraksts, lai nosūtītu taustiņsitienu), tiek izpildīta šāda notikumu secība:
KeyDown KeyPress KeyUp
Nospiežot un atlaižot taustiņu vai nosūtot taustiņsitienu ANSI rakstzīmju kopa, tiek izpildīti visi notikumi KeyDown, KeyPress un KeyUp. Nospiežot un turot ANSI taustiņu, notikumi KeyDown un KeyPress vairākkārt mainās (KeyDown, KeyPress, KeyDown, KeyPress utt.), līdz atlaižat taustiņu; pēc tam tiek izpildīts notikums KeyUp .
Nospiežot un atlaižot taustiņu, kas nav ANSI taustiņš, tiek izpildīti notikumi KeyDown un KeyUp. Nospiežot un turot nospiestu taustiņu, kas nav ANSI, notikums KeyDown tiek izpildīts vairākkārt, līdz atlaižat taustiņu, un pēc tam tiek izpildīts notikums KeyUp.
Ja taustiņa nospiešana vadīklai izraisa citu notikumu, šis notikums tiek izpildīts pēc notikuma KeyPress, bet pirms notikuma KeyUp. Piemēram, ja taustiņsitiens maina tekstu tekstlodziņā, kas izraisa notikumu Mainīt, tiek izpildīta šāda notikumu secība:
KeyDown KeyPress KeyDown KeyUp
Ja taustiņsitiens izraisa fokusa pārvietošanu no vienas vadīklas uz citu vadīklu, notikums KeyDown tiek izpildīts pirmajai vadīklai, savukārt notikumi KeyPress un KeyUp tiek izpildīti otrajai vadīklai. Piemēram, ja maināt datus vadīklā un pēc tam nospiežat taustiņu TAB, lai pārietu uz nākamo vadīklu, tiek izpildīta šāda notikumu secība:
-
Pirmā vadīkla:
KeyDown BeforeUpdate AfterUpdate Exit LostFocus
-
Otrā vadīkla:
Enter GotFocus KeyPress KeyUp
Peles notikumi
Noklikšķinot un atlaižot peles pogu, kamēr peles rādītājs ir uz formas vadīklas, vadīklai tiek veikta šāda notikumu secība:
MouseDown MouseUp Click
Ja vadīkla atrodas fokusā un noklikšķināt uz citu vadīklu, lai pārvietotu fokusu uz šo otru vadīklu, tiek veikta šāda notikumu secība:
-
Pirmā vadīkla:
Iziet LostFocus
-
Otrā vadīkla:
Enter GotFocus MouseDown MouseUp Click
Ja pārejat uz citu ierakstu un pēc tam noklikšķināt uz vadīklas, notikums Current formai arī notiek pirms notikuma Enter vadīklai.
Veicot dubultklikšķi uz vadīklas, tiek izraisīta abu notikumu Click un DblClick izpilde. Piemēram, ja veicat dubultklikšķi uz vadīklas, kas nav komandas poga, vadīklai tiek izpildīta šāda notikumu secība:
MouseD own MouseUp Click DblClick MouseUp
Ja veicat dubultklikšķi uz komandpogas, tiek izpildīta iepriekšējā notikumu secība, kurai seko otrs notikums Click.
Notikums MouseMove notiek formai, sadaļai vai vadīklai, ja novietojat peles rādītāju virs veidlapas, sadaļas vai vadīklas. Šis notikums ir neatkarīgs no citiem peles notikumiem.
Notikumu secība atskaitēm un atskaišu sadaļām
Notikumi tiek izpildīti atskaitēm un atskaišu sadaļām, ja atverat atskaiti, lai to izdrukātu vai priekšskatītu, vai aizverat atskaiti.
Notikumi atskaitēm
Ja atverat atskaiti, lai to drukātu vai priekšskatītu, un pēc tam vēlāk aizveriet atskaiti vai pārvietojiet uz citu objekta cilni programmā Access, atskaitei tiek izpildīta šāda notikumu secība:
Atvērt Aktivizēt Aizvērt un Deaktivizēt
Pārslēdzoties starp divām atvērtām atskaitēm, pirmajai atskaitei tiek izpildīts notikums Deactivate un otrajai atskaitei tiek izpildīts notikums Activate:
Deaktivizēt (report1) Aktivizēt (report2)
Notikums Deaktivizēt atskaitei notiek arī tad, ja pārslēdzaties no atskaites uz cita objekta cilni programmā Access. Tomēr notikums Deaktivizēt vairs nenotiek, ja pārslēdzaties uz dialoglodziņu formai, kuras rekvizīts PopUp ir iestatīts kā Jā, vai logs citā programmā.
Ja atverat atskaiti, kuras pamatā ir vaicājums, Access aktivizē atvēršanas notikumu atskaitei pirms pamatā esošā vaicājuma izpildes. Tādējādi varat iestatīt kritērijus atskaitei, izmantojot makro vai notikuma procedūru, kas reaģē uz atvēršanas notikumu. Piemēram, makro vai notikuma procedūra var atvērt pielāgotu dialoglodziņu, kurā tiek ievadīti atskaites kritērijiem.
Notikumi atskaišu sadaļām
Drukājot vai priekšskatot atskaiti, formatēšanas un drukāšanas notikumi tiek izpildīti atskaites sadaļām pēc atvēršanas un aktivizēšanas notikumu izpildes un pirms atskaites aizvēršanas vai deaktivizēšanas notikumiem:
Atvērt (atskaite) (atskaite) Formatēt (atskaites sadaļa) Drukāt (atskaites sadaļa) Aizvērt (atskaite) Deaktivizēt (atskaite)
Drošība Atskaišu skatu var izmantot, lai iespējotu lietotāju atskaišu filtrēšanu. Taču atšķirībā no drukas priekšskatījumaformāta un drukāšanas notikumi jebkurā sadaļā nav sastopami atskaites skatā. Tas attiecas arī uz VBA funkciju rezultātiem un lietotāja definētām procedūrām, kas tiek parādītas vadīklās (piemēram, etiķešu paraksti, attēlojuma statuss, nosacījumformatēšana, vadīklu izmēru maiņa utt.) šajos notikumos. Tāpēc neizmantojiet kodu šajā notikumā, lai formatētu, paslēptu vai izdrukātu konfidenciālus datus, kas var tikt rādīti. Iesakām iepriekš filtrēt datus vai atspējot atskaites priekšskatījumu, iestatot rekvizītu AllowReportView uz Nē.
Turklāt tālāk minētie notikumi var notikt formatēšanas laikā vai pēc tās, bet pirms drukāšanas notikuma:
-
Atgriešanās notikums tiek izpildīts, ja Access atgriežas pie iepriekšējās sadaļas atskaites formatēšanas laikā.
-
Notikums NoData tiek izpildīts, ja atskaitē nav parādīts neviens ieraksts.
-
Lapas notikums tiek izpildīts pēc formatēšanas, bet pirms drukāšanas. Šo notikumu var izmantot, lai pielāgotu drukātās atskaites izskatu.