Função DoEvents

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

Nota

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

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

Sintaxe

DoEvents( )

Observações

A função DoEvents retorna um Integer que representa o número de formulários abertos em versões autônomas 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 foram enviadas.

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

Sempre que ceder temporariamente ao processador dentro de um procedimento de evento, certifique-se de que o procedimento não é executado novamente a partir de uma parte diferente do seu código antes que a primeira chamada retorne; Isto pode causar resultados imprevisíveis. Além disso, não utilize DoEvents se outras aplicações puderem interagir com o seu procedimento de formas imprevistas durante o tempo em que cedeu o controlo.

Exemplo

Nota

Os exemplos seguintes demonstram a utilização desta função no módulo VBA (Visual Basic for Applications). Para obter mais informações sobre como trabalhar com o VBA, selecione Referência para Programadores na lista pendente junto a Procurar e introduza 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 abertos do Visual Basic, 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.