Requete condition sur date

cs_nape Messages postés 27 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 28 août 2007 - 19 juin 2007 à 12:25
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011 - 19 juin 2007 à 22:52
Bonjour à tous,
J'écris une requête pour trier des données sur une base access.
La date est de la forme #24/04/2007# par exemple.

select * from CampPub where CampPub.debut <= #" & Valdate & "#"


Dans le resultat c'est plutôt sur le mois seulement que la condition s'applique.
Bien à vous.jE VOUDRAIS VOTRE AIDE.

22 réponses

jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
19 juin 2007 à 12:35
Salut,
Utilise la fonction Month(ValDate) qui renvoie le Mois de la date passé en parametre

@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_nape Messages postés 27 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 28 août 2007
19 juin 2007 à 12:42
Je pense qu'on ne s'est pa scompris. si la date de trie est par exemple 24/04/2007, dans le resultat, j'ai les dates pour lesquelles le mois est inferieur ou eqale à 04 et non les date inferieures à 24/04/2007

<!-- / message -->
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
19 juin 2007 à 12:45
Salut,
Effectivement j'ai rien compris (j'ai du lire trop vite )
désolé.

Est tu sur que les deux dates sont au meme format?
@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_nape Messages postés 27 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 28 août 2007
19 juin 2007 à 12:49
Oui les deux dates sont aux mêmes format. le format que je choisie est: dd/mm/aaaa
0

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

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
19 juin 2007 à 12:54
Il faut non seulement utiliser MONTH, mais également YEAR du coup !
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
19 juin 2007 à 13:06
Bonjour,


dans l' expressions le format du paramètre ValDate
est MM/DD/YYYY


>Formater ValDate
>ou bien "disloquer"
"select * from CampPub" & _
" where (Day(CampPub.debut)) <= " & Day(Valdate) & _
" And (Month(CampPub.debut)) <=" & Month(Valdate)
" And (Year(CampPub.debut)) <=" & Year(Valdate)
0
cs_nape Messages postés 27 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 28 août 2007
19 juin 2007 à 13:10
La fonction Day semble ne pas marcher.
0
cs_nape Messages postés 27 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 28 août 2007
19 juin 2007 à 13:16
Voici le message d'erreur sur Day:
'Day' is a type and cannot be used as an expression. 
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
19 juin 2007 à 13:28
tiens, c' est la première fois que j' entend parler de ça ...!
Pour en avoir le coeur net, supprimes la ligne Day et gardes uniquement
Month et Year
0
cs_nape Messages postés 27 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 28 août 2007
19 juin 2007 à 14:17
sSQL = " select * from CampPub"




sSQL = sSQL & " where (Day(CampPub.debut)) <= " & Day(Valdate) & "
 sSQL = sSQL & " and (Month(CampPub.debut)) <= " & Month(Valdate) & "
 sSQL = sSQL & " and (Year(CampPub.debut)) <= " & Year(Valdate) & ""



en fait Valdate est de type 

Date






et l'erreur est sur Day de Day(Valdate):
'Day' is a type and cannot be used as an expression.
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
19 juin 2007 à 14:27
oui on a compris !
ce que je te proposais c' est
sSQL = " select * from CampPub"

 sSQL = sSQL & " where (Month(campagne.debut)) <= " & Month(Valdate) & "
 sSQL = sSQL & " and (Year(campagne.debut)) <= " & Year(Valdate) & ""

pour voir si l' erreur est seulement sur Day ou ça sera âreil pour Month et Year

essaies aussi
sSQL = " select * from CampPub"

 sSQL = sSQL & " where (Month(campagne.debut)) <= 4 "  & _
 sSQL = sSQL & " and (Year(campagne.debut)) <= 2007"
pour voir si c' est sur le champ ou sur la variable que se produit l' erreur
0
cs_nape Messages postés 27 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 28 août 2007
19 juin 2007 à 14:34
Oui, excuse moi. ce tu propose marche à merveille et merci d'ailleurs.
Mais c'est la fonction Day qui n'est pas reconnue et je ne sais pas si c'est parce que je declare Valdate comme date qui genère le  problème.
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
19 juin 2007 à 15:16
et la valeur que tu affectes à ValDate tu la tiens d' ou ? d'  un Calendrier
ou tu  la saisies ?
0
cs_nape Messages postés 27 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 28 août 2007
19 juin 2007 à 16:36
Je m'excuse de m'être absenté un moment.
Je la tient à partir d'un DateTimePicker
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
19 juin 2007 à 17:02
no souci :-)
..
D' habiude c' est comme ça que je fais,
mais je veille toujours à configurer mon DtPicker au format vouku .
Je ne comprend donc pas pourquoi ça déconne au niveayu de Day()
Tout ce que je peux te conseiller de faire c' est d' insèrer des msgbox
après l' affectation (MsgBox ValDate et MsgBox Sql) pour avoir une idée.
et aussi Dim D As Integer ...D=Day (ValDate)

Sinon désolé de ne pouvoir t' aider d' avantage.

A+
0
cs_nape Messages postés 27 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 28 août 2007
19 juin 2007 à 17:13
Je pense que tu m'as beaucoup aidé dans la mesure où ta methode me permet de faire des requête par rapport au mois et l'année dejà. Je vais essayer ta piste et voir ce que ça peut me donner. Merci pour ta sollicitude.
0
cs_nape Messages postés 27 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 28 août 2007
19 juin 2007 à 18:23
Finalement j'ai fais ceci:

Dim ValStDate AsString


ValStDate =



"#"
& Month(Valdate) &

"/"
& Valdate.Day &

"/"
& Year(Valdate) &

"#"



select * from CampPub where CampPub.debut <= " &
ValStDate

& ""



et c'est passé.

Je ne pouvais donc pas être content sans te la partager si jamais tu rencontre un tel problème.
ça m'a fais bizarre de voir que Day devait être un type et non une fonction.
Bon merci chaibat05 pour ta sollicitude.
0
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011
19 juin 2007 à 19:02
j'ai tjs fait :
"....WHERE [Ma date] <= '24/04/2007'" et jamais eu ce genre de pb :p

TeBeCo
0
cs_nape Messages postés 27 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 28 août 2007
19 juin 2007 à 19:20
ça depend de la base de données utilisée. Avec Access par exemple il faut "....WHERE [Ma date] <= #" 04/24/2007"# or PostgreSql  "....WHERE [Ma date] <= '2007/04/24'"
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
19 juin 2007 à 19:54
PostgreSql ?!  ça éxplique "prèsque" tout alors !


D' autre part n' oublies pas que les dièses tu les a intègré dans ValDate


ValStDate = "#" & Month(Valdate) & "/" & Valdate.Day & "/" & Year(Valdate) & "#"


select * from CampPub where CampPub.debut <= " & ValStDate 


est l' équivalent de


ValStDate = Month(Valdate) & "/" & Valdate.Day & "/" & Year(Valdate)


select * from CampPub where CampPub.debut <= #" & ValStDate & "#"





<hr />

® l l i n g , l' agité du bocal : 
   ...quotes, double quotes, crochets ou parenthèses ?
   Ah si je pouvais rester dans mes charentaises !
0