Access Rediriger toutes les erreurs dans un module

hyrockbass Messages postés 25 Date d'inscription jeudi 30 juin 2005 Statut Membre Dernière intervention 6 janvier 2006 - 8 juil. 2005 à 11:48
hyrockbass Messages postés 25 Date d'inscription jeudi 30 juin 2005 Statut Membre Derniè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

6 réponses

PtitGrumo Messages postés 205 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 28 novembre 2005 2
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

++

PtitGrumo
0
hyrockbass Messages postés 25 Date d'inscription jeudi 30 juin 2005 Statut Membre Dernière intervention 6 janvier 2006
8 juil. 2005 à 13:56
Ok merci beaucoup je vien d'essayé et ca marche. A +
0
hyrockbass Messages postés 25 Date d'inscription jeudi 30 juin 2005 Statut Membre Derniè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

Tu vois comment je pourrai faire?
0
hyrockbass Messages postés 25 Date d'inscription jeudi 30 juin 2005 Statut Membre Dernière intervention 6 janvier 2006
8 juil. 2005 à 14:12
Aussi a quoi correspond le numéro de réponse.
0

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

Posez votre question
PtitGrumo Messages postés 205 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 28 novembre 2005 2
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

voila!

++

PtitGrumo
0
hyrockbass Messages postés 25 Date d'inscription jeudi 30 juin 2005 Statut Membre Derniè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 ?

MERCI.
0