OVH Cloud OVH Cloud

Requêtes & Formulaires

4 réponses
Avatar
jpg
Bonjour,

J'ai une requ=EAte qui devra s'appuyer sur des crit=E8res de=20
s=E9lection saisis dans un formulaire.

Dans ce formulaire j'ai 3 champs :
2 zones de texte : date_d=E9b et date_fin
1 case =E0 cocher : date_null

Dans le cas o=F9 date_null est coch=E9e, j'aimerais obtenir=20
les enregistrements vides, sinon les enregistrements entre=20
date_d=E9b et date_fin.

Que dois-je mettre dans le crit=E8re de ma requ=EAte ?

J'ai fait deux essais :

1- dans le crit=E8re de ma requ=EAte :

VraiFaux([Formulaires]![Form1]![date_null]=3D-1;Est=20
Null;Entre [Formulaires]![Form1]![date_d=E9b] Et=20
[Formulaires]![Form1]![date_fin])

2 - en me cr=E9ant un champ dans mon=20
formulaire "date_crit=E8re" qui calcule la syntaxe exacte du=20
style :
"est null" ou "entre #01/01/2004# et #31/01/2004#"
et en mettant dans le crit=E8re de ma requ=EAte
=3D[Formulaires]![Form1]![date_crit=E8re]

Mais aucune de ces deux solutions ne marche.

Quelqu'un peut-il m'aider sachant que je ne souhaite pas=20
ex=E9cuter du SQL dans mon code (question de maintenance de=20
ma base).

Merci beaucoup pour votre aide.

4 réponses

Avatar
Raymond [mvp]
bonjour.
en mode création access il faut mettre dans la colonne Madate par exemple:
Est Null Ou Entre #01/05/2004# Et #31/05/2004#
ce qui donne en sql:
WHERE (((table1.Madate) Is Null Or (table1.Madate) Between #5/1/2004# And
#5/31/2004#));

tu peux également indiquer :
Est Null Ou Entre [Formulaires]![Form1]![date_déb] Et
[Formulaires]![Form1]![date_fin]
les dates seront composées en format jj/mm/aaaa
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"jpg" a écrit dans le message de
news:1295401c4430c$6b5c5be0$
Bonjour,

J'ai une requête qui devra s'appuyer sur des critères de
sélection saisis dans un formulaire.

Dans ce formulaire j'ai 3 champs :
2 zones de texte : date_déb et date_fin
1 case à cocher : date_null

Dans le cas où date_null est cochée, j'aimerais obtenir
les enregistrements vides, sinon les enregistrements entre
date_déb et date_fin.

Que dois-je mettre dans le critère de ma requête ?

J'ai fait deux essais :

1- dans le critère de ma requête :

VraiFaux([Formulaires]![Form1]![date_null]=-1;Est
Null;Entre [Formulaires]![Form1]![date_déb] Et
[Formulaires]![Form1]![date_fin])

2 - en me créant un champ dans mon
formulaire "date_critère" qui calcule la syntaxe exacte du
style :
"est null" ou "entre #01/01/2004# et #31/01/2004#"
et en mettant dans le critère de ma requête
=[Formulaires]![Form1]![date_critère]

Mais aucune de ces deux solutions ne marche.

Quelqu'un peut-il m'aider sachant que je ne souhaite pas
exécuter du SQL dans mon code (question de maintenance de
ma base).

Merci beaucoup pour votre aide.
Avatar
jpg
Bonsoir Raymond,

Merci pour ta réponse, mais

Est Null Ou Entre #01/05/2004# Et #31/05/2004#

me donne tous les enregistrements vides et ceux compris
dans ma tranche de dte.

Ma demande était de rappatrier les enregistrements null si
la case du form était cochée. Sinon rappatrier les enreg
compris entre les deux dates saisies (et tout ceci par le
mode création, comme de bien entendu !)

Merci pour ton aide et bravo pour ton nouveau site.

Allez-y tous !
http://access.vba.free.fr/




-----Message d'origine-----
bonjour.
en mode création access il faut mettre dans la colonne
Madate par exemple:

Est Null Ou Entre #01/05/2004# Et #31/05/2004#
ce qui donne en sql:
WHERE (((table1.Madate) Is Null Or (table1.Madate)
Between #5/1/2004# And

#5/31/2004#));

tu peux également indiquer :
Est Null Ou Entre [Formulaires]![Form1]![date_déb] Et
[Formulaires]![Form1]![date_fin]
les dates seront composées en format jj/mm/aaaa
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"jpg" a écrit dans
le message de

news:1295401c4430c$6b5c5be0$
Bonjour,

J'ai une requête qui devra s'appuyer sur des critères de
sélection saisis dans un formulaire.

Dans ce formulaire j'ai 3 champs :
2 zones de texte : date_déb et date_fin
1 case à cocher : date_null

Dans le cas où date_null est cochée, j'aimerais obtenir
les enregistrements vides, sinon les enregistrements entre
date_déb et date_fin.

Que dois-je mettre dans le critère de ma requête ?

J'ai fait deux essais :

1- dans le critère de ma requête :

VraiFaux([Formulaires]![Form1]![date_null]=-1;Est
Null;Entre [Formulaires]![Form1]![date_déb] Et
[Formulaires]![Form1]![date_fin])

2 - en me créant un champ dans mon
formulaire "date_critère" qui calcule la syntaxe exacte du
style :
"est null" ou "entre #01/01/2004# et #31/01/2004#"
et en mettant dans le critère de ma requête
=[Formulaires]![Form1]![date_critère]

Mais aucune de ces deux solutions ne marche.

Quelqu'un peut-il m'aider sachant que je ne souhaite pas
exécuter du SQL dans mon code (question de maintenance de
ma base).

Merci beaucoup pour votre aide.





.



Avatar
Raymond [mvp]
je t'ai enfin trouvé quelque chose de compliqué mais qui marche.
SELECT table1.*
FROM table1
WHERE (((IIf(IsNull([madate]),#12/31/1899#,[madate])) Between
[Formulaires]![Form1]![date_déb] And [Formulaires]![Form1]![date_fin]));

toutes les dates Null sont transformées en 31/12/1899.
pour avoir les null il suffit de composer la plage de dates du 31/12/1899 au
31/12/1899 ( que tu peux mettre en automatique dans ton formulaire si la
case est cochée).
sinon tu composes la plage normale de dates.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"jpg" a écrit dans le message de
news:1379a01c4440e$3b46e7b0$
Bonsoir Raymond,

Merci pour ta réponse, mais

Est Null Ou Entre #01/05/2004# Et #31/05/2004#

me donne tous les enregistrements vides et ceux compris
dans ma tranche de dte.

Ma demande était de rappatrier les enregistrements null si
la case du form était cochée. Sinon rappatrier les enreg
compris entre les deux dates saisies (et tout ceci par le
mode création, comme de bien entendu !)
Avatar
jpg
BRAVO RAYMOND !!!!

IMPECCABLE !

Merci beaucoup.



-----Message d'origine-----
je t'ai enfin trouvé quelque chose de compliqué mais qui
marche.

SELECT table1.*
FROM table1
WHERE (((IIf(IsNull([madate]),#12/31/1899#,[madate]))
Between

[Formulaires]![Form1]![date_déb] And [Formulaires]!
[Form1]![date_fin]));


toutes les dates Null sont transformées en 31/12/1899.
pour avoir les null il suffit de composer la plage de
dates du 31/12/1899 au

31/12/1899 ( que tu peux mettre en automatique dans ton
formulaire si la

case est cochée).
sinon tu composes la plage normale de dates.
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"jpg" a écrit dans
le message de

news:1379a01c4440e$3b46e7b0$
Bonsoir Raymond,

Merci pour ta réponse, mais

Est Null Ou Entre #01/05/2004# Et #31/05/2004#

me donne tous les enregistrements vides et ceux compris
dans ma tranche de dte.

Ma demande était de rappatrier les enregistrements null si
la case du form était cochée. Sinon rappatrier les enreg
compris entre les deux dates saisies (et tout ceci par le
mode création, comme de bien entendu !)



.