Samo jedna radnja, kao što je premještanje iz jedne kontrola s objekta na drugu kontrolu, može pokrenuti nekoliko različitih događaja, koji se odvijaju određenim redom. Važno je znati kada se događaji odvijaju i kojim se redom odvijaju jer to može utjecati na to kada se pokreću vaše makronaredbe ili postupci događaja. Tako, primjerice, ako postoje dva postupka događaja koja oba treba pokrenuti određenim redoslijedom, morali biste provjeriti da se događaji s kojima su povezani odvijaju istim redom.
Sadržaj članka
Redoslijed događaja za kontrole u obrascu
Događaji se odvijaju za kontrole na obrascima kada premjestite fokus na kontrolu i kada promijenite i ažurirate podatke na kontroli.
Napomena: Microsoft Office Access prikazuje nazive događaja malo drugačije u Visual Basic Editoru negoli na listu svojstava i sastavljaču makronaredbi. Primjerice, događaj s nazivom Prilikom fokusiranja na listu svojstava obrasca i u sastavljaču makronaredbi naziva se PriFokusiranju u Visual Basic Editoru. Primjeri u ovom članku služe se oblikom programa Visual Basic for Applications (VBA) za nazive događaja.
Premještanje fokusa na kontrolu
Kada premjestite fokus na kontrolu u obrascu (primjerice, otvaranjem obrasca koji sadrži jednu ili više aktivnih kontrola ili premještanjem fokusa na drugu kontrolu u istom obrascu), događaji Unos i PriFokusu odvijaju se sljedećim redoslijedom:
Unesite GotFocus
Kada otvorite obrazac, događaji Unos i PriFokusu odvijaju se nakon događaja povezanih s otvaranjem obrasca (kao što su Otvaranje, Aktiviranje i Postojeći ), kao što slijedi:
Otvaranje (obrazac) aktiviranje (obrazac) Trenutno (obrazac) Enter (kontrola) GotFocus (kontrola)
Kada se fokus premjesti s kontrole na obrazac (primjerice, kada zatvorite obrazac koji sadrži jednu ili više aktivnih kontrola ili kada prijeđete na drugu kontrolu u istom obrascu), događaji Izlaz i BezFokusa odvijaju se ovim redom:
Izlaz iz LostFocus
Kada zatvorite obrazac, događaji Izlaz i BezFokusa odvijaju se prije događaja koji su povezani sa zatvaranjem obrasca (kao što su Uklanjanje iz memorije, Deaktiviranje i Zatvaranje), kao što slijedi:
Izlaz (kontrola) BezFokusa (kontrole) iz memorije (obrasca) deaktiviranje (obrazac) Zatvori (obrazac)
Promjena i ažuriranje podataka u kontroli
Kada unesete ili promijenite podatke u kontroli na obrascu i potom premjestite fokus na drugu kontrolu, odvijaju se događaji PrijeAžuriranja i NakonAžuriranja:
PrijeAžuriranja afte rUpdate
Događaji Izlaz i BezFokusa za kontrolu čija se vrijednost mijenja odvijaju se nakon događaja PrijeAžuriranja i NakonAžuriranja:
BeforeUpdate AfterUpdate Exit LostFocus
Kada promijenite tekst u tekstnom okviru ili u odjeljku tekstnog okvira kombiniranog okvira, odvija se događaj Promjena. Taj se događaj odvija svaki put kad se promijeni sadržaj kontrole, ali prije nego što premjestite fokus na drugu kontrolu ili zapis (i zato se prije odvijaju događaji PrijeAžuriranja i NakonAžuriranja). Sljedeći se niz događaja odvija za svaku tipku koju pritisnete u tekstnom okviru ili u odjeljku tekstnog okvira kombiniranog okvira.
KeyDown KeyPress Dirty Change KeyUp
Događaj NijeNaPopisu odvija se nakon što unesete vrijednost u kombinirani okvir koja se ne nalazi na popisu kombiniranog okvira i zatim pokušate premjestiti fokus na drugu kontrolu ili zapis. Događaj NijeNaPopisu odvija se nakon događaja tipkovnice i događaja Promjena iz kombiniranog okvira, ali prije događaja za bilo koju drugu kontrolu s obrasca. Ako se svojstvo kombiniranog okvira OgraničiNaPopis postavi naDa, događaj Pogreška za obrazac odvija se odmah nakon događaja NijeNaPopisu:
KeyDown Pogreška nečiste keyUp NotInList 0 pogreška
Redoslijed događaja za zapise na obrascima
Događaji se za zapise na obrascima odvijaju kada premjestite fokus na drugi zapis, ažurirate podatke u zapisu, izbrišete postojeći zapis ili zapise ili kada stvorite novi zapis.
Premještanje fokusa na zapise i ažuriranje podataka u zapisima
Kada premjestite fokus na postojeći zapis na obrascu, unesete ili promijenite podatke u zapisu i potom premjestite fokus na drugi zapis, na obrascu se odvija sljedeći niz događaja:
Trenutni (obrazac) PrijeAžuriranja (obrazac) NakonAžuriranja (obrazac) trenutno (obrazac)
Kada napustite zapis u kojem su promijenjeni podaci, ali prije nego što unesete sljedeći zapis, odvijaju se događaji Izlaz i BezFokusa za kontrolu na kojoj je fokus. Ti se događaji odvijaju nakon događaja PrijeAžuriranja i NakonAžuriranja za obrazac, kako slijedi:
BeforeUpdate (form) AfterUpdate (form) Exit (control) LostFocus (control) Current (form)
Dok premještate fokus s kontrole na kontrolu u obrascu, za svaku se kontrolu odvijaju neki događaji. Primjerice, sljedeći se niz događaja odvija kada učinite sljedeće:
-
Otvorite obrazac i promijenite podatke u kontroli:
Trenutni (obrazac) Enter (kontrola) PristupFokusu (kontrola) PrijeAžuriranja (kontrola) AfterUpdate (kontrola)
-
Premjestite fokus na drugu kontrolu:
Izlaz (kontrola1) BezFokusa (kontrola1) Enter (kontrola2) Fokus (kontrola2)
-
Premjestite fokus na drugu kontrolu:
BeforeUpdate (form) AfterUpdate (form) Exit (control2) LostFocus (control2) Current (form)
Brisanje zapisa
Kada izbrišete zapis, za obrazac se odvijaju sljedeći događaji, a Microsoft Office Access prikazuje dijaloški okvir u kojem se od vas traži da potvrdite brisanje:
Izbriši PrijeDelConfirm AfterDelConfirm
Ako otkažete događaj Brisanje, neće se odviti događaji PotvrdaPrijeBrisanja i PotvrdaNakonBrisanja i neće se prikazati dijaloški okvir.
Stvaranje novog zapisa
Kada premjestite zapis na novi (prazan) zapis u obrascu i zatim stvorite novi zapis upisom podataka u kontrolu, odvit će se sljedeći niz događaja:
Trenutni (obrazac) Enter (kontrola) PriFokusu (kontrola) PrijeUmetanje (obrazac) AfterInsert (obrazac)
Događaj BeforeInsert (obrazac) pokreće se čim počnete upisivati u kontrolu. Događaj AfterInsert (obrazac) aktivira se nakon što napustite zapis.
Događaji PrijeAžuriranja i NakonAžuriranja za kontrole na obrascu i za novi zapis odvijaju se nakon događaja PrijeUmetanja i prije NakonUmetanja.
Redoslijed događaja za obrasce i podobrasce
Događaji se za obrasce odvijaju kada otvorite ili zatvorite obrazac, kada prelazite s obrasca na obrazac ili kada radite s podacima na obrascu ili podobrascu.
Otvaranje i zatvaranje obrasca
Kada otvorite obrazac, za obrazac se odvija sljedeći niz događaja:
Otvaranje učitavanja promjena aktivacije trenutnog
Ako na obrascu nema aktivnih kontrola, događaj PriFokusu odvija se za obrazac nakon događaja Aktiviranje, ali prije događaja Postojeći.
Kada zatvorite obrazac, za obrazac se odvija sljedeći niz događaja:
Uklanjanje deaktiviranje Zatvori
Ako na obrascu nema aktivnih kontrola, događaj BezFokusa odvija se za obrazac nakon događaja UklanjanjeIzMemorije, ali prije događaja Deaktiviranje.
Prelaženje iz obrasca u obrazac
Kada prelazite s jednog na drugi otvoreni obrazac, za prvi se obrazac odvija događaj Deaktiviranje, a za drugi Aktiviranje:
Deaktiviranje (obrazac1) Aktivacija (obrazac2)
Događaj deaktiviranja za obrazac se odvija i kada prijeđete s obrasca na neku drugu karticu objekta u programu Access. Događaj deaktiviranja, međutim, neće se odviti kada prijeđete na dijaloški okvir, na obrazac čije je svojstvo PopUp postavljeno na Da ili na prozor u drugom programu.
Napomena: Događaj Otvaranje neće se odviti ako premjestite fokus na obrazac koji je već otvoren, čak i ako ste premjestili fokus na taj obrazac tako što ste proveli postupak OtvaranjeObrasca.
Rad s podacima na obrascu
Događaji obrasca i kontrole odvijaju se dok prelazite sa zapisa na zapis u obrascu i mijenjate podatke. Primjerice, kada prvi put otvorite obrazac, odvija se sljedeći niz događaja:
Otvaranje (obrazac) Učitavanje (obrazac) Promjena veličine (obrazac) Aktivacija (obrazac ) Trenutno (obrazac) Enter (kontrola)0 Fokus (kontrola)
Na sličan način, kada zatvorite obrazac, odvija se sljedeći niz događaja:
Izlaz (kontrola) LostFokus (kontrola) iz memorije (obrazac) deaktiviranje (obrazac) Zatvori (obrazac)
Ako promijenite podatke u kontroli, i za kontrolu i za obrazac odvit će se događaji PrijeAžuriranja i NakonAžuriranja prije događaja Izaz za kontrolu.
Rad s podobrascima
Kada otvorite obrazac koji sadrži podobrazac, podobrazac i njegovi zapisi učitavaju se prije glavnog obrasca. Zbog toga se događaji za podobrazac i njegove kontrole (kao što su Otvaranje, Postojeći, Unos i PriFokusu) odvijaju prije događaja za obrazac. Ipak, događaj Aktiviranje ne odvija se za podobrasce. Zbog toga otvaranje glavnog obrasca pokreće događaj Aktiviranje samo za glavni obrazac.
Na sličan način, kada zatvorite obrazac koji sadrži podobrazac, podobrazac i njegovi zapisi iz memorije se uklanjanju nakon obrasca. Događaj deaktiviranja ne odvija se za podobrasce. Zbog toga zatvaranje glavnog obrasca pokreće događaj deaktiviranja samo za glavni obrazac. Događaji za kontrole, obrazac i podobrazac odvijaju se sljedećim redoslijedom:
-
Događaji za kontrole podobrasca (kao što su Izlaz i BezFokusa)
-
Događaji za kontrole obrasca (uključujući kontrolu podobrasca)
-
Događaji za obrazac (kao što su Deaktiviranje i Zatvaranje)
-
Događaji za podobrazac
Napomena: Budući da se događaji za podobrazac odvijaju nakon zatvaranja glavnog obrasca, određeni događaji, kao što je otkazivanje zatvaranja glavnog obrasca iz događaja u podobrascu, neće se odviti. Trebali biste premjestiti te vrste testova provjere valjanosti na događaj na glavnom obrascu.
Redoslijed događaja za pritiske na tipke i klikove mišem
Događaji pritiska na tipke odvijaju se za obrasce i kontrole kada pritisnete tipke ili pošaljete kontrole tipkama dok obrazac ili kontrola imaju fokus. Događaji miša odvijaju se za obrasce, odjeljke obrasca i kontrole na obrascima kada kliknete tipke miša dok je pokazivač miša u obrascu, odjeljku ili na kontroli. Događaji miša odvijaju se i kada pomaknete pokazivač miša nad obrascem, odjeljkom ili kontrolom.
Događaji tipkovnice
Kada pritisnete i otpustite tipku dok je neka kontrola obrasca u fokusu (ili se poslužite radnjom ŠaljiTipke ili koristite naredba za slanje kontrole tipkom, odvija se sljedeći niz događaja:
TipkaDown TipkaTisni TipkaUp
Kada pritisnete i otpustite tipku ili pošaljete kontrolu tipkom u programu ANSI skup znakova, odvijaju se događaji TipkaDolje, PritisakNaTipku i TipkaGore. Ako pritisnete i držite ANSI tipku, izmjenjuju se događaji TipkaDolje i PritisakNaTipku (TipkaDolje, PritisakNaTipku, TipkaDolje, PritisakNaTipku i tako dalje) dok ne otpustite tipku, a zatim se odvija događaj TipkaGore.
Ako pritisnete i otpustite tipku koja nije ANSI, odvijaju se događaji TipkaDolje i TipkaGore. Ako pritisnete i držite tipku koja nije ANSI, opetovano se odvija događaj TipkaDolje dok ne otpustite tipku a zatim se odvija događaj TipkaGore.
Ako se pritiskom na tipku pokreće neki drugi događaj za kontrolu, taj se događaj odvija nakon događaja PritisakNaTipku, ali prije događaja TipkaGore. Primjerice, ako se pritiskom na tipku mijenja tekst u tekstnom okviru, čime se pokreće događaj Promjena, odvija se sljedeći niz događaja:
TipkaDown TipkaPress Promjena Tipka Gore
Ako se pritiskom na tipku premješta fokus s jedne kontrole na drugu, za prvu se kontrolu odvija događaj TipkaGore, dok se za drugu kontrolu odvijaju događaji PritisakNaTipku i TipkaGore. Primjerice, ako promijenite podatke u kontroli i zatim pritisnete tipku tabulatora da biste prešli na sljedeću kontrolu, odvija se sljedeći niz događaja:
-
Prva kontrola:
KeyDown PrijeAžuriranja NakonAžuriranja izlaz LostFocus
-
Druga kontrola:
Enter GotFocus KeyPress KeyUp
Događaji miša
Kada kliknete i otpustite tipku miša dok je pokazivač miša na kontroli u obrascu, za kontrolu se odvija sljedeći niz događaja:
MouseDown MouseUp klik
Ako se fokus nalazi na kontroli pa kliknete drugu kontrolu da biste premjestili fokus na tu drugu kontrolu, odvija se sljedeći niz događaja:
-
Prva kontrola:
Izlaz iz LostFocus
-
Druga kontrola:
Enter GotFocus MouseDown MouseUp klik
Ako prijeđete na drugi zapis i zatim kliknete kontrolu, događaj Postojeći za obrazac također će se odviti prije događaja Unos za kontrolu.
Dvoklikom na kontrolu pokreće se odvijanju događaja Klik i Dvoklik. Primjerice, kada dvokliknete kontrolu koja nije naredbeni gumb, za kontrolu će se odviti sljedeći niz događaja:
MouseD own MouseUp Click DblClick MouseUp
Kada dvokliknete naredbeni gumb, odvija se prethodni niz događaja, a zatim drugi događaj Klik.
Događaj PokretMišem za obrazac, odjeljak ili kontrolu odvija se kada pomaknete pokazivač miša preko obrasca, odjeljka ili kontrole. Taj događaj ne ovisi o drugim događajima miša.
Redoslijed događaja za izvješća i odjeljci izvješća
Događaji se odvijaju za izvješća i odjeljke izvješća kada otvorite izvješće radi ispisa ili pretpregleda, odnosno kada zatvorite izvješće.
Događaji za izvješća
Kada otvorite izvješće radi ispisa ili pretpregleda i kada ga poslije zatvorite ili premjestite na drugu karticu objekta u programu Access, za izvješće će se odviti sljedeći niz događaja:
Otvaranje aktivacije zatvaranje deaktiviranje
Kada prelazite s jedno na drugo otvoreno izvješće, za prvo se izvješće odvija događaj Deaktiviranje, a za drugo Aktiviranje:
Deaktiviranje (izvješće1) aktivaciju (izvješće2)
Događaj deaktiviranja za izvješće se odvija i kada prijeđete s izvješća na neku drugu karticu objekta u programu Access. Događaj deaktiviranja, međutim, neće se odviti kada prijeđete na dijaloški okvir, na obrazac čije je svojstvo PopUp postavljeno na Da ili na prozor u drugom programu.
Kada otvorite izvješće koje se temelji na upitu, Acces pokreće događaj otvaranja za izvješće prije nego što pokrene pozadinski upit. Zbog toga možete postaviti kriterije za izvješće pomoću makronaredbe ili postupka događaja koji odgovara na događaj otvaranja. Tako, primjerice, makronaredba ili postupak događaja mogu otvoriti prilagođeni dijaloški okvir u koji unosite kriterije za izvješće.
Događaji za odjeljke izvješća
Kada ispisujete ili pretpregledavate izvješće, događati oblikovanja i ispisa odvijaju se za odjeljke izvješća nakon događaja otvaranja i aktiviranja za događaj, a prije događaja zatvaranja ili deaktiviranja za izvješće:
Otvori (izvješće) aktivaciju (izvješće) ( odjeljak izvješća) ispis (odjeljak izvješća) zatvaranje (izvješće) deaktiviranje (izvješće)
Sigurnost Pomoću prikaza izvješća možete omogućiti korisničko filtriranje izvješća. No za razliku od pretpregleda ispisa, događajiOblikovanje i Ispis u bilo kojoj sekciji ne odvijaju se u prikazu izvješća. To se odnosi i na rezultate VBA funkcija i korisnički definirane postupke koji se prikazuju u kontrolama (kao što su opisi natpisa, status prikaza, uvjetno oblikovanje, promjena veličine kontrola itd.) unutar tih događaja. Stoga nemojte koristiti kod u ovom događaju da biste oblikovali, sakrili ili ispisali povjerljive podatke koji bi mogli postati izloženi. Preporučujemo da unaprijed filtrirate podatke ili onemogućite pretpregled izvješća tako da svojstvo AllowReportView postavite na Ne.
Povrh toga, sljedeći događaji mogu se odviti tijekom ili nakon oblikovanja, ali prije događaja ispisa:
-
Događaj povlačenja odvija se kada se Access vrati na prethodni odjeljak tijekom oblikovanja izvješća.
-
Događaj NemaPodataka odvija se ako nema zapisa koji se prikazuju u izvješću.
-
Događaj Stranica odvija se nakon oblikovanja, ali prije ispisa. Tim se događajem možete poslužiti za prilagodbu izgleda ispisanog izvješća.