Est-il équivalent à enfiler.Sleep() dans VBA
Est-il équivalent à Thread.Sleep()
dans Access VBA?
- C'est un Accès à la FAQ, et vous trouverez mvps.org/Access pour être une source importante pour les réponses aux questions les plus fréquentes.
Vous devez vous connecter pour publier un commentaire.
Utilisez la syntaxe suivante pour appeler la fonction de Veille:
Une autre façon sans l'aide de kernel32:
Quelques modifications sont nécessaires pour obtenir le code du travail.
Le code ci-dessous est la version corrigée.
Toutes les autres méthodes pour faire Excel attendre le résultat dans Excel devenir complètement insensible. La solution pour faire Excel attendre, tout en assurant un réactif de l'INTERFACE utilisateur est d'appeler cette attente Sous le nombre de secondes à attendre.
- Je l'utiliser dans Excel et il fonctionne très bien:
DateAdd() est une fonction définie une fois, par rapport à
Now()
(dans ce cas vous pouvez utiliser d'autres valeurs que votre argument),"s"
est la mesure de temps (secondes, dans ce cas), et l'incrément est 1. Donc, ici, l'appel de la fonction est de dire la demande d'attendre 1 seconde.Voir aussi pour plus de détails sur l'utilisation de l'option
DateAdd
de la fonction.Il est possible d'utiliser le fichier Excel Wait() procédure à partir de l'Access VBA.
La première étape est de s'assurer que le Excel bibliothèque est référencé à partir de votre projet.
Lorsque cela est fait, le code suivant fonctionne à attendre pendant dix secondes :
Si vous utilisez
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
, vous pouvez obtenir cette erreur dans un module objet.Si oui, vous pouvez la déclarer comme privé:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Ajoutant
en quelque sorte créé d'autres problèmes ailleurs dans mon code.
J'ai fini par utiliser cette fonction que j'ai trouvé sur un autre forum et tweeked un peu:
espère que cela aide 🙂