PB de fonction argument '<'

Résolu
cs_JFB45 Messages postés 5 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 10 février 2006 - 10 févr. 2006 à 08:47
cs_JFB45 Messages postés 5 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 10 février 2006 - 10 févr. 2006 à 17:00
bonjour,
sous VB 2005, je crée une requette Select
SELECT CategoriePoids, Poids
FROM TPatient
WHERE ((CategoriePoids) = IIf(Poids < 16, 'de 0 à 16 Kg', IIf(Poids < 25, '+ de 16 Kg', IIf(Poids < 35, '+ de 25 Kg', '+ de 35 Kg'))))

il refuse de la générer:
Error in list of function arguments: '<' not recognized
Unable to parse query text

et une autre
Age=DateDiff("yyyy", DateNaissance, Datedujour)

qui ne peut s'executer car :
The new command text returns data with schema different from the shema of the main query. Check your query's command text if this is not desired.

le champs 'Age' est au format numérique sous Access et en System.Int32 sous VB

Que dois-je gaire pour parametrer correctement VB et Sql?
Merci d'avance

2 réponses

lijohann Messages postés 76 Date d'inscription lundi 26 juillet 2004 Statut Membre Dernière intervention 8 avril 2008 1
10 févr. 2006 à 14:43
salut



tu peux essayer :

SELECT ((CategoriePoids) = IIf(Poids < 16, 'de 0 à 16 Kg', IIf(Poids <
25, '+ de 16 Kg', IIf(Poids < 35, '+ de 25 Kg', '+ de 35 Kg')))), Poids

FROM TPatient



mais je suis pas sur que la fonction iff() n'attende pas un '=' dans son test



sinon, en fonction de ta base de données tu peux essayer :



SELECT ((CategoriePoids) = case Poids when < 16 then 'de 0 à 16 Kg'






when <
25 then '+ de 16 Kg'






when < 35 then '+ de 25 Kg'






else '+ de 35 Kg'), Poids


FROM TPatient



pour le datediff, le format de l'unité ("yyy" dans ton cas) est pas le meme sous vb et access je crois
3
cs_JFB45 Messages postés 5 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 10 février 2006
10 févr. 2006 à 17:00
malgrè que l'argument > soit refusé?
A priori la requette refuse les opérateurs < et > mais me donne quand même un résultat???
Merci pour ta réponse
0