Re,
On va essayer différement.
Dans la partie déclaration du module du formulaire, on définit une variable de portée du formulaire
Ensuite, dans l'événement Sur activation (qui se produit à l'ouverture du formulaire et à chaque changement d'enregistrement, on met systématiquement cette variable à faux).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Option Compare Database Option Explicit Dim blnFermeture As Boolean
Dans l'événement Sur erreur, on complète le test avec l'erreur 2169, c'est celle qui se produit lors de la fermeture du formulaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub Form_Current() blnFermeture = False End Sub
Et dans l'événement Sur libération, on annule la fermeture si la variable est à vrai.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Select Case DataErr Case 3314 'Erreur MsgBox "Message..." 'Continue sans afficher l'erreur standard Response = acDataErrContinue Case 2169 'Erreur lors de la fermeture Response = acDataErrContinue 'Fermeture du formulaire. On passe la la variable à Vrai blnFermeture = True Case Else Response = acDataErrDisplay End Select
J'ai pas mieux...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Private Sub Form_Unload(Cancel As Integer) Cancel = blnFermeture blnFermeture = False End Sub
Domi2
Partager