If IsNull ne fonctionne pas normalement

Résolu
P__ROMEO Messages postés 294 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 9 mars 2006 - 17 sept. 2005 à 03:56
P__ROMEO Messages postés 294 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 9 mars 2006 - 17 sept. 2005 à 12:54
Bonjour,
j'ai un problème pas très grave, mais le résoudre m'aiderait.

Je prend des informations dans une base de donnée. j'applique à ma requète des conditions de Selection.
Il arrive donc qu'aucun enregistrement ne respecte les critères.

'Ouverture du Recordest
Rst.Open "SELECT DatDec, HeuDec From [MiniTimeSheet] Where (CodNavArr = '" & Me.TxtCodNavArr & "') ",Cnn

j'utilise DatDec, et HeurDec à la suite de mon code. s'il sont null, cela cause une erreur
je me rappelle que j'utilisais la condition if isnull pour détourner cette erreur, et cela marchait

If IsNull(Rst!datdec) Then
MsgBox "Ce Mini Time Sheet n'a pas été enregistré.", vbInformation, "INTROX : Mini Time Sheet Innexistant"
GoTo Fin
Exit Sub
End If

Mais, depuis que j'ai commencé Ce programme, If isnull n'a jamais marché.

j'utilise pour remplacer:
If Rst!datdec = "" Then
'Code

Si quelqu'un sait d'ou peut venir le problème, me le montrer, m'aiderai bien.

Merci d'avance.

(Je sais le pb n'est vraiment un pb de base de donnée, mais je ne savais pas dans quel theme le mettre)
A voir également:

9 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
17 sept. 2005 à 12:26
p_romeo> le principe est bon. le problème est que le test est trop long, pour la rapidité de la boucle.
c'est le même problème évoqué sur le lien de RenField.

à savoir tout de même que si ta boucle fonctionnait, tu demandes juste, au final, que TXT prenne la valeur de Rst!Dat....

et pour LenB(.....), essai de faire un Debug.Print, pour être certain de la valeur retournée.

ou alors aussi, simplement :
If LenB(Cstr(Rst!DatDec)) = 0 ....

@+
PCPT
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
17 sept. 2005 à 04:13
salut
[VB6]
IsNull s'écrit Is Null
peut-être à cause de çà...

quand j'essaie If Text1.Text Is Null Then MsgBox "vide", j'ai une erreur de type incompatible...
peut-être Is Empty ?
perso j'utilise LenB(MaChaine) = 0

MSDN

<HR>


NULL,
Correspond à une valeur de type Null, employée dans les expressions de recherche
IS NULL et
IS NOT NULL1,
SELECT id_employ&#233;, nom_employ&#233;, pn_employ&#233;, init_centrale
FROM employ&#233;
WHERE init_centrale IS NULL


Recherche tous les employés dont le champ init_centrale est Null.


1Le mot clé IS est un opérateur spécial qui fonctionne avec la variable NULL.


<HR>

PCPT
0
Doro81079 Messages postés 380 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 24 février 2015 56
17 sept. 2005 à 04:26
bonsoir,

IsNull s'écrit bien IsNull....

mais pourquoi tu n'utilises pas plutôt iff...
en supposant que le txt1 recoit les données de rst!datdec :

txt1.text = iff (isnull(rst!datdec),"",rst!datdec)

qui veut dire if isnull alors txt1="" sinon =les données du champ

salut
doro
0
Doro81079 Messages postés 380 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 24 février 2015 56
17 sept. 2005 à 04:28
re,

aprés vérif les 2 sont reconnus (isnull et (is nul si apres le control))

salut
doro
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
17 sept. 2005 à 04:40
salut Doro,
pour le IIF, il est a utiliser avec bcp de prudence. ton exemple est justement à éviter. je te conseille de jeter oeil sur cette source informative de RenField.
PCPT
0
Doro81079 Messages postés 380 Date d'inscription vendredi 22 avril 2005 Statut Membre Dernière intervention 24 février 2015 56
17 sept. 2005 à 04:49
salut pcpt,

merci pour le tuyau ...

mais sur 2 3 source ça valait mieux que des if a répétition ou moi même je ne m'y retrouver plus.

quand je serais manier les fonctions et autres j'y penserais....

salut
doro
0
P__ROMEO Messages postés 294 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 9 mars 2006 1
17 sept. 2005 à 10:38
pcpt et doro, je vous remercie. Et désolé de répondre avec quelque heures de retard, mais je n'étais plus connecté.

C’est vrai que iif est plus propre, mais, avec le lien de pcpt, je vois qu'il faut que je fasse attention.

Et, pour la syntaxe, Is Null me craie erreur, (comme chez pcpt).

pcpt, pour LenB(chaine) , est ce que chaine peut être Rst!date ?

parce que quand j'utilise cette méthode : if LenB(Rst!DatDec) = 0 then MsgBox "Vide", rien ne se passe. il continu son chemin.

if IsEmpty(Rst!DatDec) = 0 then MsgBox "Vide . La, ca marche. C’est Nickel.


<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />


Doro, Maintenant, je vais essayer avec iif, parce que, jamais testé.





C’est dans ce genre de situation qu’on accepte les mots qui disent « Tous les chemins mènent à Rome)





Merci.





-----------------------------------------------------------------------------------
La connaissance ne connait pas de limite, puisque Les recherches la nourrissent
0
P__ROMEO Messages postés 294 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 9 mars 2006 1
17 sept. 2005 à 11:30
Doro, j'ai essayé avec iif,
TxtDate = IIf(IsNull("Rst!DatDec"), "", Rst!DatDec)
Quand Rst!Date est null, j'ai une erreur (sur la partie en violet). En fait, c'est l'erreur que je veux contourner. Dans ce qua, ca ne marche pas.
Normalement dès qu'il voit que Rst!DatDec est Nul, il doit affecter a TxtDate la valeur "".
Mais, dans ce cas, apparemment, il ne s'arrête pas sur cette partie. Il continue la condition, pour arriver à la fin. Et, comme ce qui es à la fin es faut, il crée l'erreur. <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />


(Mais, si il sait que c’es la valeur "" qu’il doit prendre, pourquoi aller encore vérifier ce qui suit ? )


Pour quelqu’un qui veut commencer à utiliser iif, il n’est pas encourager.





Mais, sûrement que dans d’autre cas, ça doit être bon.





Merci pour l’aide.


A+
0
P__ROMEO Messages postés 294 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 9 mars 2006 1
17 sept. 2005 à 12:54
Merci. de me donner de ton temps. je suis satisfait de ta réponse. et merci Doro.
A+

-----------------------------------------------------------------------------------
La connaissance ne connait pas de limite, puisque Les recherches la nourrissent
0
Rejoignez-nous