DoEvents, fonction

S’applique à
Access pour Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Remarque

La fonction, la méthode, l’objet ou la propriété décrits dans cette rubrique est désactivé si le service d’expression Microsoft Jet s’exécute en mode bac à sable, ce qui empêche l’évaluation d’expressions potentiellement dangereuses. Pour plus d’informations sur le mode bac à sable, recherchez « mode bac à sable » dans l’aide.

Génère l’exécution afin que le système d’exploitation puisse traiter d’autres événements.

Syntaxe

DoEvents( )

Remarques

La fonction DoEvents renvoie un nombre entier représentant le nombre de formulaires ouverts dans les versions autonomes de Microsoft Visual Basic, telles que Visual Basic, Professional Edition. DoEvents renvoie zéro dans toutes les autres applications.

DoEvents passe le contrôle au système d’exploitation. Le contrôle est renvoyé une fois que le système d’exploitation a terminé de traiter les événements de sa file d’attente et que toutes les clés de la file d’attente SendKeys ont été envoyées.

DoEvents est particulièrement utile pour des choses simples comme permettre à un utilisateur d’annuler un processus après son démarrage, par exemple une recherche de fichier. Pour les processus de longue durée, il est préférable de céder au processeur en utilisant un minuteur ou en déléguant la tâche à un composant ActiveX EXE. Dans ce dernier cas, la tâche peut se poursuivre de manière totalement indépendante de votre application, et le système d’exploitation s’occupe du multitâche et du découpage du temps.

Chaque fois que vous cédez temporairement au processeur dans une procédure événementielle, assurez-vous que la procédure n’est pas réexécutée à partir d’une autre partie de votre code avant le retour du premier appel ; Cela peut entraîner des résultats imprévisibles. De plus, n’utilisez pas DoEvents si d’autres applications pourraient interagir avec votre procédure de manière imprévue pendant le temps où vous avez cédé le contrôle.

Exemple

Remarque

Les exemples suivants illustrent l’utilisation de cette fonction dans un module Visual Basic pour Applications (VBA). Pour plus d’informations sur l’utilisation de VBA, sélectionnez Référence développeur dans la liste déroulante en regard de Rechercher , puis entrez un ou plusieurs termes dans la zone de recherche.

Cet exemple utilise la fonction DoEvents pour que l’exécution cède au système d’exploitation une fois toutes les 1000 itérations de la boucle. DoEvents renvoie le nombre de formulaires Visual Basic ouverts, mais uniquement lorsque l’application hôte est 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.