Applies ToAccess til Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

En enkelt handling, f.eks. at flytte fra én kontrolelement på et objekt til et andet kontrolelement, kan udløse flere forskellige hændelser, der forekommer i en bestemt sekvens. Det er vigtigt at vide, hvornår hændelser indtræffer, og i hvilken rækkefølge de forekommer, fordi det kan påvirke, hvordan og hvornår dine makroer eller hændelsesprocedurer køres. Hvis der f.eks. er to hændelsesprocedurer, der skal køres i en bestemt rækkefølge, skal du sikre dig, at de hændelser, de er knyttet til, sker i samme rækkefølge.

Denne artikel indeholder

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:

Angiv 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:

Åbn (formular) pilAktivér (formular) pilAktuel (formular) pilEnter (kontrolelement) pilFikFokus (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 pil 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) pilFokusvæk (kontrolelement) pilFjern (formular) pilDeaktiver (formular) pilLuk (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:

BeforeUpdate pil Afte rUpdate

Hændelserne Afslut og FokusVæk for et kontrolelement, hvis værdiændringer sker efter hændelserne FørOpdatering og EfterOpdatering:

FørOpdatering pil EfterOpdatering pil Afslut pil 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:

Tastetryk pil#x2 tastned pilsnavset pilskift piltast

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 indstillet til Ja, udføres hændelsen Fejl umiddelbart efter hændelsen IkkePåListe:

KeyDown pil KeyPress pil Dirty pil Change pil KeyUp pil NotInList 0 error

Toppen af siden

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:

Aktuel (formular) pilFørOpdatering (formular) pilEfterOpdatering (formular) pilAktuel (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:

FørOpdatering (formular) pilEfterOpdatering (formular) pilAfslut (kontrolelement) pilFokusvæk (kontrolelement) pilAktuel (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) pilEnter (kontrolelement) pilFikFokus (kontrolelement) pilFørOpdatering (kontrolelement) pilEfterOpdatering (kontrolelement)

  • Flytter fokus til et andet kontrolelement:

    Afslut (kontrolelement1) pilFokusVæk (kontrolelement1) pilEnter (kontrolelement2) pilFikFokus (kontrolelement2)

  • Flytter fokus til en anden post:

    FørOpdatering (formular) pilEfterOpdatering (formular) pilAfslut (kontrolelement2) pilLostFokus (kontrolelement2) pilAktuel (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:

Slet pil BeforeDelConfirm pil AfterDelConfirm

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) pilEnter (kontrolelement) pilFikFokus (kontrolelement) pilFørIndsættelse (formular) pilEfterIndsæ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 har forladt 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.

Toppen af siden

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:

Åbn pil Indlæs pil Tilpas størrelse pil Aktivér pil 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:

Fjern pil Deaktiver pil Luk

Hvis der ikke er nogen aktive kontrolelementer i formularen, udføres hændelsen FokusTabt 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:

Deaktiver (formular1) pilAktivé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) pilIndlæs (formular) pilTilpas størrelse (formular) pilAktivér (formular) pilAktuel (formular) pilEnter (kontrolelement)0 FikFokus (kontrolelement)

På samme måde udføres følgende sekvens af hændelser, når du lukker en formular:

Afslut (kontrolelement) pilLostFocus (kontrolelement) pilFjern (formular) pilDeaktiver (formular) pilLuk (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. Hændelserne for underformularen og dens kontrolelementer (f.eks. Åbn, Aktuel, Enter og FikFokus) udføres således før hændelserne for formularen. Hændelsen Aktivér udføres dog ikke for underformularer. Derfor udløser åbning af en hovedformular kun en Aktivér-hæ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:

  1. Hændelser for underformularens kontrolelementer (f.eks. Afslut og FokusVæk)

  2. Hændelser for formularens kontrolelementer (herunder underformularkontrolelementet)

  3. Hændelser for formularen (f.eks. Deaktiver og Luk)

  4. Hændelser for underformularen

Bemærk!: Da hændelserne for en underformular sker, når hovedformularen er lukket, vil visse hændelser, f.eks. annullering af lukningen af hovedformularen fra en hændelse i underformularen, ikke forekomme. Det kan være nødvendigt at flytte disse typer valideringstest til en hændelse i hovedformularen.

Toppen af siden

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 har 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 SendTaster eller erklæring til at sende et tastetryk), udføres følgende hændelsessekvens:

Tasten Ned pil tastetryk pil tastOp

Når du trykker på og slipper en tast eller sender et tastetryk i ANSI-tegnsæt, udføres alle hændelserne TastNed, Tastetryk og TastOp . Hvis du trykker på og holder en ANSI-tast nede, skifter hændelserne TastNed og Tastetryk gentagne gange (TastNed, Tastetryk, TastNed, Tastetryk osv.), indtil du slipper tasten. udføres hændelsen TastOp .

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 et 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, som udløser en Ændring-hændelse , udføres følgende hændelsessekvens:

KeyDown pil Tastetryk pil Skift pil-tast

Hvis et tastetryk får fokus til at flytte fra ét kontrolelement til et andet kontrolelement, udføres hændelsen TastNed for det første kontrolelement, mens 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 det næste kontrolelement, udføres følgende hændelsessekvenser:

  • Første kontrolelement:

    KeyDown pil BeforeUpdate pil AfterUpdate pil Exit pil LostFocus

  • Andet kontrolelement:

    Enter pil GotFocus pil KeyPress pil KeyUp

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:

MouseDown pil MouseUp pil 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 pil Fokusvæk

  • Andet kontrolelement:

    Enter pil GotFocus pil MouseDown pil MouseUp pil Klik

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.

Hvis du dobbeltklikker på et kontrolelement, udføres både klik - og DblClick-hændelserne . Når du f.eks. dobbeltklikker på et andet kontrolelement end en kommandoknap, udføres følgende hændelsessekvens for kontrolelementet:

MouseD ejer pil MouseUp pil Klik pil DblKlik pil MouseUp

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.

Toppen af siden

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:

Åbn pil Aktivér pil Luk pil 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:

Deaktiver (rapport1) pilAktivér (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. Derfor kan du angive kriterierne for rapporten ved hjælp af en makro eller hændelsesprocedure, der reagerer på hændelsen Åbn . Makroen eller hændelsesproceduren kan f.eks. åbne en brugerdefineret dialogboks, hvor du kan angive 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) pilAktivér (rapport) pilFormatér (rapportsektion) pilUdskriv (rapportsektion) pilLuk (rapport) pilDeaktiver (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 ikke i rapportvisning. Dette gælder også for VBA-funktionsresultater og brugerdefinerede procedurer, der vises i kontrolelementer (f.eks. navnetekster, visningsstatus, betinget formatering, tilpasning af størrelsen på kontrolelementer osv.) inden for disse hændelser. Brug derfor ikke kode i denne hændelse til at formatere, skjule eller udskrive fortrolige data, som kan blive vist. Vi anbefaler, at du filtrerer dataene på forhånd 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.

Toppen af siden

Har du brug for mere hjælp?

Vil du have flere indstillinger?

Udforsk abonnementsfordele, gennemse kurser, få mere at vide om, hvordan du sikrer din enhed og meget mere.

Communities hjælper dig med at stille og besvare spørgsmål, give feedback og høre fra eksperter med omfattende viden.