Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2095 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Remplacer un message d'erreur Access....

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Remplacer un message d'erreur Access....

n°374306
Yoyo@
Posté le 28-04-2003 à 14:14:47  profilanswer
 

Salut :
 
Pour simplifier, voici ma question/probleme :
Je possède une table Inventory  
avec deux champs :
InvID : autonumber
Batch : Text
 
J'ai un formulaire dans lequel j'exécute le code :
 
Dim strSQL As String
strSQL = "INSERT INTO Inventory ( InvID, Batch ) SELECT 1AS Expr1, 'Essai' AS Expr2;"
DoCmd.RunSQL strSQL
 
La première fois, ma table est vide, donc, tout marche bien, et la deuxieme fois que je l'exécute, j'ai une erreur comme quoi Access n'a pas pu ajouter les enregistrement à cause d'une violation de clé, etc...
 
Je voudrais savoir comment je pourrais catcher cette erreur, et mettre à la place un truc du genre MsgBox("Erreur - Impossible d'effectuer l'opération" ), au lieu d'avoir ce message "pas beau".
 
Merci pour vos rpéonses...
 
Yoyo*


---------------
It's nice to be important, but it's more important to be nice
mood
Publicité
Posté le 28-04-2003 à 14:14:47  profilanswer
 

n°374319
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 28-04-2003 à 14:19:21  profilanswer
 

Tu dois connaitre le code d'erreur rattaché à la violation de clé (je ne l'ai plus en tête. Admettons que ce soit 3000 par exemple).
 
Tu ajoutes alors ceci dans ton code :
 
On Error GoTo Erreur
 
(... traitement normal...)
 
Erreur:
If Err.Number = 3000 Then MsgBox "Erreur - Impossible d'effectuer l'opération"
Err.Clear


Message édité par Harkonnen le 28-04-2003 à 14:20:25

---------------
J'ai un string dans l'array (Paris Hilton)
n°374339
Yoyo@
Posté le 28-04-2003 à 14:28:20  profilanswer
 

Harkonnen a écrit :

Tu dois connaitre le code d'erreur rattaché à la violation de clé (je ne l'ai plus en tête. Admettons que ce soit 3000 par exemple).
 
Tu ajoutes alors ceci dans ton code :
 
On Error GoTo Erreur
 
(... traitement normal...)
 
Erreur:
If Err.Number = 3000 Then MsgBox "Erreur - Impossible d'effectuer l'opération"
Err.Clear


 
Bah justement, si je fais ça, ca ne marche pas, car l'erreur n'a pas l'air de venir de l'applicatif Access, mais de la Base de données elle meme, donc, je n'arrrive pas à la catcher, meme avec un On Error !... Le message Access apparait de toute maniere :( !
 
Sniff...


---------------
It's nice to be important, but it's more important to be nice
n°374348
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 28-04-2003 à 14:32:54  profilanswer
 

Euh, avec Access, tu utilises forcément Jet comme moteur de BDD hein ! Et Jet te renvoie toujours un code d'erreur !
A mois que tu n'utilises Access comme Front-End pour lire une autre base via l'attachement de données externes ODBC ? (Oracle par exemple)


---------------
J'ai un string dans l'array (Paris Hilton)
n°374442
Yoyo@
Posté le 28-04-2003 à 15:02:36  profilanswer
 

Harkonnen a écrit :

Euh, avec Access, tu utilises forcément Jet comme moteur de BDD hein ! Et Jet te renvoie toujours un code d'erreur !
A mois que tu n'utilises Access comme Front-End pour lire une autre base via l'attachement de données externes ODBC ? (Oracle par exemple)


 
Voici exactemnt le code que j'utilise :
 
Private Sub Command0_Click()
On Error GoTo Err_Append
 
Dim strSQL As String
strSQL = "INSERT INTO Inventory ( InvID, Batch ) SELECT 1 AS Expr1, 'Essai' AS Expr2;"
DoCmd.RunSQL strSQL
 
Exit_Append:
    Exit Sub
 
Err_Append:
    MsgBox "C'est une erreur"    Resume Exit_Append
 
End Sub
 
Et le problème est que j'obtiens toujours l'erreur "Access" comme quoi il ne peut pas ajouter les enregistrements...
 
Est ce normal?
 
Merci


---------------
It's nice to be important, but it's more important to be nice
n°375466
kamui36
Posté le 29-04-2003 à 07:40:59  profilanswer
 

salut! J'ai eu le même problème il y a peu de temps mais avec une autre erreur(ca concernant les doublons). Malheureusement, personne n'a pu m'aider! Il semblerait que ce genre d'erreur soit généré par le noyau d'Access lui-même et en ce qui me concerne, je n'ai toujours pas trouvé le moyen de la catcher... Pour finir j'ai du vérifier moi même s'il y avait des douboons dans mes tables pour ensuite faire en sorte qu'Access affiche MON mess d'erreur(tout ca en code VBA)...
 
Il faudrait que qqun qui domine vraiment Access vienne te donner un coup main.... au fait tu bosse dans quelle version d'Access??


---------------
Le bien ou le mal, l'homme ou l'animal, on ne voit jamais l'un sans l'autre
n°375470
drasche
Posté le 29-04-2003 à 08:06:01  profilanswer
 

Le code est bon mais vous devriez vérifier les options de runtime (qui par défaut font sauter toutes les erreurs Access à l'écran).
 
En Access 97: Tools/Options/Advanced, il y a un groupe de 3 optionbuttons nommé ErrorTrapping, choisir "Break on unhandled errors" (arrêt sur les erreurs non-gérées).  Par défaut, l'option est Arrêt sur toutes les erreurs.
 
Pour finir, sachez que quelque soit le SGBD qui est vraiment derrière Access, c'est toujours Access qui gère les erreurs, donc vous ;)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°375474
kamui36
Posté le 29-04-2003 à 08:18:49  profilanswer
 

ok mais il faudra quand même modifier le code VBA pour qu'il detecte l'erreur et qu'il affiche un mess! :hello:


---------------
Le bien ou le mal, l'homme ou l'animal, on ne voit jamais l'un sans l'autre
n°375479
drasche
Posté le 29-04-2003 à 08:24:41  profilanswer
 

ben dans le code de yoyo c'est bon, ya rien à retoucher [:spamafote]


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°375486
kamui36
Posté le 29-04-2003 à 08:32:25  profilanswer
 

je confirme mais je parlais plutôt pour le code de base  ;)


---------------
Le bien ou le mal, l'homme ou l'animal, on ne voit jamais l'un sans l'autre
mood
Publicité
Posté le 29-04-2003 à 08:32:25  profilanswer
 

n°375530
Yoyo@
Posté le 29-04-2003 à 09:20:41  profilanswer
 

kamui36 a écrit :

salut! J'ai eu le même problème il y a peu de temps mais avec une autre erreur(ca concernant les doublons). Malheureusement, personne n'a pu m'aider! Il semblerait que ce genre d'erreur soit généré par le noyau d'Access lui-même et en ce qui me concerne, je n'ai toujours pas trouvé le moyen de la catcher... Pour finir j'ai du vérifier moi même s'il y avait des douboons dans mes tables pour ensuite faire en sorte qu'Access affiche MON mess d'erreur(tout ca en code VBA)...
 
Il faudrait que qqun qui domine vraiment Access vienne te donner un coup main.... au fait tu bosse dans quelle version d'Access??  


 
Ca fait du bien de se sentir moins seul ;)
 
Bon, je vais tester les dires de notre ami drasche...
 
Je reviendrai poster ici !
 
A toute,
 
Yoyo*


---------------
It's nice to be important, but it's more important to be nice
n°375550
Yoyo@
Posté le 29-04-2003 à 09:28:58  profilanswer
 

drasche a écrit :

ben dans le code de yoyo c'est bon, ya rien à retoucher [:spamafote]


 
J'ai trouvé dans Access XP les options "à modifier", et j'ai tout essayé, mais rien n'y fait, le message Access apparait tout le temps!
 
Alors, j'ai essayé avec le code suivant :
 
On Error GoTo Err_Append
 
DoCmd.SetWarnings False
Dim strSQL As String
strSQL = "INSERT INTO Inventory ( InvID, Batch ) SELECT 1 AS Expr1, 'Essai' AS Expr2;"
DoCmd.RunSQL strSQL
 
DoCmd.SetWarnings True
Exit_Append:
    Exit Sub
 
Err_Append:
    MsgBox Err.Number
    Resume Exit_Append
 
Mais là, rien n'y fait, plus aucun message n'appparait (ce qui est encore pire !!!)
 
Bref, pour le moment, notre problème n'est pas réolu :(
 
Bien entendu, si je trouve la solution, je la fais partager à tous !
 
Merci pour votre aide!
 
Yoyo*


---------------
It's nice to be important, but it's more important to be nice
n°375568
kamui36
Posté le 29-04-2003 à 09:40:52  profilanswer
 

c'est bien ce que je pensais (et c'est ce qui me fait peur d'ailleurs)... :heink:


---------------
Le bien ou le mal, l'homme ou l'animal, on ne voit jamais l'un sans l'autre
n°375762
Yoyo@
Posté le 29-04-2003 à 11:22:41  profilanswer
 

kamui36 a écrit :

salut! J'ai eu le même problème il y a peu de temps mais avec une autre erreur(ca concernant les doublons). Malheureusement, personne n'a pu m'aider! Il semblerait que ce genre d'erreur soit généré par le noyau d'Access lui-même et en ce qui me concerne, je n'ai toujours pas trouvé le moyen de la catcher... Pour finir j'ai du vérifier moi même s'il y avait des douboons dans mes tables pour ensuite faire en sorte qu'Access affiche MON mess d'erreur(tout ca en code VBA)...
 
Il faudrait que qqun qui domine vraiment Access vienne te donner un coup main.... au fait tu bosse dans quelle version d'Access??


 
Je bosse à la fois avec 97 et XP! Je possède les versions anglaises des deux...je préfère :)


---------------
It's nice to be important, but it's more important to be nice
n°375877
kamui36
Posté le 29-04-2003 à 12:39:17  profilanswer
 

Yoyo@ a écrit :


 
Je bosse à la fois avec 97 et XP! Je possède les versions anglaises des deux...je préfère :)


 
faut juste faire gaffe... car les solutions que tu trouves sous XP ne sont pas toutes compatibles avec 97 :jap:  
 
bon.. moi j'ai pas la chance de bosser avec XP :cry: mais on fait sans [:spamafote]


---------------
Le bien ou le mal, l'homme ou l'animal, on ne voit jamais l'un sans l'autre
n°376239
Yoyo@
Posté le 29-04-2003 à 14:58:00  profilanswer
 

kamui36 a écrit :


 
faut juste faire gaffe... car les solutions que tu trouves sous XP ne sont pas toutes compatibles avec 97 :jap:  
 
bon.. moi j'ai pas la chance de bosser avec XP :cry: mais on fait sans [:spamafote]


 
LA plupart du temps, tout est compatible ! J'ai jamais eu de problemes la dessus !  
 
LEs seuls trucs qui me paraissaient pas compatibler entre les deux, ce sont des subtilités, genre un OIpenArgs qui n'existe pas avec les reports sous Access97, ou alors ADO (que je n'utilise pas) ou alors les objets Office... Enfin, rien de bloquant pour moi !
 
Mais... On a toujours pas notre solution !
 
J'ai essayé d'écrire sur le site de Krosoft, mais aps de réponse pour le moment !
 
Up !!!
 
Yoyo*


---------------
It's nice to be important, but it's more important to be nice
n°377281
Yoyo@
Posté le 29-04-2003 à 23:25:51  profilanswer
 

Ca y est, mes amis, j'ai la solution :
 
On Error GoTo Err_Append
 
DoCmd.SetWarnings False
Dim strSQL As String
strSQL = "INSERT INTO Inventory ( InvID, Batch ) SELECT 11254 AS Expr1, 'Essai' AS Expr2;"
 
Dim db As Database
Set db = CurrentDb()
db.Execute strSQL, dbFailOnError
DoCmd.SetWarnings True
 
Exit_Append:
    Exit Sub
 
Err_Append:
    MsgBox "Putain, ca marche!!!"
    Resume Exit_Append
 
 
Ce db.Execute strSQL, dbFailOnError permet de récupérer l'erreur si elle se produit !  
 
Punaise, c'est fou, j'ai du écrire à Microsoft, et ils ont eu du mal à me trouver une réponse...Y en a un qui m'a dit que c'était parce que mon formulaire était lié à ma table (ce qui était faux) et un autre qui m'a sorti un truc hyper ocmpliqué en ADO...
 
Et finalement, le dernier, il m'a sorti la bonne réponse...
 
A tester sous 97, mais a priori, ca devrait marcher...
 
Yoyo*


---------------
It's nice to be important, but it's more important to be nice

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Remplacer un message d'erreur Access....

 

Sujets relatifs
est ce qu'il y a un equivalent d'ETAT(Access) en PHP pour impression[Socket Linux] Qd le client ferme, le serveur boucle sur le message
erreur thhp 500[Access]Requete pas simple.....
VBA -> access -> liste deroulantebesoin d'aide pour resolution d'erreur sous visual c++
[vbscript]- erreur dans la recherche de chaines de caractère[access] je cherche des infos sur access
[ACCESS]Probleme activex suite a un changement de posteMessage d'attente
Plus de sujets relatifs à : Remplacer un message d'erreur Access....


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR