Tester l'existance d'une variable dans une requète ... [Résolu]

Messages postés
4
Date d'inscription
jeudi 9 février 2006
Statut
Membre
Dernière intervention
17 mars 2009
- - Dernière réponse : nuts_ben
Messages postés
4
Date d'inscription
jeudi 9 février 2006
Statut
Membre
Dernière intervention
17 mars 2009
- 17 mars 2009 à 15:00
Bonjour à tous,

j'aimerai tester l'existence d'une variable pour éviter que mon programme plante dès que celle-ci n'existe plus.
Je n'arrive pas à trouver comment faire.
<hr size="2" width="100%" />
...
Set InDB = CurrentDb
Set InSatz = InDB.OpenRecordset("Articles")
...
If .SetFieldVal("num2", Nz(c, "")) = False Then
     Anzeige "AVERTISSEMENT", UebernahmeArt, InSatz.Fields!num2 & " num2:<" & InSatz.Fields!num2 & ">", Editor.GetLastError
End If
....
<hr size="2" width="100%" />Le problème, c'est que parfois, la variable "num2" n'est pas présente dans ma base donc le programme plante. Ce que j'aimerai, c'est qui cette variable n'existe pas, que je puisse continuer mon programme quand même.

Je ne connait rien aux VBA!! Merci pour votre aide...

nuts_ben
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57
3
Merci
On Error Resume Next

permet de gérer les erreurs...

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 6032 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Renfield
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57
3
Merci
Private Sub Test
On Error Goto Handler
....
Exit Sub
Handler:
Msgbox "Une erreur " & err.number & " est survenue :" & vbnewline & _
Err.Description
End Sub

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 6032 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Renfield
Messages postés
267
Date d'inscription
jeudi 5 février 2009
Statut
Membre
Dernière intervention
26 novembre 2013
0
Merci
Bonjour,
Tu rajoute simplement un test.
Ta variable est-elle réinitialisée? Si oui à quelle valeur?
Sinon tu rajoute simplement

If num2 > 0 then 'dans le cas où elle est réinitialisée à 0
   If .SetFieldVal("num2", Nz(c, "")) = False Then
     Anzeige "AVERTISSEMENT", UebernahmeArt, InSatz.Fields!num2 & " num2:<" & InSatz.Fields!num2 & ">", Editor.GetLastError
   End If
end if

HellAngel777
<hr />
Les machines ne font pas d'erreurs
Heureusement nous sommes humains
Commenter la réponse de hellangel777
Messages postés
4
Date d'inscription
jeudi 9 février 2006
Statut
Membre
Dernière intervention
17 mars 2009
0
Merci
Merci pour ta réponsehellangel777,

En fait, la variable num2 correspond au nom d'une des colonnes de ma requête dans mon fichier Access. Cette colonne est amené ne pas être présente parfois. A ce moment là, le programme plante car il ne connait pas du num2.
Donc je n'initialise pas mes variables.

Je viens de voir qu'un erreur est présente dans mon premier code, je corrige :
<hr size= "2" width="100%" />
If .SetFieldVal("num2", Nz( InSatz.Fields!num2 , "")) = False Then
     Anzeige "AVERTISSEMENT", UebernahmeArt, InSatz.Fields!num2 & " num2:<" & InSatz.Fields!num2 & ">", Editor.GetLastError
End If
<hr size="2" width="100%" />
La partie en gras est justement ce qui fait planter le prog car le champ num2 n'existe pas... Je ne peux pas la tester à null car vu qu'elle n'existe pas, ça plante.
Ce qui me faudrait, c'est une fonction isExiste() !!

Quelqu'un à une idée?
Merci
Commenter la réponse de nuts_ben
Messages postés
4
Date d'inscription
jeudi 9 février 2006
Statut
Membre
Dernière intervention
17 mars 2009
0
Merci
Voilà ce qu'il me fallait, c'est parfais... ça règle mon problème.
Par contre je me demandais si je pouvais savoir si une erreur est apparu et ou? Cela me serait utile pour faire un log.

Merci en tout cas!
Commenter la réponse de nuts_ben
Messages postés
4
Date d'inscription
jeudi 9 février 2006
Statut
Membre
Dernière intervention
17 mars 2009
0
Merci
Merci beaucoup Renfield!!
Commenter la réponse de nuts_ben