Null

Null - VB/VBA/VBS - Programmation

Marsh Posté le 15-05-2003 à 16:02:41    

problème con :
 
j'ai un champ d'une table qui est à NULL
càd table1!champ1 = Null lors de l'exécution du code, quand je pointe dessus, avec un point d'arrêt par exemple!
 
Je désire faire un test de cette valeur pour la remplacer par '0'
 
je tape :
 
if table1!champ1 = Null then
     ....
endif
 
on ne rentre jamais dans le test !!!!
j'ai aussi essayé avec
 
 
IF ... Is Null then ...
 
pareil
 
J'ai vérifier le contenu du champ avec un 'espion'
la valeur est bien Null
quelle est la solution ?

Reply

Marsh Posté le 15-05-2003 à 16:02:41   

Reply

Marsh Posté le 15-05-2003 à 16:29:52    

Hepil a écrit :

problème con :
 
j'ai un champ d'une table qui est à NULL
càd table1!champ1 = Null lors de l'exécution du code, quand je pointe dessus, avec un point d'arrêt par exemple!
 
Je désire faire un test de cette valeur pour la remplacer par '0'
 
je tape :
 
if table1!champ1 = Null then
     ....
endif
 
 
Essais:
if isnull(tonChamp) then  
....
 
on ne rentre jamais dans le test !!!!
j'ai aussi essayé avec
 
 
IF ... Is Null then ...
 
pareil
 
J'ai vérifier le contenu du champ avec un 'espion'
la valeur est bien Null
quelle est la solution ?

Reply

Marsh Posté le 15-05-2003 à 16:30:29    

Essais:  
 
If isnull(MonChamp) then
....

Reply

Marsh Posté le 15-05-2003 à 16:41:42    

ça n'a pas l'air de marcher ...
 

Reply

Marsh Posté le 15-05-2003 à 16:53:42    

Hepil a écrit :

ça n'a pas l'air de marcher ...
 
 


 
 
Ca ne marche peut etre qu'avec un recordset:
Voila le code que j'ai utilisé:
        If Not IsNull(.Fields("N° lot" )) Then
           boolLotIsNull = False
        Else
            boolLotIsNull = True
        End If
 
Et ca fonctionne correctement...

Reply

Marsh Posté le 15-05-2003 à 16:57:01    

ok je vais partir sur ce code  
je verrais cela demain matin car j'ai du lancer le traitement

Reply

Marsh Posté le 15-05-2003 à 18:05:32    

Le IsNull ne fonctionne que sur des variables de type Variant, et la propriété Value d'un field de recordset en fait partie.  Donc si ça marche pas, vérifie la valeur de ton Field avec la watch window par exemple.
 
Eventuellement, il peut aussi avoir pris la valeur Empty plutôt que Null.  Dans ce cas, il y a la fonction IsEmpty qui fonctionne de la même manière.

Reply

Marsh Posté le 19-05-2003 à 13:03:49    

merci je testerai à l'occasion car vu l'urgence j'ai du utiliser quelques requête UPDATE facile directment via ACCESS
Je devrai l'automatiser dans le code bientôt
 
Tout est noté  :jap:

Reply

Marsh Posté le 19-05-2003 à 17:35:52    

Et la fonction "Vartype(ma_var) = vbNull" t'as essayer ?
 
Si ça marche pas, essayes de regarder ce que renvoie "Vartype(ma_var)" comme valeur, et recherches dans l'aide les constantes pour tout les types.


---------------
Le but de l'homme moderne sur cette terre est à l'évidence de s'agiter sans réfléchir dans tous les sens, afin de pouvoir dire fièrement, à l'heure de sa mort : "Je n'ai pas perdu mon temps." - Pierre Desproges
Reply

Marsh Posté le 20-05-2003 à 07:56:16    

Warzouz a écrit :

Et la fonction "Vartype(ma_var) = vbNull" t'as essayer ?
 
Si ça marche pas, essayes de regarder ce que renvoie "Vartype(ma_var)" comme valeur, et recherches dans l'aide les constantes pour tout les types.


quel intérêt? seuls les variants peuvent prendre le Null de toute façon :heink:
 
quant à vbNullChar et vbNullString, ils valent tous les deux "" (chaîne vide), donc rien à voir avec le Null :D


---------------
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)
Reply

Marsh Posté le 20-05-2003 à 07:56:16   

Reply

Marsh Posté le 20-05-2003 à 11:27:34    

drasche a écrit :


quel intérêt? seuls les variants peuvent prendre le Null de toute façon :heink:


Ben si la donnée est un variant, Vartype renvoie le sous-type.


---------------
Le but de l'homme moderne sur cette terre est à l'évidence de s'agiter sans réfléchir dans tous les sens, afin de pouvoir dire fièrement, à l'heure de sa mort : "Je n'ai pas perdu mon temps." - Pierre Desproges
Reply

Marsh Posté le 20-05-2003 à 14:47:04    

Plus simple :  
 
x = nz(le_champ,0)
 
Plus compliqué
 
if isnull(le_champ) = true then
    x = 0
end if

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed