Traitement d'erreur

Jacques -  
 Jacques -
Bonjour
J'ai une erreur d'exécution 3426 ou 3058 (selon les cas) qui se produit et ne semble pas répondre à un traitement d'erreur, malgré un On Error GoTo ERREUR en tête de la procédure. l'erreur se produit su la ligbe de code .Validate, et il me semble que le Resume Next devrait afficher le message d'erreur, puis permettre au code de continuer à la ligne suivante? Qu'est-ce que j'ai loupé?

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
'Détecte le bouton de commande utilisé
On Error GoTo ERREUR
Static vMyBookMark As Variant 'pour attribuer un signet à
l'enregistrement courant
Select Case Button.Key 'Valeur du bouton de commande sur lequel
l'utilisateur a cliqué
.....
Case "btnValider"
Dim bMoveLast As Boolean
With ctrlDataEC.Recordset
If (.EditMode <> dbEditNone) Then
If .EditMode = dbEditAdd Then
If (TypeOf Screen.ActiveControl Is DBGrid) Then
ctrlData2.Recordset!PubID = ctrlData1.Recordset!PubID
DBGrid1.Columns(4) = ctrlData2.Recordset!PubID
End If
bMoveLast = True
Else
bMoveLast = False
End If
.Update
If (.EditMode = dbEditNone) Then
'L'ajout ou l'édition se sont effectués correctement
If (bMoveLast = True) Then
.MoveLast
lgTotalRecordsEC = .RecordCount
Compter_Enregistrements
Else
.Move 0
End If
updateButtons True
End If
Else
.Move 0
End If
End With
.....
End Select
Exit Sub
ERREUR:
MsgBox ("Erreur n° " & Err.Number & " - Description " & _
Err.Description & " - Source " & Err.Source)
Resume Next
End Sub

5 réponses

samounet Messages postés 99 Statut Membre
 
t as essaye le pas a pas pour voir si au moment ou l'erreur se produit, il rentre bien dans ta boucle ERREUR ?
0
Jacques
 
Merci de ta réponse
Dans une exécution pas à pas, le code d'erreur ne rentre pas en action.
0
samounet Messages postés 99 Statut Membre
 
tu veux dire qu'il ne saute pas dans ta boucle d erreur ???
l erreur se produit bien dans CETTE procedure, pas dans une autre, tu es sur ????
0
Jacques
 
Oui, autant que je puisse l'être. J'ai mis un point d'arrêt au début de la procédure, puis j'ai exécuté ligne à ligne avec F8. L'erreur se produit sur l'instruction .Validate, sans qu'aucune autre procédure n'ait été appelée, mais la boucle d'erreur n'est pas exécutée.
0
samounet Messages postés 99 Statut Membre
 
euh tu veux po mettre le bout de code ou tu as la fameuse instruction .validate ? parce que je la trouve pas dans le bout de code que tu as envoye la......
0
Jacques
 
Le code est dans mon message initial. La ligne de commande .Validate y est à peu près au milieu...
Cordialement
0
samounet Messages postés 99 Statut Membre
 
a peu pres au milieu... mhhh mhhh... la ou il y a les points de suspension c ca ????? je veux bien qu on dise que je suis bigleux, mais ce qui m etonne quand meme, c ke kan je fais un recherche sur .validate dans la page, je retrouve toutes les fois où on l a mentionne... mais pas une seule fois dans le code....
donc j en deduis que ca doit etre klkpart ds les points de suspension... c bete... ca m aide po trop...
0
Jacques
 
Voià la pârtie du code précédant immédiatement la ligne de code en question. Je pense que tu pourras res-situer cette partie dans son ensemble dans le message initial.
.....
Case "btnValider"
Dim bMoveLast As Boolean
With ctrlDataEC.Recordset
If (.EditMode <> dbEditNone) Then
If .EditMode = dbEditAdd Then
If (TypeOf Screen.ActiveControl Is DBGrid) Then
ctrlData2.Recordset!PubID = ctrlData1.Recordset!PubID
DBGrid1.Columns(4) = ctrlData2.Recordset!PubID
End If
bMoveLast = True
Else
bMoveLast = False
End If
.Update
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
samounet Messages postés 99 Statut Membre
 
ahhhh tu voulais dire .update .... oki doki :o))))
0
Jacques
 
Yes. Excuses moi dui lapsus... Je suis vraiment pertubé!
0