OVH Cloud OVH Cloud

Zone de liste multiple avec fourchettes de dates

5 réponses
Avatar
Jean-Marc Charrier
Bonjour,

Je sais gérer une zone de liste à sélection multiple : par ex la sélection
de toutes les personnes sélectionnées.

Mais j'aimerais également que cette sélection tienne compte d'une fourchette
de dates.
Ca marche lorsque je sélectionne une seule personne mais dès que j'en
sélectionne deux ou plus, le critère de dates ne s'applique qu'avec la
première personne sélectionnée et pas avec les suivantes ?

Voici le code :
chSQL = "SELECT * from RqProg WHERE " & ListeMultiple("Pnom", "=",
Me.ListeNoms, 0, "integer") & "AND [DateDiff] >= #" & DateTempo1 & "#" &
"AND [DateDiff] <=#" & DateTempo2 & "#"

ListeMultiple étant une fonction qui sélectionne les différentes personnes
sélectionnées ds la liste.


Merci pour votre aide

JM

5 réponses

Avatar
Jessy Sempere [MVP]
Bonjour

Le problème vien du fait qu'il faut rajouter des parenthèses pour regrouper en
un critère ta sélection multiple...

Je suppose que ta fonction perso te retourne un truc du genre :
pnom = 'toto' ou pnom = 'titi'

Essais de cette manière :

chSQL = "SELECT * from RqProg WHERE (" & ListeMultiple("Pnom", "=",
Me.ListeNoms, 0, "integer") & ") AND [DateDiff] >= #" & DateTempo1 & "#" &
"AND [DateDiff] <=#" & DateTempo2 & "#"


--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Jean-Marc Charrier" a écrit dans le message news:

Bonjour,

Je sais gérer une zone de liste à sélection multiple : par ex la sélection
de toutes les personnes sélectionnées.

Mais j'aimerais également que cette sélection tienne compte d'une fourchette
de dates.
Ca marche lorsque je sélectionne une seule personne mais dès que j'en
sélectionne deux ou plus, le critère de dates ne s'applique qu'avec la
première personne sélectionnée et pas avec les suivantes ?

Voici le code :
chSQL = "SELECT * from RqProg WHERE " & ListeMultiple("Pnom", "=",
Me.ListeNoms, 0, "integer") & "AND [DateDiff] >= #" & DateTempo1 & "#" &
"AND [DateDiff] <=#" & DateTempo2 & "#"

ListeMultiple étant une fonction qui sélectionne les différentes personnes
sélectionnées ds la liste.


Merci pour votre aide

JM




Avatar
Jean-Marc Charrier
Génial, ça marche !

Pourtant, je ne vois pas ce que change les parenthèses ??

Tu peux m'expliquer (brièvement) ?

La fonction fait bien ce que tu disais !

Encore merci
"Jessy Sempere [MVP]" a écrit dans le message de
news:cis30j$l3q$
Bonjour

Le problème vien du fait qu'il faut rajouter des parenthèses pour
regrouper en

un critère ta sélection multiple...

Je suppose que ta fonction perso te retourne un truc du genre :
pnom = 'toto' ou pnom = 'titi'

Essais de cette manière :

chSQL = "SELECT * from RqProg WHERE (" & ListeMultiple("Pnom", "=",
Me.ListeNoms, 0, "integer") & ") AND [DateDiff] >= #" & DateTempo1 & "#"
&

"AND [DateDiff] <=#" & DateTempo2 & "#"


--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Jean-Marc Charrier" a écrit dans le message
news:


Bonjour,

Je sais gérer une zone de liste à sélection multiple : par ex la
sélection


de toutes les personnes sélectionnées.

Mais j'aimerais également que cette sélection tienne compte d'une
fourchette


de dates.
Ca marche lorsque je sélectionne une seule personne mais dès que j'en
sélectionne deux ou plus, le critère de dates ne s'applique qu'avec la
première personne sélectionnée et pas avec les suivantes ?

Voici le code :
chSQL = "SELECT * from RqProg WHERE " & ListeMultiple("Pnom", "=",
Me.ListeNoms, 0, "integer") & "AND [DateDiff] >= #" & DateTempo1 & "#"
&


"AND [DateDiff] <=#" & DateTempo2 & "#"

ListeMultiple étant une fonction qui sélectionne les différentes
personnes


sélectionnées ds la liste.


Merci pour votre aide

JM








Avatar
Jessy Sempere [MVP]
Ben en fait, sans les parenthèse tu te retrouves avec

toto ou tata ou titi and date<12/1/4

Dans un critère de ce type, access donne la priorité au and du coup si
tu l'affiches ta requête en mode création tu auras comme critère :

toto
tata
titi and date<12/1/4

C'est pour ça qu'il faut mettre la parenthèse, avec cette dernière tu auras :

toto and date<12/1/4
tata and date<12/1/4
titi and date<12/1/4

Je ne sais pas si j'ai été très clair... ;-)

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Jean-Marc Charrier" a écrit dans le message news:

Génial, ça marche !

Pourtant, je ne vois pas ce que change les parenthèses ??

Tu peux m'expliquer (brièvement) ?

La fonction fait bien ce que tu disais !

Encore merci
"Jessy Sempere [MVP]" a écrit dans le message de
news:cis30j$l3q$
Bonjour

Le problème vien du fait qu'il faut rajouter des parenthèses pour
regrouper en

un critère ta sélection multiple...

Je suppose que ta fonction perso te retourne un truc du genre :
pnom = 'toto' ou pnom = 'titi'

Essais de cette manière :

chSQL = "SELECT * from RqProg WHERE (" & ListeMultiple("Pnom", "=",
Me.ListeNoms, 0, "integer") & ") AND [DateDiff] >= #" & DateTempo1 & "#"
&

"AND [DateDiff] <=#" & DateTempo2 & "#"


--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Jean-Marc Charrier" a écrit dans le message
news:


Bonjour,

Je sais gérer une zone de liste à sélection multiple : par ex la
sélection


de toutes les personnes sélectionnées.

Mais j'aimerais également que cette sélection tienne compte d'une
fourchette


de dates.
Ca marche lorsque je sélectionne une seule personne mais dès que j'en
sélectionne deux ou plus, le critère de dates ne s'applique qu'avec la
première personne sélectionnée et pas avec les suivantes ?

Voici le code :
chSQL = "SELECT * from RqProg WHERE " & ListeMultiple("Pnom", "=",
Me.ListeNoms, 0, "integer") & "AND [DateDiff] >= #" & DateTempo1 & "#"
&


"AND [DateDiff] <=#" & DateTempo2 & "#"

ListeMultiple étant une fonction qui sélectionne les différentes
personnes


sélectionnées ds la liste.


Merci pour votre aide

JM












Avatar
Jessy Sempere [MVP]
Pour résumé c'est comme les calculs, les + correspondent au "ou"
et le multiplié correspond au "and"

Si tu écris :

1+2+3*4
tu auras comme calcul réel : 1+2+(3*4) = 15

Hors toi tu veux :
(1+2+3)*4 = 24

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Jessy Sempere [MVP]" a écrit dans le message news:
citrc0$br6$
Ben en fait, sans les parenthèse tu te retrouves avec

toto ou tata ou titi and date<12/1/4

Dans un critère de ce type, access donne la priorité au and du coup si
tu l'affiches ta requête en mode création tu auras comme critère :

toto
tata
titi and date<12/1/4

C'est pour ça qu'il faut mettre la parenthèse, avec cette dernière tu auras :

toto and date<12/1/4
tata and date<12/1/4
titi and date<12/1/4

Je ne sais pas si j'ai été très clair... ;-)

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Jean-Marc Charrier" a écrit dans le message news:

Génial, ça marche !

Pourtant, je ne vois pas ce que change les parenthèses ??

Tu peux m'expliquer (brièvement) ?

La fonction fait bien ce que tu disais !

Encore merci
"Jessy Sempere [MVP]" a écrit dans le message de
news:cis30j$l3q$
Bonjour

Le problème vien du fait qu'il faut rajouter des parenthèses pour
regrouper en

un critère ta sélection multiple...

Je suppose que ta fonction perso te retourne un truc du genre :
pnom = 'toto' ou pnom = 'titi'

Essais de cette manière :

chSQL = "SELECT * from RqProg WHERE (" & ListeMultiple("Pnom", "=",
Me.ListeNoms, 0, "integer") & ") AND [DateDiff] >= #" & DateTempo1 & "#"
&

"AND [DateDiff] <=#" & DateTempo2 & "#"


--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Jean-Marc Charrier" a écrit dans le message
news:


Bonjour,

Je sais gérer une zone de liste à sélection multiple : par ex la
sélection


de toutes les personnes sélectionnées.

Mais j'aimerais également que cette sélection tienne compte d'une
fourchette


de dates.
Ca marche lorsque je sélectionne une seule personne mais dès que j'en
sélectionne deux ou plus, le critère de dates ne s'applique qu'avec la
première personne sélectionnée et pas avec les suivantes ?

Voici le code :
chSQL = "SELECT * from RqProg WHERE " & ListeMultiple("Pnom", "=",
Me.ListeNoms, 0, "integer") & "AND [DateDiff] >= #" & DateTempo1 & "#"
&


"AND [DateDiff] <=#" & DateTempo2 & "#"

ListeMultiple étant une fonction qui sélectionne les différentes
personnes


sélectionnées ds la liste.


Merci pour votre aide

JM
















Avatar
JMC
Parfait !

Merci pour tes lumières

JM
"Jessy Sempere [MVP]" a écrit dans le message de
news:citrc0$br6$
Ben en fait, sans les parenthèse tu te retrouves avec

toto ou tata ou titi and date<12/1/4

Dans un critère de ce type, access donne la priorité au and du coup si
tu l'affiches ta requête en mode création tu auras comme critère :

toto
tata
titi and date<12/1/4

C'est pour ça qu'il faut mettre la parenthèse, avec cette dernière tu
auras :


toto and date<12/1/4
tata and date<12/1/4
titi and date<12/1/4

Je ne sais pas si j'ai été très clair... ;-)

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Jean-Marc Charrier" a écrit dans le message
news:


Génial, ça marche !

Pourtant, je ne vois pas ce que change les parenthèses ??

Tu peux m'expliquer (brièvement) ?

La fonction fait bien ce que tu disais !

Encore merci
"Jessy Sempere [MVP]" a écrit dans le
message de


news:cis30j$l3q$
Bonjour

Le problème vien du fait qu'il faut rajouter des parenthèses pour
regrouper en

un critère ta sélection multiple...

Je suppose que ta fonction perso te retourne un truc du genre :
pnom = 'toto' ou pnom = 'titi'

Essais de cette manière :

chSQL = "SELECT * from RqProg WHERE (" & ListeMultiple("Pnom", "=",
Me.ListeNoms, 0, "integer") & ") AND [DateDiff] >= #" & DateTempo1 &
"#"



&
"AND [DateDiff] <=#" & DateTempo2 & "#"


--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Jean-Marc Charrier" a écrit dans le message
news:


Bonjour,

Je sais gérer une zone de liste à sélection multiple : par ex la
sélection


de toutes les personnes sélectionnées.

Mais j'aimerais également que cette sélection tienne compte d'une
fourchette


de dates.
Ca marche lorsque je sélectionne une seule personne mais dès que
j'en




sélectionne deux ou plus, le critère de dates ne s'applique qu'avec
la




première personne sélectionnée et pas avec les suivantes ?

Voici le code :
chSQL = "SELECT * from RqProg WHERE " & ListeMultiple("Pnom", "=",
Me.ListeNoms, 0, "integer") & "AND [DateDiff] >= #" & DateTempo1 &
"#"




&
"AND [DateDiff] <=#" & DateTempo2 & "#"

ListeMultiple étant une fonction qui sélectionne les différentes
personnes


sélectionnées ds la liste.


Merci pour votre aide

JM