Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Re: Filtrer un Etat selon une date

4 réponses
Avatar
Robson
Bonjour,

Effectivement cette requête fonctionne mais un message d'erreur m'indique
que la reqûete retourne plusieurs enregistrement et qu'elle ne peut donc pas
afficher l'état (?).
Mais si je me débrouille pour donner une fourchette de dates qui ne concerne
qu'un seul enregistrement, la requête est exécutée mais le filtre ne
fonctionne pas : l'état me sort tous les enregistrements...

A la base, mon formulaire qui lance l'état est basé sur une table
(chantier). Devrait-il en être autrement ?

Voici mon bout de code et merci d'avance.

DoCmd.OpenReport stDocName, acPreview, , "SELECT Chantier.id_chantier FROM
Chantier WHERE Chantier.date_deb Between #" & Format(date1, "mm/dd/yyyy") &
"# And #" & Format(date2, "mm/dd/yyyy") & "#;"

MERCI

4 réponses

Avatar
Gilles

Bonjour,

Effectivement cette requête fonctionne mais un message d'erreur m'indique
que la reqûete retourne plusieurs enregistrement et qu'elle ne peut donc pas
afficher l'état (?).
Mais si je me débrouille pour donner une fourchette de dates qui ne concerne
qu'un seul enregistrement, la requête est exécutée mais le filtre ne
fonctionne pas : l'état me sort tous les enregistrements...

A la base, mon formulaire qui lance l'état est basé sur une table
(chantier). Devrait-il en être autrement ?

Voici mon bout de code et merci d'avance.

DoCmd.OpenReport stDocName, acPreview, , "SELECT Chantier.id_chantier FROM
Chantier WHERE Chantier.date_deb Between #" & Format(date1, "mm/dd/yyyy") &
"# And #" & Format(date2, "mm/dd/yyyy") & "#;"

MERCI


Bonjour, Robson

l'argument WhereCondition de l'instruction OpenReport doit contenir une
condition et non une requête SQL complète. En fait, il s'agit uniquement de
la clause Where de ta requête.
Dans ton cas, cela donne:
DoCmd.OpenReport stDocName, acPreview, , "Chantier.date_deb Between #" & _
Format(date1, "mm/dd/yyyy") &"# And #" & Format(date2, "mm/dd/yyyy") & "#"
(le point virgule de fin n'est pas nécessaire)

Bonne continuation

Avatar
Jennam
Bonjour Gilles et merci d'avoir pris le temps de me répondre

J'ai donc remplacé cette syntaxe par la suivante :
DoCmd.OpenReport stDocName, acPreview, ,"[Chantier.date_deb] Between #" &
Format(date1, "mm/dd/yyyy") & "# And #" & Format(date2, "mm/dd/yyyy") & "#"

Ca me génère une erreur :
"Erreur de syntaxe dans l'expression '([Chantier.date_deb] Between
#01/01/2004# AND #12/31/2004#);'."

Pourtant la requête :
SELECT Chantier.id_chantier FROM Chantier
WHERE Chantier.date_deb Between #01/01/2004# And #12/31/2004#;

Fonctionne correctement et me donne les résultats que je souhaite !
Hmmmmmm...

Je ne comprends pas...



"Gilles" a écrit dans le message de news:


Bonjour,

Effectivement cette requête fonctionne mais un message d'erreur
m'indique


que la reqûete retourne plusieurs enregistrement et qu'elle ne peut donc
pas


afficher l'état (?).
Mais si je me débrouille pour donner une fourchette de dates qui ne
concerne


qu'un seul enregistrement, la requête est exécutée mais le filtre ne
fonctionne pas : l'état me sort tous les enregistrements...

A la base, mon formulaire qui lance l'état est basé sur une table
(chantier). Devrait-il en être autrement ?

Voici mon bout de code et merci d'avance.

DoCmd.OpenReport stDocName, acPreview, , "SELECT Chantier.id_chantier
FROM


Chantier WHERE Chantier.date_deb Between #" & Format(date1,
"mm/dd/yyyy") &


"# And #" & Format(date2, "mm/dd/yyyy") & "#;"

MERCI


Bonjour, Robson

l'argument WhereCondition de l'instruction OpenReport doit contenir une
condition et non une requête SQL complète. En fait, il s'agit uniquement
de

la clause Where de ta requête.
Dans ton cas, cela donne:
DoCmd.OpenReport stDocName, acPreview, , "Chantier.date_deb Between #" & _
Format(date1, "mm/dd/yyyy") &"# And #" & Format(date2, "mm/dd/yyyy") &
"#"

(le point virgule de fin n'est pas nécessaire)

Bonne continuation



Avatar
Gilles
Bonjour Gilles et merci d'avoir pris le temps de me répondre

J'ai donc remplacé cette syntaxe par la suivante :
DoCmd.OpenReport stDocName, acPreview, ,"[Chantier.date_deb] Between #" &
Format(date1, "mm/dd/yyyy") & "# And #" & Format(date2, "mm/dd/yyyy") &
"#"


Ca me génère une erreur :
"Erreur de syntaxe dans l'expression '([Chantier.date_deb] Between
#01/01/2004# AND #12/31/2004#);'."

Pourtant la requête :
SELECT Chantier.id_chantier FROM Chantier
WHERE Chantier.date_deb Between #01/01/2004# And #12/31/2004#;

Fonctionne correctement et me donne les résultats que je souhaite !
Hmmmmmm...

Je ne comprends pas...



Re-bonjour,

Il faut enlever le point-virgule à la fin de la condition et cela devrait
fonctionner.

OK?

Avatar
Robson
Merci beaucoup Gille pour ce coup d'oeil et ce coup de main. Ca fait des
jours que je bosse sur cette appli et que j'avais ce petit souci ! Tout ça
pour un début de requête trop long et un vieux ";". Arggg

MERCI


"Gilles" a écrit dans le message de news:
ubGehh$
Bonjour Gilles et merci d'avoir pris le temps de me répondre

J'ai donc remplacé cette syntaxe par la suivante :
DoCmd.OpenReport stDocName, acPreview, ,"[Chantier.date_deb] Between #"
&


Format(date1, "mm/dd/yyyy") & "# And #" & Format(date2, "mm/dd/yyyy") &
"#"


Ca me génère une erreur :
"Erreur de syntaxe dans l'expression '([Chantier.date_deb] Between
#01/01/2004# AND #12/31/2004#);'."

Pourtant la requête :
SELECT Chantier.id_chantier FROM Chantier
WHERE Chantier.date_deb Between #01/01/2004# And #12/31/2004#;

Fonctionne correctement et me donne les résultats que je souhaite !
Hmmmmmm...

Je ne comprends pas...



Re-bonjour,

Il faut enlever le point-virgule à la fin de la condition et cela devrait
fonctionner.

OK?