En enkelt handling, f.eks. at flytte fra ét kontrolelement på et objekt til et andet, kan udløse flere forskellige hændelser, der sker i en bestemt rækkefølge. Det er vigtigt at vide, hvornår hændelser sker, og i hvilken rækkefølge de sker i, fordi det kan påvirke, hvordan og hvornår dine makroer eller hændelsesprocedurer kører. Hvis der f.eks. er to hændelsesprocedurer, der skal køres i en bestemt rækkefølge, vil du være sikker på, at de hændelser, som de er tilknyttet, sker i den samme rækkefølge.
Denne artikel indeholder
- Rækkefølge af hændelser for kontrolelementer i formularer
- Rækkefølge af hændelser for poster i formularer
- Rækkefølge af hændelser for formularer og underformularer
- Rækkefølge af hændelser for tastetryk og museklik
- Rækkefølge af hændelser for rapporter og rapportsektioner
Rækkefølge af hændelser for kontrolelementer i formularer
Hændelser sker for kontrolelementer i formularer, når du flytter fokus til et kontrolelement, og når du ændrer og opdaterer data i et kontrolelement.
Bemærk
Microsoft Office Access viser hændelsesnavne en anelse forskelligt i Visual Basic Editor, end det gør i egenskabsarket og Makrogenerator. For eksempel er den hændelse, der kaldes VedFikFokus i formularens egenskabsark og i makrogeneratoren, FikFokus i Visual Basic Editor. Eksemplerne i denne artikel bruger VBA-formatet (Visual Basic for Applications) til hændelsesnavne.
Flytning af fokus til et kontrolelement
Når du flytter fokus til et kontrolelement i en formular (f.eks. ved at åbne en formular, der indeholder én eller flere aktive kontrolelementer, eller ved at flytte fokus til et andet kontrolelement i samme formular), sker hændelserne Enter og FikFokus i følgende rækkefølge:
Enter-pil
FikFokus
Når du åbner en formular, udføres hændelserne Enter og FikFokus efter de hændelser, der er knyttet til åbning af formularen (f.eks. Åbn, Aktivér og Aktuel), på følgende måde:
Åben (formular
Aktivér (formular)
Aktuel (formular)
Enter (kontrolelement)
(kontrolelement)
Når fokus fjernes fra et kontrolelement i en formular (f.eks. når du lukker en formular, der indeholder én eller flere aktive kontrolelementer, eller når du flytter til et andet kontrolelement i samme formular), sker hændelserne Afslut og FokusVæk i følgende rækkefølge:
Afslut
FokusVæk
Når du lukker en formular, sker hændelserne Afslut og FokusVæk, før de hændelser, der er knyttet til lukning af formularen (f.eks. Fjern, Deaktiver og Luk) på følgende måde:
Afslut (kontrolelement
FokusVæk (kontrolelement)
Fjern ( formular)
Deaktiver (formular)
Luk (formular)
Ændring og opdatering af data i et kontrolelement
Når du indtaster eller ændrer data i et kontrolelement i en formular og derefter flytter fokus til et andet kontrolelement, sker hændelserne FørOpdatering og EfterOpdatering:
EfterOpdatering
Hændelserne Afslut og FokusVæk for et kontrolelement, hvis værdiændringer sker efter hændelserne FørOpdatering og EfterOpdatering:
Pilen FørOpdatering
EfterOpdatering
FokusVæk
Når du ændrer teksten i et tekstfelt eller i tekstfeltdelen af et kombinationsfelt, sker hændelsen Skift. Denne hændelse sker, hver gang indholdet af kontrolelementet ændres, men før du flytter fokus til et andet kontrolelement eller en anden post (og derfor før hændelserne FørOpdatering og EfterOpdatering udføres). Følgende rækkefølge af hændelser sker for hver tast, du trykker på i et tekstfelt eller i tekstfeltdelen af en kombinationsfelt:
TastPil ned
TastTryk
Ændret
TastOp
Hændelsen IkkePåListe sker efter, at du har indtastet en værdi i et kombinationsfelt, der ikke findes på listen i kombinationsfeltet, og så prøver at flytte fokus til et andet kontrolelement eller en anden post. Hændelsen IkkePåListe udføres efter tastaturhændelserne og Skift-hændelserne for kombinationsfeltet, men før hændelserne for noget andet kontrolelement eller nogen anden formular. Hvis egenskaben BegrænsTilListe for kombinationsfeltet er angivet til Ja, udføres hændelsen Error for formularen umiddelbart efter hændelsen NotInList :
nedTastTryk
Ændret
TastPil opIkkeInList
Fejl
Rækkefølge af hændelser for poster i formularer
Hændelser sker for poster i formularer, når du flytter fokus til en anden post, opdaterer data i en post, sletter en eksisterende post eller eksisterende poster eller opretter en ny post.
Flytning af fokus til poster og opdatering af data i poster
Når du flytter fokus til en eksisterende post i en formular, indtaster eller ændrer data i posten og derefter flytter fokus til en anden post, udføres følgende rækkefølge af hændelser for formularen:
Pil Aktuel (formular)
Pil FørOpdatering (formular)
EfterOpdatering (formular)
(formular)
Når du forlader den post, hvis data blev ændret, men før du skifter til næste post, udføres hændelserne Afslut og FokusVæk for det kontrolelement, der er i fokus. Disse hændelser sker efter hændelserne FørOpdatering og EfterOpdatering for formularen på følgende måde:
Pil til FørOpdatering (formular)
Pil til
Afslut (kontrolelement
Pil til FokusVæk (kontrolelement)
(formular)
Når du flytter fokus mellem kontrolelementerne i en formular, udføres hændelser for hvert kontrolelement. For eksempel udføres følgende rækkefølger af hændelser, når du gør følgende:
- Åbner en formular og ændrer data i et kontrolelement:
Aktuel
(formular)
(kontrolelement) FikFokus (kontrolelement)
FørOpdatering (kontrolelement)
EfterOpdatering (kontrolelement) - Flytter fokus til et andet kontrolelement:
Pil til Afslut (kontrolelement1)
Pil til FokusVæk (kontrolelement1)
Enter (kontrolelement2
FikFokus (kontrolelement2) - Flytter fokus til en anden post:
FørOpdatering (formular)
EfterOpdatering (formular)
Afslut (kontrolelement2)
FokusVæk (kontrolelement2)
Aktuel (formular)
Sletning af poster
Når du sletter en post, sker følgende hændelser for formularen, og i Microsoft Office Access vises en dialogboks, hvori du bedes om at bekræfte sletningen:
Pilen Slet
Pilen FørSletning EfterSletning
Hvis du annullerer hændelsen Slet, udføres hændelserne FørSletning og EfterSletning ikke, og dialogboksen vises ikke.
Oprettelse af en ny post
Når du flytter fokus til en ny (tom) post i en formular og derefter opretter en ny post ved at indtaste data i et kontrolelement, sker følgende hændelsessekvens:
Aktuel
(formular) Enter (kontrolelement)
FikFokus (kontrolelement)
FørIndsættelse (formular)
EfterIndsættelse (formular)
Hændelsen FørIndsættelse (formular) udløses, så snart du begynder at skrive i kontrolelementet. Hændelsen EfterIndsættelse (formular) udløses, når du forlader posten.
Hændelserne for FørOpdatering og EfterOpdatering for kontrolelementerne i formularen og for den nye post udføres efter hændelsen FørIndsættelse og før hændelsen EfterIndsættelse.
Rækkefølge af hændelser for formularer og underformularer
Hændelser udføres i formularer, når du åbner eller lukker en formular, flytter mellem formularer eller arbejder med data i en formular eller underformular.
Åbning og lukning af en formular
Når du åbner en formular, udføres følgende hændelsessekvens for formularen:
Pil til åbning
Pil til indlæsning
Pil til tilpasning af størrelse
Aktivér
Aktuel
Hvis der ikke er nogen aktive kontrolelementer i formularen, udføres hændelsen FikFokus for formularen efter hændelsen Aktivér, men før hændelsen Aktuel.
Når du lukker en formular, udføres følgende hændelsessekvens for formularen:
Pil til fjernelse
Pil til deaktivering
Luk
Hvis der ikke er nogen aktive kontrolelementer i formularen, udføres hændelsen FokusVæk for formularen efter hændelsen Fjern, men før hændelsen Deaktiver .
Skift mellem formularer
Når du skifter mellem to åbne formularer, udføres hændelsen Deaktiver for den første formular, og hændelsen Aktivér for den anden formular:
Pilen Deaktiver (formular1
) Aktivér (formular2)
Hændelsen Deaktiver for en formular sker også, når du skifter fra formularen til en anden objektfane i Access. Dog udføres hændelsen Deaktiver ikke, når du skifter til en dialogboks, til en formular, hvis egenskab PopOp er indstillet til Ja, eller til et vindue i et andet program.
Bemærk
Hændelsen Åbn udføres ikke, hvis du flytter fokus til en formular, der allerede er åben, selv hvis du har flyttet fokus til den pågældende formular ved at udføre handlingen ÅbnFormular.
Arbejde med data i en formular
Formular- og kontrolelementbaserede hændelser, mens du flytter mellem poster i formularen og ændrer data. For eksempel, når du åbner en formular første gang, udføres følgende hændelsessekvens for formularen:
Åbn (formular)
Indlæs (formular)
Tilpas størrelse (formular)
Aktivér (formular)
Aktuel (formular)
Enter (kontrolelement)
FikFokus (kontrolelement)
På samme måde udføres følgende sekvens af hændelser, når du lukker en formular:
Afslut (kontrolelement
FokusVæk (kontrolelement)
Fjern ( formular)
Deaktiver (formular)
Luk (formular)
Hvis du har ændret data i et kontrolelement, udføres hændelserne FørOpdatering og EfterOpdatering for både kontrolelementet og formularen før hændelsen Afslut for kontrolelementet.
Arbejde med underformularer
Når du åbner en formular, der indeholder en underformular, indlæses underformularen og dens poster før hovedformularen. Dermed udføres hændelserne for underformularen og dens kontrolelementer (f.eks. Åben, Aktuel, Enter og FikFokus) før hændelserne for formularen. Dog udføres hændelsen Aktivér ikke for underformularer. Derfor udløser åbning af en hovedformular kun en aktiveringshændelse for hovedformularen.
På samme måder gælder, at når du lukker en formular, der indeholder en underformular, fjernes underformularen og dens poster efter formularen. Hændelsen Deaktiver udføres ikke for underformularer. Derfor udløser lukning af en hovedformular kun en Deaktiver-hændelse for hovedformularen. Hændelserne for kontrolelementerne, formularen og underformularen sker i følgende rækkefølge:
- Hændelser for underformularens kontrolelementer (f.eks. Afslut og FokusVæk)
- Hændelser for formularens kontrolelementer (herunder underformularkontrolelementet)
- Hændelser for formularen (f.eks. Deaktiver og Luk)
- Hændelser for underformularen
Bemærk
Da hændelserne for en underformular sker, når hovedformularen er lukket, forekommer visse hændelser ikke, f.eks. annullering af lukning af hovedformularen fra en hændelse i underformularen. Det kan være nødvendigt at flytte disse typer valideringstest til en hændelse i hovedformularen.
Rækkefølge af hændelser for tastetryk og museklik
Tastaturhændelser sker for formularer og kontrolelementer, når du trykker på taster eller sender tastetryk, mens formularen eller kontrolelementet er i fokus. Musehændelser sker for formularer, formularsektioner og kontrolelementer i formularer, når du klikker på musetasterne, mens musemarkøren er på en formular, en sektion eller et kontrolelement. Musehændelser sker også, når du flytter musemarkøren over en formular, en sektion eller et kontrolelement.
Tastaturhændelser
Når du trykker på og slipper en tast, mens et kontrolelement i en formular er i fokus (eller brug handlingen eller sætningen SendTaster til at sende et tastetryk), udføres følgende hændelsessekvens:
TastPil nedTryk
piletastenOp
Når du trykker på og slipper en tast eller sender et tastetryk i ANSI-tegnsættet, udføres alle hændelserne TastNed, Tastetryk og TastOp . Hvis du trykker på og holder en ANSI-tast nede, skiftes tastNed - og Tastetryk-hændelserne gentagne gange (TastNed, Tastetryk, TastNed, Tastetryk osv.), indtil du slipper tasten. derefter udføres KeyUp-hændelsen .
Hvis du trykker på og slipper en tast, der ikke er en ANSI-tast, udføres hændelserne TastNed og TastOp. Hvis du trykker på holder en tast, der ikke er en ANSI-tast, nede, udføres hændelsen TastNed kontinuerligt, indtil du slipper taster, hvorefter hændelsen TastOp udføres.
Hvis tryk på en tast, udløser en anden hændelse for et kontrolelement, udføres den pågældende hændelse efter hændelsen Tastetryk , men før hændelsen TastOp . Hvis et tastetryk f.eks. ændrer tekst i et tekstfelt, der udløser en Skift-hændelse , udføres følgende hændelsessekvens:
TastPil ned
TastTryk
Skift
pilTastOp
Hvis et tastetryk får fokus til at flytte fra ét kontrolelement til et andet, udføres TastNed-hændelsen for det første kontrolelement, hvorimod hændelserne Tastetryk og TastOp udføres for det andet kontrolelement. Hvis du f.eks. ændrer data i et kontrolelement og derefter trykker på Tab for at gå til næste kontrolelement, udføres følgende hændelsessekvens:
- Første kontrolelement:
TastNed-pil

Afslut-pil
FokusVæk - Andet kontrolelement:
Enter-pil
FikFokus-piletastTryk
piletastenOp
Musehændelser
Når du klikker på og slipper en museknap, mens musemarkøren er på et kontrolelement i en formular, udføres følgende sekvens af hændelser for kontrolelementet:
MusNed-pil
MusPil op
Klik
Hvis et kontrolelement er i fokus, og du klikker på et andet kontrolelement for at flytte fokus til dette andet kontrolelement, udføres følgende hændelsessekvens:
- Første kontrolelement:
Afslut
FokusVæk - Andet kontrolelement:
Indtast
FikFokuspil
Pil ned
musOp
Klik på
Hvis du flytter til en anden post og derefter klikker på et kontrolelement, udføres hændelsen Aktuel også for formularen før hændelsen Enter for kontrolelementet.
Når du dobbeltklikker på et kontrolelement, medfører det , at hændelserne Klik og DblKlik udføres. Når du f.eks. dobbeltklikker på et andet kontrolelement end en kommandoknap, udføres følgende hændelsessekvens for kontrolelementet:
Pil ned
ned Pil op
Klik på
DblKlik
MusOp
Når du dobbeltklikker på en kommandoknap, udføres den forrige rækkefølge af hændelser efterfulgt af en anden Klik-hændelse.
Hændelsen MusFlyttet for en formular, en sektion eller et kontrolelement udføres, når du flytter musemarkøren over formularen, sektionen eller kontrolelementet. Denne hændelse er uafhængig af de andre musehændelser.
Rækkefølgen af hændelser for rapporter og rapportsektioner
Hændelser, der sker for rapporter og rapportsektioner, når du åbner en rapport for at udskrive eller vise udskrift af den eller lukke en rapport.
Hændelser for rapporter
Når du åbner en rapport for at udskrive den eller vise udskrift for den og så senere lukker rapporten eller flytter til en anden objektfane i Access, udføres følgende hændelsessekvens for rapporten:
Åben
Indlæsningspil
Luk
Deaktiver
Når du skifter mellem to åbne rapporter, udføres hændelsen Deaktiver for den første rapport, og hændelsen Aktivér for den anden rapport:
Pilen Deaktiver (rapport1
) Aktivere (rapport2)
Hændelsen Deaktiver for en rapport udføres også, når du skifter fra rapporten til en anden objektfane i Access. Dog udføres hændelsen Deaktiver ikke, når du skifter til en dialogboks, til en formular, hvis egenskab PopOp er indstillet til Ja, eller til et vindue i et andet program.
Når du åbner en rapport, der er baseret på en forespørgsel, udløser Access hændelsen Åbn for rapporten, før den kører den underliggende forespørgsel. Resultatet er, at du kan angive kriterierne for rapporten ved at bruge en makro- eller hændelsesprocedure, der reagerer på hændelsen Åbn . Makro- og hændelsesproceduren kan f.eks. åbne en brugerdefineret dialogboks, hvori du indtaster rapportkriterier.
Hændelser for rapportsektioner
Når du udskriver eller får vist udskrift for en rapport, udføres hændelserne Formatér og Udskriv for rapportsektionerne efter hændelserne Åbn og Aktivér for rapporten og før rapportens hændelser Luk eller Deaktiver:
Åbn (rapport)
Indlæs (rapport)
Aktivér (rapport)
Formatér (rapportsektion)
Udskriv (rapportsektion)
Luk (rapport)
Deaktiver (rapport)
Sikkerhed Du kan bruge Rapportvisning til at aktivere brugerfiltrering af rapporter. Men i modsætning til Vis udskrift sker hændelserne Formatér og Udskriv i en sektion ikke i Rapportvisning. Det gælder også VBA-funktionsresultater og brugerdefinerede procedurer, der vises i kontrolelementer (f.eks. titeltekst, visningsstatus, betinget formatering, tilpasning af kontrolelementer osv.) inden for disse hændelser. Derfor skal du ikke bruge kode til at formatere, skjule eller udskrive fortrolige data, som kan blive vist. Vi anbefaler, at du forfiltrerer dataene eller deaktiverer rapportvisning ved at angive egenskaben AllowReportView til Nej.
Desuden kan følgende hændelser forekomme under eller efter formatering, men før hændelsen Udskriv:
- Hændelsen Tilbagerykning udføres, når Access returnerer til en tidligere sektion under rapportformatering.
- Hændelsen IngenData udføres, hvis der ikke vises nogen poster i rapporten.
- Hændelsen Side udføres efter formatering, men før udskrivning. Du kan bruge denne hændelse til at tilpasse udseendet af den udskrevne rapport.