Comment trouver les enregistrement selon cette condition?

Résolu
cs_abou ilyas Messages postés 33 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 17 avril 2014 - 30 août 2011 à 04:32
cs_abou ilyas Messages postés 33 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 17 avril 2014 - 14 sept. 2011 à 01:14
Salut,
j'ai ma base Access liée à vb6 via ADO,

je veux rechercher tous les enregistrements dont le niveau='" & text1 & "', le sexe=F, date_inscription < 24/11/année actuelle, ainsi que les date _naissance dont les mois sont: 1 , 2 et 3. et l'année de naissance = année actuelle - 5.
j'ai essayé:
sql="select * from eleves where niveau='" & text1 & "' and sexe='F' and month(date_naissance) between 1 and 3 and year(date_naissance)=year(now)-5"

mais ça marche pas.
Merci.

8 réponses

cs_GG72 Messages postés 94 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 30 octobre 2011
11 sept. 2011 à 18:09
Bonjour,

Déjà, comme dit précédemment l'expression 11/24/year(Now()) n'est pas correcte
Remplace:
and date_inscription < 11/24/year(Now())


par:
And year(date_inscription=year(now())) And month(date_inscription) & day(date_inscription)<1124

et dis nous ce qu'il en résulte.
3
cs_abou ilyas Messages postés 33 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 17 avril 2014
30 août 2011 à 04:42
Salut,
j'ai ma base Access liée à vb6 via ADO,

je veux rechercher tous les enregistrements dont le niveau='" & text1 & "', le sexe=F, date_inscription < 24/11/année actuelle, ainsi que les date _naissance dont les mois sont: 1 , 2 et 3. et l'année de naissance = année actuelle - 5.
j'ai essayé:
sql="select * from eleves where niveau='" & text1 & "' and sexe='F' and month(date_naissance) between 1 and 3 and date_inscription < 24/11/year(now) and year(date_naissance)=year(now)-5"

mais ça marche pas.
Merci.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 août 2011 à 07:23
Bonjour,
un simple msgbox sql te permettrait de constater la raison : tu y verrais par exemple que "year(Now)" s'y trouve au lieu de "2011"
les noms de certaines de tes variables sont carrément insérés dans la chaîne au lieu de leurs valeurs ! (guillemets manquants avant le passage de leurs valeurs)
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne intallée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
cs_abou ilyas Messages postés 33 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 17 avril 2014
4 sept. 2011 à 03:30
Salut,
merci de m'avoir répondu
mais ça marche toujours pas,
j'ai bien essayé toutes vos propositions mais rien ne change.
Peut être n'étais-je pas assez claire
Ce que je veux faire c'est un recensement des élèves selon le niveau, dont le sexe est F, la date d'inscription est inférieure au 24/11 de chaque année, l'âge est 6 ans soit les dates de naissance dont les mois sont 1,2 et 3 et l'année year(now)-5 ainsi que les dates de naissance dont les mois sont entre 4,12 et l'année year(now)-6
par exemple
élève 1:
date de naissance 12/02/2001 date inscription 10/09/2010 n'est pas compté. la date de naissance ne répond à la condition year(now)-5 ou year(now)-6. .
élève 2:
date de naissance 10/02/2006 date inscription 23/11/2009 compté. condition réalisée: le mois est netre 1 et 3 est l'année de naissance= year(now)-5.
élève 3:
date de naissance 24/08/2005 date inscription 12/09/2011 compté.condition réalisée: le mois est entre 4et 12 est l'année de naissance= year(now)-6.
élève 4:
date de naissance 24/08/2005 date inscription 24/11/2011 non compté.la condition n'est pas réalisée: la date d'inscription est égale au # 24/11/year(now) #.
Merci.
0

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

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
4 sept. 2011 à 07:52
j'ai bien essayé toutes vos propositions mais rien ne change

Montre donc la requête écrite après prise en compte de ces remarques (et non "propositions") !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
cs_GG72 Messages postés 94 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 30 octobre 2011
4 sept. 2011 à 08:41
Bonjour a tous,

La requête initiale est incomplète.
Aucune sélection n'est effectuée sur year(now)-6
Ajouter une condition Or year(date_naissance)=year(now())-6 en faisant attention aux parenthèses en fonction du résultat recherché.

En plus, comme le précisait ucfoutu, problème avec 24/11/year(now).
0
cs_abou ilyas Messages postés 33 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 17 avril 2014
11 sept. 2011 à 16:32
Salut,

voici mon code:
'Filles ayant 6 ans
 
Connection
sql = "select * from eleves where niveau='" & text1 & "' and sexe='F' and (month(date_naissance) between 1 and 3) and year(date_naissance)=year(Now())-5 and (month(date_naissance)between 4 and 12) and year(date_naissance)=year(Now())-6 and date_inscription < 11/24/year(Now()) "
 
 
If rs.State = 1 Then rs.Close
rs.Open sql, DB, 1, 2
 
Dim wrdapp  As Excel.Application
Dim wrdDoc As Excel.Workbook
 
Set wrdapp = New Excel.Application
Set wrdDoc = wrdapp.Workbooks.Open(App.Path & "\rece.xls")
 
 
wrdDoc.Application.Cells(33, 4).Value = rs.RecordCount
wrdapp.Visible = True
 
Set wrdapp = Nothing
Set wrdDoc = Nothing

Le resultat:
la cellule (33,4) de la feuille Excel affiche 0, alors que j'ai dans la table eleves:
fille1:
date_naissance=02/01/2006 (condition du mois de naissance entre 1 et 3) et année de naissance = Year(now())-5
date_inscription=06/01/2010 condition de date_inscription < 24/11/year(now())
Fille2:
date_naissance=02/11/2005 condition du mois de naissance entre 4 et 12) et année de naissance = Year(now())-6
date_inscription=06/01/2009 condition de date_inscription < 24/11/year(now())

N.B:J'ai essayé les formats de date mm/dd/yyyy et dd/mm/yyyy mais rien ne change. Les signes # date # afiiche message d'erreur." syntax error in date in query expression..."

Merci.
0
cs_abou ilyas Messages postés 33 Date d'inscription vendredi 29 juin 2007 Statut Membre Dernière intervention 17 avril 2014
14 sept. 2011 à 01:14
Merci infiniment GG72
ça marche très bien je vous en suis très reconnaissant.
0
Rejoignez-nous