Trapper un msg d'erreur dans VBA

Trapper un msg d'erreur dans VBA - VB/VBA/VBS - Programmation

Marsh Posté le 17-10-2006 à 16:54:32    

Bonjour,
 
C'est  mon premier post ici donc si je ne respectai pas une regle merci de m'en faire la remarque.
 
Je bosse sous VBA et j'ai crée un formulaire associé a une table; je peux donc inserer et pour supprimer j'ai créé mon petit bouton qui vas bien.
la table est simple elle est composé de 3 champs avec les 2 premiers en clef primaire
Lorsque je tente d'inserer un doublon il me balance le message d'erreur "...doublon.."
et me replace sur le dernier champ. A ce moment si j'appuis sur supprimer il me demande confirmation, et me vire non pas la ligne en cours (celle qui n'as put etre inserer) mais la ligne "original".  
J'aimerai savoir comment trapper le message d'erreur "doublon" pour y associer du code.
 
Merci d'avance
Cédric

Reply

Marsh Posté le 17-10-2006 à 16:54:32   

Reply

Marsh Posté le 18-10-2006 à 01:36:49    

Fais un "On Error Resume Next", suivi d'un catch de l'erreur :
If err.Number<>0 Then
 MsgBox err.Number
End If
 
Reproduis le cas où tu as un doublon, et relève le numéro de l'erreur. Eventuellement, tu peux également relever le texte de l'erreur (err.Msg il me semble, ou un truc comme ça).
A partir de là, tu pourras traiter l'erreur :
 
On Error Resume Next
[code]
If err.Number = [Ton numéro d'erreur] Then
 [code relatif à l'erreur]
End If
 
Tu peux éventuellement ajouter une clause plus restrictive au test en ajoutant " And err.Msg=[Message d'erreur]


Message édité par agkklr le 18-10-2006 à 01:37:01

---------------
"Mon modèle, c'est moi-même."
Reply

Marsh Posté le 18-10-2006 à 10:42:55    

Pour traiter de manière plus « industrielle » les erreurs il suffit d'utiliser « On Error Goto label » comme syntaxe et, dans la même fonction, de mettre une ligne déclarant la vignette « label: » pour y insérer le code de gestion des erreurs.
Oui c'est archaïque...

Reply

Marsh Posté le 18-10-2006 à 11:37:22    

En fait je ne peut pas mettre ce code car j'ai généré automatiquement ce formulaire, seul le bouton "supprimer" a était rajouté par mes soins.
Mon probleme viens du fait que je ne le vois pas passer par le code.
Sinon j'ai deja des instructions "On error" dans mes fonctions, ce qu'il me faudrait c'est une espece de "On error" Global a mon formulaire.
 
En tout cas merci de votre aide a tous les deux

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed