P__ROMEO
Messages postés294Date d'inscriptionvendredi 25 février 2005StatutMembreDernière intervention 9 mars 2006
-
17 sept. 2005 à 03:56
P__ROMEO
Messages postés294Date d'inscriptionvendredi 25 février 2005StatutMembreDerniè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)
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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é, nom_employé, pn_employé, init_centrale
FROM employé
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.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 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
P__ROMEO
Messages postés294Date d'inscriptionvendredi 25 février 2005StatutMembreDernière intervention 9 mars 20061 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é.
Cest 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. Cest Nickel.
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />
Doro, Maintenant, je vais essayer avec iif, parce que, jamais testé.
Cest dans ce genre de situation quon accepte les mots qui disent « Tous les chemins mènent à Rome)
Merci.
-----------------------------------------------------------------------------------
La connaissance ne connait pas de limite, puisque Les recherches la nourrissent
P__ROMEO
Messages postés294Date d'inscriptionvendredi 25 février 2005StatutMembreDernière intervention 9 mars 20061 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 ces la valeur "" quil doit prendre, pourquoi aller encore vérifier ce qui suit ? )
Pour quelquun qui veut commencer à utiliser iif, il nest pas encourager.
Mais, sûrement que dans dautre cas, ça doit être bon.
P__ROMEO
Messages postés294Date d'inscriptionvendredi 25 février 2005StatutMembreDernière intervention 9 mars 20061 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