Attendre la fin d'une action
Bonjour,
A la suite d'une mise à jour entre 2 tables, je donne l'ordre de fermer le formulaire. Malgré des DoEvents et des boucles, il n'attend apparemment pas la fin des traitements pour exécuter l'ordre de fermeture.
Est ce que quelqu'un pourrait m'aider svp ?
Merci !!!
voici un bout de mon code (qui ne doit pas être très professionnel, mais qui fonctionne... presque jusqu'au bout)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
MAJ = "UPDATE FacturationPourPointage INNER JOIN PointageAdh ON ..."
MAJ2 = "UPDATE FacturationPourPointage INNER JOIN PointageAdh ON ..."
Confirm = MsgBox("Vous allez valider la saisie d'un règlement pour " & Total & " €. Confirmez-vous la saisie ? ", 291, " Demande de confirmation ")
Select Case Confirm
Case 6
DoCmd.RunSQL MAJ
DoCmd.RunSQL MAJ2
MsgBox " Règlement validé "
DoEvents
On Error GoTo Err_Validation_Enter
Case 7
MsgBox " Corrigez votre saisie "
Exit Sub
Case 8
MsgBox " Saisie annulée "
End Select
DoEvents
For i = 1 To 1000000000
Next
DoCmd.Close |
Re: Attendre la fin d'une action
Bonjour,
A la place de DoCmd, je te propose d'utiliser plutôt l'objet CurrentDB qui bloque Access jusqu'à la fin de l'exécution d'une de ses méthodes. Le DoEvents devient donc inutile.
Citation:
CurrentDB.Execute MAJ
CurrentDB.Execute MAJ2
MsgBox " Règlement validé "
Cerise sur le gâteau, tu peux même récupérer le nombre d'enregistrements concernés par l'exécution d'une requête de "type action" (cf. CurrentDB.RecordsAffected).