Redosled događaja za objekte baze podataka

Primenjuje se na
Access za Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Jedna radnja, kao što je premeštanje sa jedne kontrole na objektu na drugu kontrolu, može da izazove nekoliko različitih događaja koji se odvijaju određenim redosledom. Važno je da znate koji se događaji odvijaju i u kom redosledu, jer oni mogu da utiču na način i vreme pokretanja makroa ili procedura događaja. Na primer, ako se dve procedure događaja pokreću u određenom redosledu, trebalo bi da proverite da li se događaji sa kojima su povezani odvijaju u istom tom redosledu.

U ovom članku

Redosled događaja za kontrole u obrascima

Događaji se odvijaju za kontrole u obrascima kada premestite fokus na kontrolu i kada promenite i ažurirate podatke u kontroli.

Napomena

Microsoft Office Access prikazuje imena događaja malo drugačije u programu Visual Basic Editor nego u listu sa svojstvima i Izradi makroa. Na primer, događaj pod imenom On Got Focus u listu sa svojstvima obrasca i izradi makroa zove se GotFocus u programu Visual Basic Editor. Primeri u ovom članku koriste format programskog jezika Visual Basic za aplikacije (VBA) za imena događaja.

Premeštanje fokusa na kontrolu

Kad premestite fokus na kontrolu u obrascu (na primer, tako što ćete otvoriti obrazac koji sadrži jednu aktivnu kontrolu ili više njih ili tako što ćete premestiti fokus na drugu kontrolu u istom obrascu), događaji Enter i GotFocus odigravaju se u ovom redosledu:

EnterarrowGotFocus

Kad otvorite obrazac, događaji Enter i GotFocus odvijaju se nakon događaja povezanih sa otvaranjem obrasca (kao što su Open, Activate i Current), na sledeći način:

Open (obrazac) arrowActivate (form) arrowCurrent (form) arrowEnter (control) arrowGotFocus (kontrola)

Kad fokus ostavi kontrolu u obrascu (na primer, kad zatvorite obrazac koji sadrži jednu aktivnu kontrolu ili više njih ili kad premestite u drugu kontrolu u istom obrascu), događaji Exit i LostFocus odvijaju se u ovom redosledu:

IzlaznastrelicaLostFocus

Kad zatvorite obrazac, događaji Exit i LostFocus odvijaju se pre događaja povezanih sa zatvaranjem obrasca (kao što su Unload, Deactivate i Close), na sledeći način:

Izlazna strelica (kontrola)LostFocus (kontrola) strelica Unload (obrazac)strelica Deactivate (obrazac) Close (obrazac)

Menjanje i ažuriranje podataka u kontroli

Kad unesete ili promenite podatke u kontroli u obrascu, a zatim premestite fokus na drugu kontrolu, odvijaju se događaji BeforeUpdate i AfterUpdate:

BeforeUpdatearrowAfterUpdate

Događaji Exit i LostFocus za kontrolu čija se vrednost menja odvijaju se nakon događaja BeforeUpdate i AfterUpdate:

BeforeUpdatearrowAfterUpdatearrowExitarrowLostFocus

Kad promenite tekst u okviru za tekst ili u odeljku okvira za tekst kombinovanog okvira, odvija se događaj Change. Ovaj događaj odvija se pri svakoj promeni sadržaja kontrole, ali pre nego što premestite fokus na drugu kontrolu ili zapis (a samim tim, i pre odvijanja događaja BeforeUpdate i AfterUpdate). Sledeći redosled događaja odvija se za svaki taster koji pritisnete u okviru za tekst ili odeljku okvira za tekst kombinovanog okvira:

KeyDown arrowKeyPressarrowDirtyarrowChangearrowKeyUp

Događaj NotInList odvija se nakon što unesete vrednost u kombinovani okvir koji nije pronađen na listi kombinovanih okvira i zatim pokušate da premestite fokus na drugu kontrolu ili zapis. Događaj NotInList odvija se nakon događaja tastature i događaja Change za kombinovani okvir, ali pre događaja za druge kontrole ili obrazac. Ako je svojstvo LimitToList kombinovanog okvira postavljeno na Da, događaj Error za obrazac odvija se odmah posle događaja NotInList :

KeyDown arrowKeyPressarrowDirtyarrowChangearrowKeyUparrowNotInListarrowError

Vrh stranice

Redosled događaja za zapise u obrascima

Događaji se odvijaju za zapise u obrascima kada premestite fokus na drugi zapis, ažurirate podatke u zapisu, izbrišete postojeći zapis ili zapise ili kreirate novi zapis.

Premeštanje fokusa na zapise i ažuriranje podataka u zapisima

Kad premestite fokus na postojeći zapis u obrascu, unesete ili promenite podatke u zapisu, a zatim premestite fokus na drugi zapis, odvija se sledeći redosled događaja za obrazac:

Current (form) arrow BeforeUpdate (obrazac) arrowAfterUpdate (obrazac)arrow Current (obrazac)

Kad napustite zapis čiji se podaci menjaju, ali pre nego što unesete sledeći zapis, događaji Exit i LostFocus odvijaju se za kontrolu koja ima fokus. Ovi događaji se odvijaju nakon događaja BeforeUpdate i AfterUpdate za obrazac, na sledeći način:

BeforeUpdate (obrazac) strelicaAfterUpdate (obrazac) strelicaExit (kontrola)strelica LostFocus (kontrola) strelicaCurrent (obrazac)

Dok premeštate fokus među kontrolama u obrascu, odvijaju se događaji za svaku kontrolu. Na primer, sledeći redosledi događaja se odvijaju dok radite sledeće:

  • Otvaranje obrasca i menjanje podataka u kontroli:
    Current (obrazac) arrowEnter (kontrola) arrowGotFocus (control) arrowBeforeUpdate (control) arrowAfterUpdate (kontrola)
  • Premeštanje fokusa na drugu kontrolu:
    Exit (kontrola1) strelicaLostFocus (kontrola1) strelicaEnter (kontrola2) strelicaGotFocus (kontrola2)
  • Premeštanje fokusa na drugi obrazac:
    BeforeUpdate ( obrazac) arrowAfterUpdate ( obrazac)arrow Exit (control2 )arrow LostFocus (control2 )arrow Current (obrazac)

Brisanje zapisa

Kad izbrišete zapis, odvijaju se sledeći događaji za zapis, a Microsoft Office Access prikazuje dijalog koji vam traži da potvrdite brisanje:

DeletearrowBeforeDelConfirmarrowAfterDelConfirm

Ako otkažete događaj Delete, događaji BeforeDelConfirm i AfterDelConfirm se ne odvijaju, a dijalog se ne prikazuje.

Kreiranje novog zapisa

Kad premestite fokus na novi (prazan) zapis u obrascu, a zatim kreirate novi zapis tako što ćete kucati podatke u kontroli, odvija se sledeći redosled događaja:

Current (obrazac) arrowEnter (control) arrowGotFocus ( control)arrow BeforeInsert ( obrazac)arrow AfterInsert (obrazac)

Događaj BeforeInsert (obrazac) pokreće se čim počnete da kucate u kontroli. Događaj AfterInsert (obrazac) pokreće se kada napustite zapis.

Događaji BeforeUpdate i AfterUpdate za kontrole u obrascu i za novi zapis odvijaju se nakon događaja BeforeInsert i pre događaja AfterInsert.

Vrh stranice

Redosled događaja za obrasce i podobrasce

Događaji se odvijaju za obrasce kad otvorite ili zatvorite obrazac, premeštate se između obrazaca ili radite sa podacima u obrascu ili podobrascu.

Otvaranje i zatvaranje obrasca

Kad otvorite obrazac, odvija se sledeći redosled događaja za obrazac:

OpenarrowLoadarrowResizearrow ActivatearrowCurrent

Ako nema aktivnih kontrola u obrascu, događaj GotFocus odvija se za obrazac nakon događaja Activate, ali pre događaja Current.

Kad zatvorite obrazac, odvija se sledeći redosled događaja za obrazac:

Unload arrowDeactivatearrowClose

Ako nema aktivnih kontrola u obrascu, događaj LostFocus odvija se za obrazac nakon događaja Unload , ali pre događaja Deactivate .

Premeštanje između obrazaca

Kad se prebacujete između dva otvorena obrasca, događaj Deactivate se odvija za prvi obrazac, a događaj Activate za drugi obrazac:

Deactivate (obrazac1) arrowActivate (obrazac2)

Događaj Deactivate za obrazac odvija se i kad se prebacujete sa obrasca na karticu drugog objekta u programu Access. Međutim, događaj Deactivate se ne odvija kad se prebacujete na dijalog, na obrazac čije je svojstvo PopUp podešeno na Da ili na prozor u drugom programu.

Napomena

Događaj Open se ne odvija ako premeštate fokus na obrazac koji je već otvoren, čak i ako premeštate fokus na taj obrazac izvršavanjem radnje OpenForm.

Rad sa podacima u obrascu

Događaji obrasca i kontrole odvijaju se dok se premeštate između zapisa u obrascu i menjate podatke. Na primer, kad prvi put otvorite obrazac, odvija se sledeći redosled događaja:

Open (obrazac) arrowLoad (form) arrowResize (form) arrowActivate (form)arrow Current (form) arrowEnter (control) arrowGotFocus (kontrola)

Slično tome, kad zatvorite obrazac, odvija se sledeći redosled događaja:

Izlazna strelica (kontrola)LostFocus (kontrola) strelica Unload (obrazac)strelica Deactivate (obrazac) Close (obrazac)

Ako promenite podatke u kontroli, događaji BeforeUpdate i AfterUpdate se i za kontrolu i za obrazac odvijaju pre događaja Exit za kontrolu.

Rad sa podobrascima

Kad otvorite obrazac koji sadrži podobrazac, podobrazac i njegovi zapisi učitavaju se pre glavnog obrasca. Zbog toga se događaji za podobrazac i njegove kontrole (kao što su Open, Current, Enter i GotFocus) odvijaju pre događaja za obrazac. Međutim, događaj Activate se ne odvija za podobrasce. Samim tim, otvaranje glavnog obrasca pokreće događaj Activate samo za glavni obrazac.

Slično tome, kad zatvorite obrazac koji sadrži podobrazac, prekida se učitavanje podobrasca i njegovih zapisa nakon obrasca. Događaj Deactivate se ne odvija za podobrasce. Samim tim, zatvaranje glavnog obrasca pokreće događaj Deactivate samo za glavni obrazac. Događaji za kontrole, obrazac i podobrazac odvijaju se u sledećem redosledu:

  1. Događaji za kontrole podobrasca (kao što su Exit i LostFocus)
  2. Događaji za kontrole obrasca (uključujući kontrole podobrasca)
  3. Događaji za obrazac (kao što su Deactivate i Close)
  4. Događaji za podobrazac

Napomena

Pošto se događaji za podobrazac odvijaju nakon zatvaranja glavnog obrasca, određeni događaji, kao što je zatvaranje glavnog obrasca iz događaja u podobrascu, neće se odigrati. Možda ćete morati da premestite ove tipove testova provere valjanosti na događaj u glavnom obrascu.

Vrh stranice

Redosled događaja za pritiske na taster i klik mišem

Događaji tastature odvijaju se za obrasce i kontrole kada pritisnete tastere ili pošaljete pritiske na taster dok je obrazac ili kontrola u fokusu. Događaji miša se odvijaju za obrasce, odeljke obrasca i kontrole u obrascima kad kliknete na dugmad miša dok je pokazivač miša na obrascu, odeljku ili kontroli. Događaji miša se takođe odvijaju kad premestite pokazivač miša preko obrasca, odeljka ili kontrole.

Događaji tastature

Kada pritisnete i otpustite taster dok je kontrola u obrascu u fokusu (ili koristite radnju ili izjavu SendKeys za slanje pritiska na taster), odvija se sledeći redosled događaja:

KeyDown arrowKeyPressarrowKeyUp

Kada pritisnete i otpustite taster ili pošaljete pritisak na taster u ANSI skupu znakova, odvijaju se događaji KeyDown, KeyPress i KeyUp . Ako pritisnete i držite taster ANSI, događaji KeyDown i KeyPress se više puta naizmenično smenjuju (KeyDown, KeyPress, KeyDown, KeyPress i tako dalje) dok ne otpustite taster; zatim se odvija događaj KeyUp.

Ako pritisnete i otpustite taster koji nije ANSI, odvijaju se događaji KeyDown i KeyUp. Ako pritisnete i držite taster koji nije ANSI, više puta se odvija događaj KeyDown dok ne otpustite taster, a zatim se odvija događaj KeyUp.

Ako pritiskom na taster dolazi do još jednog događaja za kontrolu, taj događaj se odvija nakon događaja KeyPress, ali pre događaja KeyUp. Na primer, ako pritisak na taster menja tekst u okviru za tekst, što dovodi do događaja Change, odvija se sledeći redosled događaja:

KeyDown arrowKeyPressarrowChangearrowKeyUp

Ako pritisak na taster uzrokuje premeštanje fokusa sa jedne kontrole na drugu kontrolu, događaj KeyDown se odvija za prvu kontrolu, dok se događaji KeyPress i KeyUp odvijaju za drugu kontrolu. Na primer, ako promenite podatke u kontroli, a zatim pritisnete taster TAB da biste se premestili na sledeću kontrolu, odvija se sledeći redosled događaja:

  • Prva kontrola:
    KeyDownarrowBeforeUpdatearrowAfterUpdatearrowExitLostFocus
  • Druga kontrola:
    EnterarrowGotFocusarrowKeyPresskeyUp

Događaji miša

Kad kliknete na dugme miša i otpustite ga dok je pokazivač miša na kontroli u obrascu, odvija se sledeći redosled događaja:

MouseDownarrowMouseUparrowClick

Ako kontrola ima fokus i kliknete na drugu kontrolu da biste premestili fokus na nju, odvija se sledeći redosled događaja:

  • Prva kontrola:
    IzlaznastrelicaLostFocus
  • Druga kontrola:
    EnterarrowGotFocusarrowMouseDownarrowClick

Ako se premestite na drugi zapis, a zatim kliknete na kontrolu, događaj Current za obrazac takođe se odvija pre događaja Enter za kontrolu.

Duplim klikom na kontrolu dolazi do događaja Click i DblClick. Na primer, kad kliknete dvaput na kontrolu koja nije komandno dugme, odvija se sledeći redosled događaja za kontrolu:

MouseDownarrowMouseUpClickarrowDblClickarrowMouseUp

Kad kliknete dvaput na komandno dugme, odvija se prethodni redosled događaja, nakon čega dolazi do događaja Click.

Događaj MouseMove za obrazac, odeljak ili kontrolu odvija se kad premestite pokazivač miša na obrazac, odeljak ili kontrolu. Ovaj događaj je nezavisan od drugih događaja miša.

Vrh stranice

Redosled događaja za izveštaje i odeljke izveštaja

Događaji se odvijaju za izveštaje i odeljke izveštaja kad otvorite izveštaj za štampanje ili pregled ili kad zatvorite izveštaj.

Događaji za izveštaje

Kad otvorite izveštaj da biste ga štampali ili pregledali, a zatim zatvorite izveštaj ili ga premestite na karticu drugog objekta u programu Access, odvija se sledeći redosled događaja:

OpenarrowLoadarrowActivatearrowClosearrowDeactivate

Kad se prebacujete između dva otvorena izveštaja, događaj Deactivate se odvija za prvi izveštaj, a događaj Activate za drugi izveštaj:

Deactivate (izveštaj1) arrowActivate (izveštaj2)

Događaj Deactivate za izveštaj se odvija i kad se prebacujete sa izveštaja na karticu drugog objekta u programu Access. Međutim, događaj Deactivate se ne odvija kad se prebacujete na dijalog, na obrazac čije je svojstvo PopUp podešeno na Da ili na prozor u drugom programu.

Kad otvorite izveštaj koji se zasniva na upitu, Access pokreće događaj Open za izveštaj pre nego što pokrene osnovni upit. Kao rezultat toga, možete da podesite kriterijume za izveštaj pomoću makroa ili procedure događaja koja odgovara na događaj Open. Na primer, makro ili događaj procedure mogu da otvore prilagođeni dijalog u koji unosite kriterijume izveštaja.

Događaji za odeljke izveštaja

Kad štampate ili pregledate izveštaj, događaji Format i Print za odeljke izveštaja odvijaju se nakon događaja Open i Activate za izveštaj i pre događaja Close ili Deactivate za izveštaj:

Open (izveštaj) arrowLoad (report) arrowActivate (report) arrowFormat (report section) arrowPrint (report section) arrowClose (report) arrowDeactivate (izveštaj)

Bezbednosti Prikaz izveštaja možete da koristite da biste omogućili filtriranje izveštaja korisnika. Ali za razliku od pregleda pre štampanja, događaji Oblikovanjei Štampanje u bilo kom odeljku ne odvijaju se u prikazu izveštaja. Ovo se odnosi i na rezultate VBA funkcije i korisnički definisane procedure koje se prikazuju u kontrolama (kao što su natpisi oznaka, status prikaza, uslovno oblikovanje, promena veličine kontrola i tako dalje) u tim događajima. Zbog toga nemojte koristiti kôd u ovom događaju da biste oblikovali, sakrili ili odštampali poverljive podatke koji mogu da postanu izloženi. Preporučujemo da unapred filtrirate podatke ili onemogućite pregled izveštaja tako što ćete postaviti svojstvo AllowReportView na ne.

Pored toga, može doći do sledećih događaja tokom ili nakon oblikovanja, ali pre događaja Print:

  • Događaj Retreat se odvija kad se Access vrati na prethodni odeljak tokom oblikovanja izveštaja.
  • Događaj NoData se odvija ako izveštaj nema zapise za prikaz.
  • Događaj Page se odvija nakon oblikovanja, ali pre štampanja. Možete da koristite ovaj događaj da biste prilagodili izgled štampanog izveštaja.

Vrh stranice