Hendelsesrekkefølgen for databaseobjekter

Viktig: Denne artikkelen er maskinoversatt, se ansvarsfraskrivelsen. Du finner den engelske versjonen av artikkelen her som referanse.

En enkelt handling, for eksempel å flytte fra en kontroll på et objekt til en annen kontroll, kan utløse flere forskjellige hendelser som forekommer i en bestemt rekkefølge. Å vite når hendelser oppstår og i hvilken rekkefølge de forekommer i, er viktig fordi det kan påvirke hvordan og når makroene eller hendelsesprosedyrene kjører. Hvis det for eksempel er to hendelsesprosedyrer som skal kjøres i en bestemt rekkefølge, bør du forsikre deg om at hendelsene de er knyttet til, forekommer i samme rekkefølge.

I denne artikkelen

Rekkefølgen på hendelser for kontroller på skjemaer

Rekkefølgen på hendelser for poster på skjemaer

Rekkefølgen på hendelser for skjemaer og delskjemaer

Rekkefølgen på hendelser for tastetrykk og museklikk

Rekkefølgen på hendelser for rapporter og rapportinndelinger

Rekkefølgen på hendelser for kontroller på skjemaer

Hendelser forekommer for kontroller på skjemaer når du flytter fokus til en kontroll, og når du endrer og oppdaterer data i en kontroll.

Merknad: Microsoft Office Access viser hendelsesnavn litt annerledes i Visual Basic Editor enn det den gjør i egenskapsarket og i Makroverktøyet. For eksempel, hendelsen som heter Ved fått fokus i skjemaets eiendomsark og i Macro Builder heter GotFocus i Visual Basic Editor. Eksemplene i denne artikkelen bruker Visual Basic for Applications (VBA)-format for hendelsesnavn.

Slik flytter du fokus til en kontroll

Når du flytter fokus til en kontroll i et skjema (for eksempel ved å åpne et skjema som inneholder én eller flere aktive kontroller, eller ved å flytte fokus til en annen kontroll på det samme skjemaet), forekommer Enter- og GotFocus-hendelser i denne rekkefølgen:

Enter pil GotFocus

Når du åpner et skjema, så forekommer Enter- og GotFocus-hendelser etter hendelsene som er knyttet til åpning av skjemaet (for eksempel Open, Activate og Current), som følger:

Open (skjema) pil Activate (skjema) pil Current (skjema) pil Enter (kontroll) pil GotFocus (kontroll)

Når fokuset forlater et skjema (for eksempel når du lukker et skjema som inneholder en eller flere aktive kontroller, eller når du flytter til en annen kontroll på samme skjema), forekommer Exit- og LostFocus-hendelsene i denne rekkefølgen:

Exit pil LostFocus

Når du lukker et skjema, forekommer Exit- og LostFocus-hendelsene før hendelsene forbundet med å lukke skjemaet (for eksempel Unload, Deactivate og Close), som følger:

Exit (kontroll) pil LostFocus (kontroll) pil Unload (skjema) pil Deactivate (skjema) pil Close (skjema)

Endre og oppdatere data i en kontroll

Når du skriver inn eller endrer data i en kontroll på et skjema, og deretter flytter fokuset til en annen kontroll, forekommer BeforeUpdate- og AfterUpdate-hendelsene:

BeforeUpdate pil AfterUpdate

Exit- og LostFocus-hendelser for en kontroll når verdiendringer forekommer etter BeforeUpdate- og AfterUpdate-hendelser:

BeforeUpdate pil AfterUpdate pil Exit pil LostFocus

Når du endrer teksten i en tekstboks, eller i tekstboksdelen i en kombinasjonsboks, forekommer Change-hendelsen. Denne hendelsen forekommer når innholdet i kontrollen endres, men før du flytter fokus til en annen kontroll eller post (og derfor før BeforeUpdate- og AfterUpdate-hendelser forekommer). Følgende rekkefølge av hendelser forekommer for hver tast du trykker i en tekstboks eller i tekstboksdelen av en kombinasjonsboks:

KeyDown pil KeyPress pil Dirty pil Change pil KeyUp

NotInList-hendelsen forekommer hvis du angir en verdi i en kombinasjonsboks som ikke finnes i kombinasjonsbokslisten, og prøver deretter å flytte fokus til en annen kontroll eller post. NotInList-hendelsen forekommer etter tastaturhendelsene og Change-hendelser for kombinasjonsboksen, men før hendelsene for eventuelle andre kontroller eller skjemaet. Hvis LimitToList-egenskapen for kombinasjonsboksen er satt til Ja, forekommer Error-hendelsen for skjemaet umiddelbart etter NotInList-hendelsen:

KeyDown pil KeyPress pil Dirty pil Change pil KeyUp pil NotInList pil Error

Til toppen av siden

Rekkefølgen på hendelser for poster på skjemaer

Hendelser som forekommer for poster i skjemaer når du flytter fokus til en annen post, oppdaterer data i en post, sletter en eksisterende oppføring eller poster eller oppretter en ny post.

Flytte fokus til poster og oppdatere dataene i poster

Når du flytter fokus til en eksisterende oppføring i et skjema, skriver inn eller endrer data i posten, og deretter flytter fokus til en annen post, forekommer følgende rekkefølge av hendelser for skjemaet:

Current (skjema) pil BeforeUpdate (skjema) pil AfterUpdate (skjema) pil Current (skjema)

Når du forlater posten der dataene er endret, men før du skriver inn den neste posten, forekommer Exit- og LostFocus-hendelsene for kontrollen som har fokuset. Disse hendelser forekommer etter BeforeUpdate- og AfterUpdate-hendelser for skjemaet, som følger:

BeforeUpdate (skjema) pil AfterUpdate (skjema) pil Exit (kontroll) pil LostFocus (kontroll) pil RecordExit (skjema) pil Current (skjema)

Når du flytter fokus mellom kontrollene i et skjema, forekommer hendelser for hver kontroll. For eksempel forekommer følgende rekkefølge av hendelser når du gjør følgende:

  • Åpne et skjema, og endre data i en kontroll:

    Current (skjema) pil Enter (kontroll) pil GotFocus (kontroll) pil BeforeUpdate (kontroll) pil AfterUpdate (kontroll)

  • Flytter fokus til en annen kontroll:

    Exit (kontroll1) pil LostFocus (kontroll1) pil Enter (kontroll2) pil GotFocus (kontroll2)

  • Flytter fokus til en annen post:

    BeforeUpdate (skjema) pil AfterUpdate (skjema) pil Exit (kontroll2) pil LostFocus (kontroll2) pil RecordExit (skjema) pil Current (skjema)

Sletting av poster

Når du sletter en post, forekommer følgende hendelser for skjemaet, og Microsoft Office Access viser en dialogboks som ber deg om å bekrefte slettingen:

Delete pil BeforeDelConfirm pil AfterDelConfirm

Hvis du avbryter Delete-hendelsen, forekommer ikke BeforeDelConfirm- og AfterDelConfirm-hendelsene, og dialogboksen vises ikke.

Opprette en ny post

Når du flytter fokus til en ny (tom) post i et skjema, og deretter opprette en ny oppføring ved å skrive inn data i en kontroll, oppstår følgende rekkefølge av hendelser:

Current (skjema) pil Enter (kontroll) pil GotFocus (kontroll) pil BeforeInsert (skjema) pil AfterInsert (skjema)

BeforeUpdate- og AfterUpdate-hendelser for kontrollene i skjemaet, og for den nye posten, forekommer etter BeforeInsert-hendelsen, og før AfterInsert-hendelsen.

Til toppen av siden

Rekkefølgen på hendelser for skjemaer og delskjemaer

Hendelser forekommer for skjemaer når du åpner eller lukker et skjema, flytter mellom skjemaer eller arbeider med data i et skjema eller delskjema.

Åpne og lukke et skjema

Når du åpner et skjema, forekommer følgende rekkefølge av hendelser for skjemaet:

Open pil Load pil Resize pil Activate pil Current

Hvis det ikke finnes noen aktive kontroller på skjemaet, forekommer GotFocus-hendelsen for skjemaet etter Activate-hendelsen, men før Current-hendelsen.

Når du lukker et skjema, forekommer følgende rekkefølge av hendelser for skjemaet:

Unload pil Deactivate pil Close

Hvis det ikke finnes noen aktive kontroller på skjemaet, forekommer LostFocus-hendelsen for skjemaet etter Unload-hendelsen, men før Deactivate-hendelsen.

Flytting mellom skjemaer

Når du bytter mellom to åpne skjemaer, forekommer Deactivate-hendelsen for det første skjemaet, og Activate-hendelsen for det andre skjemaet:

Deactivate (skjema1) pil Activate (skjema2)

Deactivate-hendelsen for et skjema forekommer også når du bytter fra skjemaet til en annen objekt-fane i Access. Deactivate-hendelsen forekommer imidlertid ikke når du bytter til en dialogboks, til et skjema hvor PopUp-egenskapen er satt til Ja eller til et vindu i et annet program.

Merknad: Open-hendelsen forekommer ikke hvis du flytter fokus til et skjema som allerede er åpen, selv om du har flyttet fokuset til det samme skjemaet ved å utføre en OpenForm-handling.

Arbeide med data på et skjema

Skjema og kontroll hendelser forekommer når du flytter mellom poster i skjemaet, og endrer på data. Når du eksempelvis åpner et skjema, forekommer følgende rekkefølge av hendelser:

Open (skjema) pil Load (skjema) pil Resize (skjema) pil Activate (skjema) pil Current (skjema) pil Enter (kontroll) pil GotFocus (kontroll)

På samme måte som når du lukker et skjema, forekommer følgende rekkefølge av hendelser:

Exit (kontroll) pil LostFocus (kontroll) pil Unload (skjema) pil Deactivate (skjema) pil Close (skjema)

Hvis du har endret dataene i en kontroll, forekommer BeforeUpdate- og AfterUpdate-hendelsene for både kontrollen og skjemaet før Exit-hendelsen for kontrollen.

Arbeide med delskjemaer

Når du åpner et skjema som inneholder et delskjema, lastes delskjemaet og tilhørende poster før hovedskjemaet. Dermed forekommer hendelsene for delskjemaet og de tilhørende kontrollene (som for eksempel Open, Current, Enter, og GotFocus) før hendelsene for skjemaet. Activate-hendelsen forekommer imidlertid ikke for delskjema. Når du åpner et hovedskjema, forekommer derfor en Activate-hendelse bare for hovedskjemaet.

På samme måte som når du lukker et skjema som inneholder et delskjema, blir delskjemaet og oppføringene fjernet etter skjemaet. Deactivate-hendelsen forekommer ikke for delskjema. Når du lukker et hovedskjema, forekommer derfor en Deactivate-hendelse bare for hovedskjemaet. Hendelsene for kontrollene, skjemaet og delskjemaet forekommer i følgende rekkefølge:

  1. Hendelser for kontrollene til delskjema (for eksempel Exit og LostFocus)

  2. Hendelser for skjemakontroller (inkludert delskjemakontrollen)

  3. Hendelser for skjemaet (for eksempel Deactivate og Close)

  4. Hendelser for delskjemaet

Merknad:  Fordi hendelsene for et delskjema forekommer etter at hovedskjemaet er lukket, er det visse hendelser som ikke skjer, som for eksempel å avbryte lukkingen av hovedskjemaet fra en hendelse i delskjemaet. Du må kanskje flytte denne typen valideringstester til en hendelse på hovedskjemaet.

Til toppen av siden

Rekkefølgen på hendelser for tastetrykk og museklikk

Tastaturhendelser forekommer for skjemaer og kontroller når du trykker på tastene, eller sender tastetrykk når skjemaet eller kontrollen har fokus. Musehendelser forekommer for skjemaer, skjemainndelinger og kontroller på skjemaer når du klikker på museknappene mens musepekeren er i et skjema, en inndeling eller en kontroll. Musehendelser forekommer også når du flytter musepekeren over et skjema, en inndeling eller en kontroll.

Tastaturhendelser

Når du trykker på og slipper en tast mens en kontroll på et skjema har fokuset (eller bruker SendKeys-handlingen eller oversikt for å sende et tastetrykk), forekommer følgende rekkefølge av hendelser:

KeyDown pil KeyPress pil KeyUp

Når du trykker på og slipper en tast eller sender et tastetrykk til ANSI-tegnsett, forekommer alle KeyDown-, KeyPress-, og KeyUp-hendelsene. Hvis du trykker på og holder nede en ANSI-nøkkel, gjentar KeyDown- og KeyPress-hendelsene seg gjentatte ganger (KeyDown, KeyPress, KeyDown, KeyPress, og så videre) til du slipper nøkkelen, da forekommer KeyUp-hendelsen.

Hvis du trykker på og slipper en ikke-ANSI-nøkkel, forekommer KeyDown- og KeyUp-hendelsene. Hvis du trykker på og holder nede en ikke-ANSI-tast, forekommer KeyDown-hendelsen gjentatte ganger til du slipper nøkkelen, og deretter forekommer KeyUp-hendelsen.

Hvis et tastetrykk utløser en annen hendelse for en kontroll, forekommer hendelsen etter KeyPress-hendelsen, men før KeyUp-hendelsen. Hvis et tastetrykk for eksempel endrer tekst i en tekstboks, som utløser en Change-hendelse, forekommer følgende rekkefølge av hendelser:

KeyDown pil KeyPress pil Change pil KeyUp

Hvis et tastetrykk gjør at fokuset flyttes fra én kontroll til en annen kontroll, forekommer KeyDown-hendelsen for den første kontrollen, mens KeyPress og KeyUp-hendelsene forekommer for den andre kontrollen. Hvis du for eksempel endrer data i en kontroll og trykker på TAB-tasten for å flytte til neste kontroll, forekommer følgende sekvenser av hendelser:

  • Første kontroll:

    KeyDown pil BeforeUpdate pil AfterUpdate pil Exit pil LostFocus

  • Andre kontroll:

    Enter pil GotFocus pil KeyPress pil KeyUp

Musehendelser

Når du klikker på og slipper en museknapp mens musepekeren er på en kontroll på et skjema, forekommer følgende sekvens av hendelser for kontrollen:

MouseDown pil MouseUp pil Click

Hvis en kontroll har fokuset, og du klikker på en annen kontroll for å flytte fokuset til denne andre kontrollen, forekommer følgende sekvenser av hendelser:

  • Første kontroll:

    Exit pil LostFocus

  • Andre kontroll:

    Enter pil GotFocus pil MouseDown pil MouseUp pil Click

Hvis du flytter til en annen post og deretter klikker på en kontroll, forekommer Current-hendelsen for skjemaet før Enter-hendelsen for kontrollen.

Ved å dobbeltklikke på en kontroll, forekommer både Click- og DblClick-hendelsene. Hvis du for eksempel dobbeltklikker på en annen kontroll enn en kommandoknapp, forekommer følgende sekvens av hendelser for kontrollen:

Mouse Down pil MouseUp pil Click pil DblClick pil MouseUp

Når du dobbeltklikker på en kommandoknapp, forekommer den foregående sekvensen av hendelser, etterfulgt av en ny Click-hendelse.

MouseMove-hendelsen for en form, inndeling eller kontroll forekommer når du beveger musepekeren over skjemaet, inndelingen eller kontrollen. Denne hendelsen er uavhengig av andre musehendelser.

Til toppen av siden

Rekkefølgen på hendelser for rapporter og rapportinndelinger

Hendelser forekommer for rapporter og rapportinndelinger når du åpner en rapport for å forhåndsvise den, eller for å skrive den ut. Hendelser skjer også når du deretter lukker den.

Hendelser for rapporter

Når du åpner en rapport for å skrive ut eller for å forhåndsvise, og deretter lukker rapporten eller flytter til en annen objektfane i Access, forekommer følgende hendelsesrekkefølge for rapporten:

Open pil Activate pil Close pil Deactivate

Når du bytter mellom to åpne rapporter, forekommer Deactivate-hendelsen for det første skjemaet og Activate-hendelsen for det andre skjemaet:

Deactivate (rapport1) pil Activate (rapport2)

Deactivate-hendelsen for en rapport forekommer også når du bytter fra skjemaet til en annen objekt-fane i Access. Deactivate-hendelsen forekommer imidlertid ikke når du bytter til en dialogboks, til et skjema hvor PopUp-egenskapen er satt til Ja eller til et vindu i et annet program.

Når du åpner en rapport som er basert på en spørring, utløser Access Open-hendelsen for rapporten før den kjører den underliggende spørringen. Som et resultat kan du angi kriteriene for rapporten ved hjelp av en makro- eller hendelsesprosedyre som reagerer på Open-hendelsen. For eksempel kan makro- eller hendelsesprosedyren åpne en egendefinert dialogboks der du angir rapportkriterier.

Hendelser for rapportinndelinger

Når du skriver ut eller forhåndsviser en rapport, forekommer Format- og Print-hendelsene for rapporten etter Open- og Activate-hendelser, og før rapportens Close- eller Deactivate-hendelser:

Open (rapport) pil Activate (rapport) pil Format (rapportinndeling) pil Print (rapportinndeling) pil Close (rapport) pil Deactivate (rapport)

I tillegg kan følgende hendelser forekommer under eller etter formatering, men før Print-hendelsen:

  • Retreat-hendelsen forekommer når Access vender tilbake til en tidligere inndeling under rapportformatering.

  • NoData-hendelsen forekommer hvis det ikke vises noen poster i rapporten.

  • Page-hendelsen forekommer etter formatering, men før utskrift. Du kan bruke denne hendelsen til å tilpasse utseendet på den trykte rapporten.

Til toppen av siden

Merknad: Ansvarsfraskrivelse for maskinoversettelse: Denne artikkelen er oversatt av et datasystem i stedet for en oversetter. Microsoft tilbyr disse maskinoversettelsene slik at brukere som ikke snakker engelsk, får tilgang til innhold om Microsoft-produkter, -tjenester og –teknologier. Ettersom artikkelen er maskinoversatt, kan den inneholde feil i vokabular, syntaks eller grammatikk.

Utvid ferdighetene dine
Utforsk opplæring
Vær først ute med de nye funksjonene
Bli med i Office Insiders

Var denne informasjonen nyttig?

Takk for tilbakemeldingen!

Takk for tilbakemeldingen! Det høres ut som det kan være lurt å sette deg i kontakt med én av våre Office-kundestøtteagenter.

×