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

Requete avec plusieurs critères

7 réponses
Avatar
albert
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

7 réponses

Avatar
db
Le 12/09/2020 à 17:18, albert a écrit :
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

Bonjour,
Essayez en remplaçant :
TBlmbcc.JOINDATE
par
iif(TBLmbcc.JOINDATE>#2019-04-01#,TBLmcc.JOINDATE,"") as JOINDATE
db
Avatar
Michel__D
Bonjour,
Le 12/09/2020 à 17:18, albert a écrit :
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

Remplace dans ta requête la table TBLmbcc par une requête qui prendra en compte ton critère de date.
Avatar
albert
Merci db
À 87 je m'en viens plus vieux qu'avant... voir à la fin
"db" a écrit dans le message de
news:5f5cf086$0$4042$
Le 12/09/2020 à 17:18, albert a écrit :
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

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

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
Avatar
db
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
Le 12/09/2020 à 21:07, albert a écrit :
Merci db
À 87 je m'en viens plus vieux qu'avant... voir à la fin
"db" a écrit dans le message de
news:5f5cf086$0$4042$
Le 12/09/2020 à 17:18, albert a écrit :
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

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

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
Avatar
albert
Bonjoour db
"db" a écrit dans le message de
news:5f5dce80$0$9516$
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
Avatar
db
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
Avatar
albert
Bonjour db
"db" a écrit dans le message de
news:5f5f3147$0$13547$
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

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