DoEvents, funksjon

Gjelder for
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Obs!

Funksjonen, metoden, objektet eller egenskapen som er beskrevet i dette emnet, er deaktivert hvis Microsoft Jet Expression-tjenesten kjører i sandkassemodus, noe som forhindrer evaluering av potensielt usikre uttrykk. Hvis du vil ha mer informasjon om sandkassemodus, kan du søke etter «sandkassemodus» i hjelpen.

Gir kjøring slik at operativsystemet kan behandle andre hendelser.

Syntaks

DoEvents( )

Merknader

DoEvents-funksjonen returnerer et heltall som representerer antall åpne skjemaer i frittstående versjoner av Microsoft Visual Basic, for eksempel Visual Basic, Professional Edition. DoEvents returnerer null i alle andre programmer.

DoEvents overfører kontrollen til operativsystemet. Kontrollen returneres når operativsystemet har fullført behandling av hendelsene i køen og alle nøklene i SendKeys-køen er sendt.

DoEvents er mest nyttig for enkle ting som å la en bruker avbryte en prosess etter at den har startet, for eksempel et søk etter en fil. I langvarige prosesser oppnås det bedre å gi etter for prosessoren ved å bruke en tidtaker eller delegere oppgaven til en ActiveX EXE-komponent. I sistnevnte tilfelle kan oppgaven fortsette helt uavhengig av applikasjonen din, og operativsystemet tar seg av multitasking og tidsskjæring.

Hver gang du midlertidig gir etter for prosessoren i en hendelsesprosedyre, må du kontrollere at prosedyren ikke utføres på nytt fra en annen del av koden før det første kallet returnerer. Dette kan føre til uforutsette resultater. I tillegg må du ikke bruke DoEvents hvis andre applikasjoner muligens kan samhandle med prosedyren din på uforutsette måter i løpet av tiden du har gitt kontroll.

Eksempel

Obs!

I eksemplene nedenfor vises bruken av denne funksjonen i en VBA-modul (Visual Basic for Applications). Hvis du vil ha mer informasjon om hvordan du arbeider med VBA, velger du Utviklerreferanse fra rullegardinlisten ved siden av Søk og skriver inn ett eller flere søkeord i søkeboksen.

Dette eksemplet bruker DoEvents-funksjonen til å forårsake at kjøringen gir etter til operativsystemet én gang hver 1000. gjentakelse av løkken. DoEvents returnerer antall åpne Visual Basic-skjemaer, men bare når vertsprogrammet er Visual Basic.

' Create a variable to hold number of 
' Visual Basic forms loaded and visible.
Dim I, OpenForms
For I = 1 To 150000    ' Start loop.
    If I Mod 1000 = 0 Then  ' If loop has repeated
                            ' 1000 times.
        OpenForms = DoEvents  ' Yield to operating system.
    End If
Next I    ' Increment loop counter.