PB de fonction argument '<'

Résolu
Signaler
Messages postés
5
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
10 février 2006
-
Messages postés
5
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
10 février 2006
-
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

Messages postés
76
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
8 avril 2008
1
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
Messages postés
5
Date d'inscription
samedi 29 octobre 2005
Statut
Membre
Dernière intervention
10 février 2006

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