Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/12/2010, 20h43   #1
Invité régulier
 
Patrice Delisle
Inscription : novembre 2009
Messages : 11
Détails du profil
Informations personnelles :
Nom : Patrice Delisle
Localisation : Canada

Informations forums :
Inscription : novembre 2009
Messages : 11
Points : 5
Points : 5
Par défaut SetWarnings - Message personnalisé

Bonjour,

J'ai le code suivant:
Code :
1
2
3
4
5
 
DoCmd.SetWarnings False
DoCmd.RunSQL ("Insert into .....")
'J'aimerais récupérer l'erreur ici
DoCmd.SetWarnings True
J'aimerais pouvoir personnaliser le message s'il y a insertion de doublon ou aviser l'usager que tout c'est bien déroulé s'il n'y a pas eu de doublons. Je n'arrive pas à récupérer le message d'erreur.

Merci de bien vouloir m'aider.
Patrice
delisle59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 08h00   #2
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 037
Points : 11 037
Bonjour,

Un exemple :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Public Sub tst()
On Error GoTo GestionErreur
DoCmd.SetWarnings False
DoCmd.RunSQL ("Insert into .....")
'J'aimerais récupérer l'erreur ici
DoCmd.SetWarnings True
Exit Sub
GestionErreur:
Select Case Err.Number
  Case 3450
    MsgBox "c'est ça que tu veux ?"
  Case Else
    MsgBox "une autre erreur à traiter : " & Err.Number & "  " & Err.Description
 
End Select
End Sub
__________________
Amoureuse/amoureux de la langue française ? Vous pouvez nous aider à corriger nos ressources !
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 09h28   #3
Membre confirmé
 
Jacques Lesueur
Inscription : mai 2006
Messages : 180
Détails du profil
Informations personnelles :
Nom : Jacques Lesueur

Informations forums :
Inscription : mai 2006
Messages : 180
Points : 209
Points : 209
Bonjour, je pense que tu as inversé le setWarning.

Code :
1
2
3
4
DoCmd.SetWarnings True
DoCmd.RunSQL ("Insert into .....")
'J'aimerais récupérer l'erreur ici
DoCmd.SetWarnings False
avec cette commande,les messages données par access seront visible par l'utilisateur ==> bien sur pour avoir un message d'alerte, ta table, dans lequel tu insères les enregistrement, doit avoir un index qui interdira les doublons ( clef unique) ==> dans ce cas , Access te donnera le nombres d'enregistrements éliminés
Jack78960 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 15h49   #4
Invité régulier
 
Patrice Delisle
Inscription : novembre 2009
Messages : 11
Détails du profil
Informations personnelles :
Nom : Patrice Delisle
Localisation : Canada

Informations forums :
Inscription : novembre 2009
Messages : 11
Points : 5
Points : 5
Par défaut Warning

Merci Jack mais ce que je veux c'est gérer moi même le message.

Pour Claude, j'ai déjà une trappe d'erreur mais le problème c'est que Access ne semble pas générer d'erreur mais un avertissement et il ne passe pas par la trappe d'erreur. De là mon problème.
delisle59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 16h09   #5
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 037
Points : 11 037
J'ai testé avant de poster ma réponse. Chez moi ça marche.
Mon code se trouve dans un module général (donc pas dans celui d'un formulaire).
Si ta trappe d'erreur ne fonctionne pas, essaie de modifier ton code en le déportant hors ton formulaire.

Comprends-tu ce que je veux dire ?

Si non, poste le code complet. Je pourrai alors être plus concret.
__________________
Amoureuse/amoureux de la langue française ? Vous pouvez nous aider à corriger nos ressources !
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 16h11   #6
Membre Expert
 
Inscription : janvier 2006
Messages : 1 111
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 1 111
Points : 1 093
Points : 1 093
Bonjour,

Et mettre un
Code :
currentdb.execute MonSQL, dbfailOnError
à la place de
Code :
1
2
3
4
DoCmd.SetWarnings False
DoCmd.RunSQL ("Insert into .....")
'J'aimerais récupérer l'erreur ici
DoCmd.SetWarnings True
__________________
[Access] Les bases du débogage => ici
Kloun est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/12/2010, 17h46   #7
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 037
Points : 11 037
Evitons les MP(rivés) quand c'est possible...

... et pour ton MP(ersonnalisé) ,
la solution de Kloun est ta solution :

J'ai une table1 avec un [ChampUnique] sans doublon.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
Public Sub tst2()
On Error GoTo GestionErreurs
CurrentDb.Execute "INSERT INTO Table1 ( champUnique ) SELECT ""a"" AS Expr1;", dbFailOnError
Exit Sub
GestionErreurs:
Select Case Err.Number
  Case 3022
     MsgBox " il y a des doublons!"
  Case Else
     MsgBox Err.Number & "   " & Err.Description
End Select
End Sub
à la 2ème exécution, tu trappes l'erreur.

Je ne connaissais pas
Code :
currentdb.execute MonSQL, dbfailOnError
Merci kloun !
__________________
Amoureuse/amoureux de la langue française ? Vous pouvez nous aider à corriger nos ressources !
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 18h28   #8
Invité régulier
 
Patrice Delisle
Inscription : novembre 2009
Messages : 11
Détails du profil
Informations personnelles :
Nom : Patrice Delisle
Localisation : Canada

Informations forums :
Inscription : novembre 2009
Messages : 11
Points : 5
Points : 5
Par défaut Warning

Merci à tous,

Ce problème n'en est plus un maintenant
delisle59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h42.


 
 
 
 
Partenaires

Hébergement Web