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
- Traitement de texte - Guide
- Reconsidérer le traitement de vos informations à des fins publicitaires - Accueil - Réseaux sociaux
- Traitement de texte gratuit - Guide
- Iptv erreur de lecture - Forum TV & Vidéo
- Erreur s3 bbox - Forum Bbox Bouygues
5 réponses
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.