Jedna akcija, kao što je premještanje s jedne kontrole na objektu na drugu, možete pokrenuti nekoliko različitih događaja koji se pojavljuju određenim redoslijedom. 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
- Redoslijed događaja za zapise na obrascima
- Redoslijed događaja za obrasce i podobrasce
- Redoslijed događaja za pritiske na tipke i klikove mišem
- Redoslijed događaja za izvješća i odjeljke izvješća
Redoslijed događaja za kontrole u obrascu
Do događaja za kontrole na obrascima dolazi kada premjestite fokus na kontrolu i kada promijenite i ažurirate podatke u 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:
EnterGotFocus
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:
Otvori (obrazac) Strelica Aktiviraj (obrazac)
Trenutno (obrazac)
Enter (
) 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:
Strelica za izlaz
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:
Strelica Izlaz (kontrola
) Strelica LostFocus (
) strelica Ukloni iz memorije (obrazac)
Deaktiviraj (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:
Strelica BeforeUpdate
AfterUpdate
Događaji Izlaz i BezFokusa za kontrolu čija se vrijednost mijenja odvijaju se nakon događaja PrijeAžuriranja i NakonAžuriranja:
Strelica BeforeUpdate
Strelica AfterUpdate
Strelica za izlaz
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.
KeyPress
Dirty arrow 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 je svojstvo LimitToList kombiniranog okvira postavljeno na Da, do događaja Pogreška za obrazac dolazi odmah nakon događaja NotInlist :
arrowKeyPress
Dirty
Strelicaza promjenu
Strelica za promjenu Strelica KeyUp
strelica NotInList
pogreška
Redoslijed događaja za zapise na obrascima
Do događaja za zapise na obrascima dolazi kada premjestite fokus na drugi zapis, ažurirate podatke u zapisu, izbrišete postojeći zapis ili zapise ili pak 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:
Strelica Trenutno (obrazac
) Strelica BeforeUpdate (obrazac)
Strelica AfterUpdate (
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:
Strelica BeforeUpdate (obrazac)
Strelica AfterUpdate (obrazac)
Strelica izlaza (kontrola)
LostFocus (
kontrole) Trenutno (obrazac)
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:
Current
Enter (control)
arrow GotFocus (
BeforeUpdate (control)
AfterUpdate (kontrola) - Premjestite fokus na drugu kontrolu:
Strelica Izlaz (kontrola1)
LostFocus (kontrola1)
Enter (kontrola2)
GotFocus (kontrola2) - Premjestite fokus na drugu kontrolu:
Strelica BeforeUpdate (obrazac)
Strelica AfterUpdate (obrazac)
Strelica izlaza (
kontrola2) Strelica LostFocus (
kontrola2) Trenutno (obrazac)
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:
Strelica za brisanje
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:
Enter (kontrola )
strelica GotFocus (
) strelica BeforeInsert (obrazac
) AfterInsert (obrazac)
Događaj BeforeInsert (obrazac) aktivira se čim počnete upisivati u kontrolu. Događaj AfterInsert (obrazac) aktivira se kada 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:
Otvori Strelica Učitaj Strelica
za promjenu veličine
Strelica Aktiviraj
Trenutno
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:
Strelica Ukloni
iz memorijeZatvori
Ako nema aktivnih kontrola na obrascu, do događaja LostFocus dolazi nakon događaja Unload , a prije događaja Deactivate .
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:
Deaktiviraj (obrazac1) Aktiviraj (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:
Otvori (obrazac) Strelica Učitaj (obrazac)
Promjena veličine (obrazac)
strelica Strelica Aktiviraj (obrazac
)
Trenutno (obrazac) strelicaEnter (
) GotFocus (kontrola)
Na sličan način, kada zatvorite obrazac, odvija se sljedeći niz događaja:
Strelica Izlaz (kontrola
) Strelica LostFocus (
) strelica Ukloni iz memorije (obrazac)
Deaktiviraj (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
Do događaja tipkovnice za obrasce i kontrole dolazi kada pritisnete tipke ili pošaljete pritiske tipki dok je fokus na obrascu ili kontroli. 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 pritisnite i otpustite tipku dok je fokus na kontroli (ili koristite akciju ili naredbu SendKeys da biste poslali pritisak tipke), dolazi do sljedećeg slijeda događaja:
doljeTipka sa
gore
Kada pritisnite i otpustite tipku ili pošaljete pritisak tipke u skupu znakova ANSI, dolazi do svih događaja KeyDown, KeyPress i KeyUp . 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:
arrow KeyPress
Strelica za promjenu
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:
BeforeUpdate
Exit
LostFocus - Druga kontrola:
EnterGotFocus
TipkaPritisnite
Tipka gore
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:
prema mišuDolje
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:
Strelica za izlaz
LostFocus - Druga kontrola:
Enter
MouseDown
mišaGoreKliknite
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:
mišaDolje
miša prema gore Strelica Klik na
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:
Otvori strelicu Load
arrow Activate
Deactivate
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)
Aktiviraj (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:
Strelica Otvori (izvješće)
strelica Učitaj (izvješće)
strelica Aktiviraj (izvješće)
strelica Strelica Oblikovanje (sekcija izvješća)
strelica Ispis (sekcija izvješća)
Zatvori (izvješće)
Deaktiviranje (izvješće)
Sigurnost Prikaz izvješća možete koristiti da biste omogućili korisničko filtriranje izvješća. No za razliku od pretpregleda ispisa, događaji oblikovanja i ispisa ni u jednom odjeljku ne pojavljuju se u prikazu izvješća. To se odnosi i na rezultate VBA funkcija te 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 u ovom slučaju nemojte koristiti kod za oblikovanje, sakrivanje ili ispis povjerljivih podataka koji bi mogli postati otkriveni. 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.