nuts_ben
Messages postés4Date d'inscriptionjeudi 9 février 2006StatutMembreDernière intervention17 mars 2009
-
17 mars 2009 à 12:02
nuts_ben
Messages postés4Date d'inscriptionjeudi 9 février 2006StatutMembreDernière intervention17 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...
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 17 mars 2009 à 14:53
Private Sub Test
On Error Goto Handler
....
Exit Sub
Handler:
Msgbox "Une erreur " & err.number & " est survenue :" & vbnewline & _
Err.Description
End Sub
hellangel777
Messages postés267Date d'inscriptionjeudi 5 février 2009StatutMembreDernière intervention26 novembre 20131 17 mars 2009 à 12:50
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
nuts_ben
Messages postés4Date d'inscriptionjeudi 9 février 2006StatutMembreDernière intervention17 mars 2009 17 mars 2009 à 13:42
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
nuts_ben
Messages postés4Date d'inscriptionjeudi 9 février 2006StatutMembreDernière intervention17 mars 2009 17 mars 2009 à 14:32
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.