Access Rediriger toutes les erreurs dans un module
hyrockbass
Messages postés25Date d'inscriptionjeudi 30 juin 2005StatutMembreDernière intervention 6 janvier 2006
-
8 juil. 2005 à 11:48
hyrockbass
Messages postés25Date d'inscriptionjeudi 30 juin 2005StatutMembreDernière intervention 6 janvier 2006
-
11 juil. 2005 à 09:20
bonjour, j'aimeria savoir comment faire pour rediriger toute les erreurs d'access dans un module, sans avoir à faire "on error goto" pour chacune des procedure de mes formulaires. J'ai un 40aine de formulaire avec environ une 10aine de procedure dans chacun donc si je pouvais eviter de tous les reprendre. Si quelqu'un pouvaiis m'aider.....
MERCI
PtitGrumo
Messages postés205Date d'inscriptionsamedi 22 janvier 2005StatutMembreDernière intervention28 novembre 20052 8 juil. 2005 à 12:02
Salut!
Sur tes formulaires, tu a l'evènement Error!
Va dans le code sélectionne dans la combo de gauche "Form" et dans celle de droite ensuite "Error"
Access te placera dans l'évènement qui se lance sur chaque erreur de ce formulaire!
Tu verra que cet évènement s'écris comme suit :
Private Sub Form_Error(DataErr As Integer, Response As Integer)
avec DataErr = numéro de l'erreurResponse le numéro de l'action a effectuer (si tu met response 0 alors l'erreur est ignorée, sinon access t'écris un message a lui)
Donc voila il te reste plus qu'a écrire une procédure et a l'appeler
hyrockbass
Messages postés25Date d'inscriptionjeudi 30 juin 2005StatutMembreDernière intervention 6 janvier 2006 8 juil. 2005 à 14:11
Par contre je ne comprend pas très bien ce qu'est le numéro de reponse. En fait ce que je veux faire c'est que lorsque le format de la base de données access n'est pas reconnu (c'est à dire qu'il faut reparer la base) je veu justement reparer la base. Ma procedure de reparation fonctionne mais je veux simplement l'appeler lors d'une erreur de connexion à la base de données. Le problème est que le numéro de l'erreur est le m^me lorsque le chemein de la base de données est mauvais ou lorsque la base de données n'est pas reconnu. Donc comment différencié ces deux types d'erreur car :
- lorsque le chemin est mauvais : je veu ouvrir un formulaire permettant de spécifier le nouveau chemin de la base de données
- lorsque le format de la base de données n'est pas reconnu (ou a reparer) : je veu la reparer
PtitGrumo
Messages postés205Date d'inscriptionsamedi 22 janvier 2005StatutMembreDernière intervention28 novembre 20052 8 juil. 2005 à 18:10
ok alors!
Quand Access créé l'évènement error, il t'affiche un message microsoft. Pour annuler ce message tu doit mettre response a 0
(Response = 0)
voila c'est en fait la valeur de la réponse de l'utilisateur face au message microsooft du type "Une erreur blablablabla voulez vous continuer? OUI ou NON)
Sinon!
Quand une erreur est rencontrée, il y a un code associé!
Met dans l'évènement ceci :
MsgBox DataErr
Ensuite fait exprès de créer l'erreur et retien le numéro affiché par la combobox
Puis une fois fait, écris ceci
If DataErr = (monNuméro) then
lancerProcédureQueJaiFaitEtQuiRepareLaBase
end if
hyrockbass
Messages postés25Date d'inscriptionjeudi 30 juin 2005StatutMembreDernière intervention 6 janvier 2006 11 juil. 2005 à 09:20
Je viens de voir qu'en fait, la redirection d'erreur ne marche pas. Les erreurs qui m'interresse ne sont pas prise en compte par l'evenement "On error" du formulaire. Je m'explique. Ce que je fais c'est que pour voir si la base de données n'est pas défectueuse, je me connecte à celle-ci à l'ouverture de mon formulaire. Si une erreur est généré (cela signifie qu'il y a eu un problème de connexion à la base) c'est cette erreur là que je souhaite attraper. Cependant, ce n'est pas l'evenement qui se lance mais un message d'erreur normal. J'ai donc regarder dans l'aide si je trouvais quelquechose et en fait j'ai vu que l'evenement que j'utilise ne prend pas en compte les erreur générée par visual basic. Je suis dégouté..... tu saurait pas comment faire STP ?