Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Requete avec plusieurs critères

17 views
Skip to first unread message

albert

unread,
Sep 12, 2020, 11:18:29 AM9/12/20
to
Bonjour
J'ai un petit problème avec la requête suivante qui fonctionne bien, mais
j'aimerais améliorer (problème de pandémie):


PARAMETERS [Date de début(Format aa-mm-jj)] DateTime, [Date de fin(Format
aa-mm-jj)] DateTime;
SELECT CapitaliserNom([lastname]) & ", " & CapitaliserPrénom([firstname]) AS
NomComplet, TBLcotisation.DateCotisation, TBLcotisation.MontantCotisation,
TBLmbcc.JOINDATE, TBLcotisation.ArgentCheque, TBLcotisation.Note1,
TBLcotisation.Note2, TBLcotisation.ID
FROM TBLmbcc RIGHT JOIN TBLcotisation ON TBLmbcc.Numéro =
TBLcotisation.Numéro
WHERE (((TBLcotisation.DateCotisation) Between [date de début(Format
aa-mm-jj)] And [Date de fin(Format aa-mm-jj)]))
ORDER BY TBLcotisation.DateCotisation, TBLcotisation.ID;

J'apprécierais que TBLmbcc.JOINDATE, s'affiche seulement si la date est
supérieure à ">2019-04-01"
si la date est inférieure n'affiche rien.

sans affecter le reste de la requête.

Merci

--
albertri-at-videotron.ca.invalid

db

unread,
Sep 12, 2020, 12:00:07 PM9/12/20
to
Bonjour,

Essayez en remplaçant :
TBlmbcc.JOINDATE
par
iif(TBLmbcc.JOINDATE>#2019-04-01#,TBLmcc.JOINDATE,"") as JOINDATE

db

Michel__D

unread,
Sep 12, 2020, 12:03:12 PM9/12/20
to
Bonjour,

Le 12/09/2020 à 17:18, albert a écrit :
Remplace dans ta requête la table TBLmbcc par une requête qui prendra en compte ton critère de date.

albert

unread,
Sep 12, 2020, 3:07:50 PM9/12/20
to
Merci db
À 87 je m'en viens plus vieux qu'avant... voir à la fin

"db" <blue_mo...@hotmail.com> a écrit dans le message de
news:5f5cf086$0$4042$426a...@news.free.fr...
Il y a quelques années vous m'aviez fourni le texte suivant que j'ai utilisé
alors et aussi aujourd'hui, ce qui me fait dire que je vieilli.
Je crois que cela est de la mise en forme conditionnelle pour ACCESS.
,
Nouveaux: VraiFaux([TBLmbcc].[joinDATE]>=(Année(Date())-1) &
"-03-01";[joinDATE];Null)

Ça fait le travail. mais j'ai un nouveau problème, depuis que j'ai ajouté
cela je suis obligé d'entrer deux fois Date de début et la Date de fin.
Quelle peut être la cause ?
Le SQL suit:

PARAMETERS [Date de début(Format aa-mm-jj)] DateTime, [Date de fin(Format
aa-mm-jj)] DateTime;
SELECT CapitaliserNom([lastname]) & ", " & CapitaliserPrénom([firstname]) AS
NomComplet, TBLcotisation.DateCotisation, TBLcotisation.MontantCotisation,
IIf([TBLmbcc].[joinDATE]>=(Year(Date())-1) & "-03-01",[joinDATE],Null) AS
Nouveaux, TBLcotisation.ArgentCheque, TBLcotisation.Note1,
TBLcotisation.Note2, TBLcotisation.ID
FROM TBLmbcc RIGHT JOIN TBLcotisation ON TBLmbcc.Numéro =
TBLcotisation.Numéro
WHERE (((TBLcotisation.DateCotisation) Between [date de début(Format
aa-mm-jj)] And [Date de fin(Format aa-mm-jj)]))
ORDER BY TBLcotisation.DateCotisation, TBLcotisation.ID;

Un grand merci

--
albertri-at-videotron.ca.invalid

db

unread,
Sep 13, 2020, 3:47:13 AM9/13/20
to
Bonjour,

Je ne vois pas pourquoi cette modification provoquerait la double
demande de paramètres, mais je m'interroge sur le RIGHT JOIN de la jointure.
Telle qu'elle est écrite, avec des critères sur la table en jointure
externe, il me semble que le résultat ne doit pas être différent d'une
jointure interne classique - et cette dernière serait plus rapide. Ce
serait intéressant de le vérifier.

db

albert

unread,
Sep 13, 2020, 1:21:16 PM9/13/20
to
Bonjoour db
"db" <blue_mo...@hotmail.com> a écrit dans le message de
news:5f5dce80$0$9516$426a...@news.free.fr...
> Bonjour,
>
> Je ne vois pas pourquoi cette modification provoquerait la double demande
> de paramètres, mais je m'interroge sur le RIGHT JOIN de la jointure.
> Telle qu'elle est écrite, avec des critères sur la table en jointure
> externe, il me semble que le résultat ne doit pas être différent d'une
> jointure interne classique - et cette dernière serait plus rapide. Ce
> serait intéressant de le vérifier.
>
> db
Je n'ai jamaiss eu de formation en informatique, juste des initiations à
dBaseIII, à Symphonie, et à Databus.
J'étais technicien télégraphiste et remercié en 1989 cause Internet.
En 2007 un confrère me donna un Access 2007, il voulait que je l'aide à
faire ses requêtes ce que réussi à faire en Mode Création et je devais allé
chez lui mettre cela dans son ordinateur.
Sur MPFA j'ai découvert par Eric et Fabien en 2009 que je pouvais
transmettre les requêtes en Mode SQL.
Je fais toujours mes requêtes en mode CRÉATION mais je regarde ensuite
comment Access traduit cela en SQL.

Je n'ai pas encore la compétence pour créer mes requêtes en SQL, mais je
regarde toujours le résultat.

J'ai hâte d'avoir mes deux yeux l'autre sera opéré bientôt, cause pandémie,
j'ai de la difficulté à lire.


Dans ce qui suit la requête #2 fonctionne bien depuis que j'ai déplacé
Nouveaux sur la 2e colonne.

La dernière Modification avec db original génère la demande de paramètres
pour Joindate
(Entrer une valeur de paramètres, TBLMC Joindate)
J'ai changé aussi le guilemets pour NULL pour pouvoir les compter

QRY_Cotisation_payées

Debut de saison 2020 août

PARAMETERS [Date de début(Format aa-mm-jj)] DateTime, [Date de fin(Format
aa-mm-jj)] DateTime;
SELECT CapitaliserNom([lastname]) & ", " & CapitaliserPrénom([firstname]) AS
NomComplet, TBLcotisation.DateCotisation, TBLcotisation.MontantCotisation,
TBLcotisation.ArgentCheque, TBLcotisation.Note1, TBLcotisation.Note2,
TBLcotisation.ID
FROM TBLmbcc RIGHT JOIN TBLcotisation ON TBLmbcc.Numéro =
TBLcotisation.Numéro
WHERE (((TBLcotisation.DateCotisation) Between [date de début(Format
aa-mm-jj)] And [Date de fin(Format aa-mm-jj)]))
ORDER BY TBLcotisation.DateCotisation, TBLcotisation.ID;

Modification #1 Ajout de Joindate

PARAMETERS [Date de début(Format aa-mm-jj)] DateTime, [Date de fin(Format
aa-mm-jj)] DateTime;
SELECT CapitaliserNom([lastname]) & ", " & CapitaliserPrénom([firstname]) AS
NomComplet, TBLcotisation.DateCotisation, TBLcotisation.MontantCotisation,
TBLmbcc.JOINDATE, TBLcotisation.ArgentCheque, TBLcotisation.Note1,
TBLcotisation.Note2, TBLcotisation.ID
FROM TBLmbcc RIGHT JOIN TBLcotisation ON TBLmbcc.Numéro =
TBLcotisation.Numéro
WHERE (((TBLcotisation.DateCotisation) Between [date de début(Format
aa-mm-jj)] And [Date de fin(Format aa-mm-jj)]))
ORDER BY TBLcotisation.DateCotisation, TBLcotisation.ID;

Modification #2 ajou de IIF a joindate

PARAMETERS [Date de début(Format aa-mm-jj)] DateTime, [Date de fin(Format
aa-mm-jj)] DateTime;
SELECT CapitaliserNom([lastname]) & ", " & CapitaliserPrénom([firstname]) AS
NomComplet, IIf([TBLmbcc].[joinDATE]>=(Year(Date())) &
"-03-01",[joinDATE],Null) AS Nouveaux, TBLcotisation.DateCotisation,
TBLcotisation.MontantCotisation, TBLcotisation.ArgentCheque,
TBLcotisation.Note1, TBLcotisation.Note2, TBLcotisation.ID
FROM TBLmbcc RIGHT JOIN TBLcotisation ON TBLmbcc.Numéro =
TBLcotisation.Numéro
WHERE (((TBLcotisation.DateCotisation) Between [date de début(Format
aa-mm-jj)] And [Date de fin(Format aa-mm-jj)]))
ORDER BY TBLcotisation.DateCotisation, TBLcotisation.ID;

Modification avec db original(seule la date a été changée)et"" remplacé par
NULL

PARAMETERS [Date de début(Format aa-mm-jj)] DateTime, [Date de fin(Format
aa-mm-jj)] DateTime;
SELECT CapitaliserNom([lastname]) & ", " & CapitaliserPrénom([firstname]) AS
NomComplet,iif(TBLmbcc.JOINDATE>#2020-03-01#,TBLmcc.JOINDATE,"") as
JOINDATE, TBLcotisation.DateCotisation, TBLcotisation.MontantCotisation,
TBLcotisation.ArgentCheque, TBLcotisation.Note1, TBLcotisation.Note2,
TBLcotisation.ID
FROM TBLmbcc RIGHT JOIN TBLcotisation ON TBLmbcc.Numéro =
TBLcotisation.Numéro
WHERE (((TBLcotisation.DateCotisation) Between [date de début(Format
aa-mm-jj)] And [Date de fin(Format aa-mm-jj)]))
ORDER BY TBLcotisation.DateCotisation, TBLcotisation.ID;


Ungrand merci

albert


--
albertri-at-videotron.ca.invalid





db

unread,
Sep 14, 2020, 5:00:56 AM9/14/20
to
Le 13/09/2020 à 19:21, albert a écrit :

>
> PARAMETERS [Date de début(Format aa-mm-jj)] DateTime, [Date de
> fin(Format aa-mm-jj)] DateTime;
> SELECT CapitaliserNom([lastname]) & ", " &
> CapitaliserPrénom([firstname]) AS
> NomComplet,iif(TBLmbcc.JOINDATE>#2020-03-01#,TBLmcc.JOINDATE,"") as
> JOINDATE, TBLcotisation.DateCotisation, TBLcotisation.MontantCotisation,
> TBLcotisation.ArgentCheque, TBLcotisation.Note1, TBLcotisation.Note2,
> TBLcotisation.ID
> FROM TBLmbcc RIGHT JOIN TBLcotisation ON TBLmbcc.Numéro =
> TBLcotisation.Numéro
> WHERE (((TBLcotisation.DateCotisation) Between [date de début(Format
> aa-mm-jj)] And [Date de fin(Format aa-mm-jj)]))
> ORDER BY TBLcotisation.DateCotisation, TBLcotisation.ID;
>
>
> Ungrand merci
>
> albert
>
>

Bonjour,

Dans cette dernière requête, c'est
iif(TBLmbcc.JOINDATE>#2020-03-01#,TBLmbcc.JOINDATE,"") as JOINDATE

qu'il faut écrire (faute de frappe sur le nom de la table).

db

albert

unread,
Sep 14, 2020, 7:54:17 AM9/14/20
to
Bonjour db

"db" <blue_mo...@hotmail.com> a écrit dans le message de
news:5f5f3147$0$13547$426a...@news.free.fr...
Merci encore
cela a corrigé la demande de paramètres pour Joindate et la requête
fonctionne très bien.
Amicalement

--
albertri-at-videotron.ca.invalid

0 new messages