Função DoEvents

Aplica-se a
Access para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Observação

A função, o método, o objeto ou a propriedade descrita neste tópico será desabilitada se o Serviço de Expressão do Microsoft Jet estiver em execução no modo de área restrita, o que impede a avaliação de expressões potencialmente inseguras. Para obter mais informações sobre o modo sandbox, pesquise "modo sandbox" na Ajuda.

Produz a execução para que o sistema operacional possa processar outros eventos.

Sintaxe

DoEvents( )

Comentários

A função DoEvents retorna um Integer que representa o número de formulários abertos em versões independentes do Microsoft Visual Basic, como Visual Basic, Professional Edition. DoEvents retorna zero em todos os outros aplicativos.

DoEvents passa o controle para o sistema operacional. O controle é retornado depois que o sistema operacional termina de processar os eventos em sua fila e todas as chaves na fila SendKeys são enviadas.

DoEvents é mais útil para coisas simples, como permitir que um usuário cancele um processo depois de iniciado, por exemplo, uma pesquisa de um arquivo. Para processos de longa duração, ceder ao processador é melhor realizado usando um temporizador ou delegando a tarefa a um componente ActiveX EXE. Neste último caso, a tarefa pode continuar completamente independente do seu aplicativo, e o sistema operacional cuida da multitarefa e da divisão de tempo.

Sempre que você ceder temporariamente ao processador dentro de um procedimento de evento, certifique-se de que o procedimento não seja executado novamente de uma parte diferente do código antes que a primeira chamada retorne; Isso pode causar resultados imprevisíveis. Além disso, não use DoEvents se outros aplicativos puderem interagir com seu procedimento de maneiras imprevistas durante o tempo em que você cedeu o controle.

Exemplo

Observação

Os exemplos a seguir demonstram o uso dessa função em um módulo do Visual Basic for Applications (VBA). Para obter mais informações sobre como trabalhar com o VBA, selecione Referência do desenvolvedor na lista suspensa ao lado de Pesquisar e insira um ou mais termos na caixa de pesquisa.

Este exemplo usa a função DoEvents para fazer com que a execução ceda ao sistema operacional uma vez a cada 1000 iterações do loop. DoEvents retorna o número de formulários do Visual Basic abertos, mas somente quando o aplicativo host é 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.