Traitement d'erreur
Jacques
-
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
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
A voir également:
- Traitement d'erreur
- Reconsidérer le traitement de vos informations à des fins publicitaires - Accueil - Réseaux sociaux
- Traitement de texte gratuit - Guide
- Ce logiciel gratuit et léger est parfait pour remplacer Word, même sur un vieux PC - Guide
- Une erreur s'est produite instagram ✓ - Forum Instagram
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
5 réponses
t as essaye le pas a pas pour voir si au moment ou l'erreur se produit, il rentre bien dans ta boucle ERREUR ?
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 ????
l erreur se produit bien dans CETTE procedure, pas dans une autre, tu es sur ????
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......
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...
donc j en deduis que ca doit etre klkpart ds les points de suspension... c bete... ca m aide po trop...
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
.....
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Dans une exécution pas à pas, le code d'erreur ne rentre pas en action.