Requête SQL qui ne fonctionne pas

radcur Messages postés 282 Date d'inscription lundi 29 septembre 2003 Statut Membre Dernière intervention 15 août 2012 - 12 avril 2006 à 16:12
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 - 19 avril 2006 à 00:08
Bonjour à tous,

J'utilise vb2005.

j'ai un problème de requête que je ne peux m'expliquer.... je dois filtrer avec une date de début et une date de fin mais ça ne retourne rien.

cette requête sans date fonctionne. Elle me retourne tous les enregistrements de tous les agents peu importe la date.

ReqAgents =
"select agents.*,appels.* " & _



" from agents,appels where groupe_coaching=" & bidon(1) & _



" and agents.id_agent=appels.id_agent order by agents.id_agent"

Cette requête ci-dessous est focntionnelle, elle me retourne tous les enregistrements de tous les agents depuis la date demandée.

ReqAgents =
"select agents.*,appels.* " & _



" from agents,appels where groupe_coaching=" & bidon(1) & _



" and agents.id_agent=appels.id_agent and date >= " & _


DteDebut &
" order by agents.id_agent"

Là où ça se complique c'est ici :


ReqAgents =
"select agents.*,appels.* " & _



" from agents,appels where groupe_coaching=" & bidon(1) & _



" and agents.id_agent=appels.id_agent and date >= " & _


DteDebut &
" and date <= " & dtefin & " order by agents.id_agent"

OU


ReqAgents = "select agents.*,appels.* " & _



" from agents,appels where groupe_coaching=" & bidon(1) & _



" and agents.id_agent=appels.id_agent and date between " & _


DteDebut &
" and " & dtefin & " order by agents.id_agent"

Ces 2 requêtes ne retournent rien alors qu'elles devraient me retourner 2 enregistrements. Peu importe la date que j'entre en date de début et en date de fin, je n'ai aucun enregistrements.

Si quelqu'un peut m'aider.

merci.

10 réponses

cs_jordinette Messages postés 134 Date d'inscription mercredi 2 mars 2005 Statut Membre Dernière intervention 5 avril 2007
12 avril 2006 à 16:21
Bonjour,
c'est un problème de syntaxe! mettre la date entre #!
ReqAgents = "select agents.*,appels.* " & _

" from agents,appels where groupe_coaching=" & bidon(1) & _

" and agents.id_agent=appels.id_agent and date between #" & _

DteDebut & "# and #" & dtefin & "# order by agents.id_agent"

Jordinette
0
beepcool Messages postés 6 Date d'inscription lundi 21 juillet 2003 Statut Membre Dernière intervention 12 avril 2006
12 avril 2006 à 16:25
salut,

la solution de Jordinette est valable pour Access, mais pas pour d'autre base de données. Quel base de données utilises-tu ?

Beepcool
0
radcur Messages postés 282 Date d'inscription lundi 29 septembre 2003 Statut Membre Dernière intervention 15 août 2012 2
12 avril 2006 à 16:33
Sql server 2005 express
0
radcur Messages postés 282 Date d'inscription lundi 29 septembre 2003 Statut Membre Dernière intervention 15 août 2012 2
12 avril 2006 à 17:14
Jordinette : ce n'est pas un problème de synthaxe car si je fais ma requete avec seulement dtedebut, ca fonctionne.
0

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

Posez votre question
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
12 avril 2006 à 18:19
sinon formate tes variables de dates dans ton programme.


genre au format YYYY-MM-DD





au fait, es tu sur que tes champs Date sont bien au format date ou datetime ?
0
radcur Messages postés 282 Date d'inscription lundi 29 septembre 2003 Statut Membre Dernière intervention 15 août 2012 2
12 avril 2006 à 18:22
aieeeuuuuu :

Oui je suis certain puisque si je met une date de début seulement, ca fonctionne, il sort des enregistrements.
0
aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
13 avril 2006 à 18:34
oui, en fait j'avais une idee derriere la tete en posant cette question.

quand tu as des resultats bizares avec les dates, ca peut venir du fait que la comparaison ne se fait pas en tant que date, mais en tant que chaine de caracteres.

par exemple, dans un tel classement, "12/04/06" sera classé avant "23/03/06" car il compare le 1 de 12 avec le 2 de 23, alors que si il compare en tant que date, il classera le 23/03/06 avant le 12/04/06

c'est un piste, fait des tests pour voir si le probleme ne vient pas de la.
0
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
14 avril 2006 à 00:10
Salut 171613 radcur, salut à tous les autres (et à toutes),

comme me le rappelle souvent jperre=663949 (http://www.vbfrance.com/auteurdetail.aspx?ID=663949), le format de la date a de forte chance d'être le format anglais (mm/dd/yyyy).

sinon, poses-ta question chez les costauds : http://www.sqlfr.com

à+


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais... mais jamais avant la page 4
</SUP>
0
gilmerl Messages postés 30 Date d'inscription vendredi 17 décembre 2004 Statut Membre Dernière intervention 2 mai 2007
18 avril 2006 à 17:34
slt
jai un probleme similaire mais dans mon cas ma requête m'affiche des dates mais qui ne sont contenues dans la fourchette que je spécifie. je soupconne que ca prend le format anglais et si tel est le cas , je voudrais savoir comment lui imposer le format dd/mm/yyyy dans ma requête. merci de me venir en aide
0
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
19 avril 2006 à 00:08
Salut 405287 gilmerl,
je pense que c'est exactement le contraire qu'il faut faire. C'est à toi de t'imposer son format! C'est quand même moins compliqué.

Rappel des normes retenues par le standard SQL-92 :
ISO 8601:1988 et EDIFACT : aaaa-mm-jj
ISO-2711-1973 : aaaa-qqq (appelé format ordinal) (q = quantième de l'année, 001-366)
ANSI X3.30-1971 : aaaa-mm-dd (appelé format calendaire)

PS : ça, c'est juste pour t'embrouiller :)
à+


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais... mais jamais avant la page 4
</SUP>
0
Rejoignez-nous