Функция DoEvents

Отнася се за
Access за Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Забележка

Функцията, методът, обектът или свойството, описани в тази тема, са забранени, ако услугата за изрази Microsoft Jet се изпълнява в ограничителен режим, което пречи на изчисляването на потенциално опасни изрази. За повече информация относно ограничителния режим потърсете "ограничителен режим" в помощта.

Предоставя изпълнение, така че операционната система да може да обработва други събития.

Синтаксис

DoEvents( )

Забележки

Функцията DoEvents връща цяло число, представляващо броя на отворените формуляри в самостоятелни версии на Microsoft Visual Basic, като например Visual Basic, Professional Edition. DoEvents връща нула във всички други приложения.

DoEvents предава управлението на операционната система. Контролата се връща, след като операционната система приключи с обработката на събитията в опашката си и всички ключове в опашката за изпращане на ключове са изпратени.

DoEvents е най-полезен за прости неща, като например позволяване на потребител да отмени процес, след като е стартиран, например търсене на файл. При продължителни процеси отстъпването пред процесора се извършва по-добре чрез използване на таймер или делегиране на задачата на компонент ActiveX EXE. В последния случай задачата може да продължи напълно независимо от вашето приложение, а операционната система се грижи за многозадачността и нарязването на времето.

Всеки път, когато временно отстъпвате на процесора в процедура за събитие, се уверете, че процедурата не се изпълнява отново от друга част на кода ви преди връщането на първото повикване; Това може да доведе до непредсказуеми резултати. Освен това не използвайте DoEvents , ако други приложения биха могли да взаимодействат с вашата процедура по непредвидени начини през времето, през което сте отстъпили управлението.

Пример

Забележка

Примерите по-долу илюстрират използването на тази функция във Visual Basic for Applications (VBA). За повече информация относно работата с VBA изберете Справочни материали за разработчици в падащия списък до Търсене и въведете един или няколко термина в полето за търсене.

Този пример използва функцията DoEvents , за да накара изпълнението да отстъпва пред операционната система веднъж на всеки 1000 итерации от цикъла. DoEvents връща броя на отворените формуляри на Visual Basic, но само когато хост приложението е 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.