OVH Cloud OVH Cloud

Problème SQL

2 réponses
Avatar
bjf
Bonjour a tous
ma requête ci dessous fonctionne:
WHERE ((([SCR mutations mensuelles
cumulées].[C-mot#mod#])=[EntrerCodeModif]) AND (([SCR mutations mensuelles
cumulées].[D-modif#])=IIf([EntrerDateModif] Is Not
Null,[EntrerDateModif],([SCR mutations mensuelles
cumulées].[D-modif#])#1/4/2003#)))

alors que celle-ci ne renvoie aucun enregistrement
WHERE ((([SCR mutations mensuelles
cumulées].[C-mot#mod#])=[EntrerCodeModif]) AND (([SCR mutations mensuelles
cumulées].[D-modif#])=IIf([EntrerDateModif] Is Not
Null,[EntrerDateModif],([SCR mutations mensuelles
cumulées].[D-modif#])>#1/4/2003#)))

Le fait de mettre le symbole > devant la date ne donne aucun enregistrement
comme résultat (des enregistrements existent!).
Ma question : comment écrire cette requête pour avoir tous les
enregistrements si le paramètre [EntrerDateModif] est vide ?
D'avance merci

2 réponses

Avatar
Jessy Sempere [MVP]
Bonjour

je ne comprends pas très bien ton SQL, d'ailleurs j'ai du mal à comprendre
comment
le premier peu marcher ???

Bon sinon essais peut-être :

WHERE (([SCR mutations mensuelles cumulées].[C-mot#mod#] [EntrerCodeModif])
AND ([SCR mutations mensuelles
cumulées].[D-modif#]=IIf(IsNull([EntrerDateModif]),
[SCR mutations mensuelles cumulées].[D-modif#]=[SCR mutations mensuelles
cumulées].[D-modif#], [SCR mutations mensuelles
cumulées].[D-modif#]=[EnterDateModif])))

@+
Jessy Sempere - Access MVP

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

Bonjour a tous
ma requête ci dessous fonctionne:
WHERE ((([SCR mutations mensuelles
cumulées].[C-mot#mod#])=[EntrerCodeModif]) AND (([SCR mutations mensuelles
cumulées].[D-modif#])=IIf([EntrerDateModif] Is Not
Null,[EntrerDateModif],([SCR mutations mensuelles
cumulées].[D-modif#])#1/4/2003#)))

alors que celle-ci ne renvoie aucun enregistrement
WHERE ((([SCR mutations mensuelles
cumulées].[C-mot#mod#])=[EntrerCodeModif]) AND (([SCR mutations mensuelles
cumulées].[D-modif#])=IIf([EntrerDateModif] Is Not
Null,[EntrerDateModif],([SCR mutations mensuelles
cumulées].[D-modif#])>#1/4/2003#)))

Le fait de mettre le symbole > devant la date ne donne aucun
enregistrement

comme résultat (des enregistrements existent!).
Ma question : comment écrire cette requête pour avoir tous les
enregistrements si le paramètre [EntrerDateModif] est vide ?
D'avance merci



Avatar
bjf
Salut Jessy
La solution que tu proposes ne fonctionne pas, la requête pose deux fois la
même question, c'est-à-dire [EntrerDateModif] et aucun enregistrement n'est
affiché.
Dans ma solution qui fonctionne, le fait de laisser vide [EntrerDateModif]
me sélectionne les enregistrements correspondant a la clause fausse de
vraifaux() . Je ne trouve pas la manière d'écrire le paramètre de la clause
fausse pour avoir tous les enregistrements de ma table.
Je voudrais avoir tous les enregistrements de ma table si le paramètre
demandé par [EntrerDateModif] est laissé vide, sinon sélectionner les
enregistrements avec le paramètre [EntrerDateModif]

Merci de m'avoir répondu.
A+



Bonjour

je ne comprends pas très bien ton SQL, d'ailleurs j'ai du mal à comprendre
comment
le premier peu marcher ???

Bon sinon essais peut-être :

WHERE (([SCR mutations mensuelles cumulées].[C-mot#mod#] > [EntrerCodeModif])
AND ([SCR mutations mensuelles
cumulées].[D-modif#]=IIf(IsNull([EntrerDateModif]),
[SCR mutations mensuelles cumulées].[D-modif#]=[SCR mutations mensuelles
cumulées].[D-modif#], [SCR mutations mensuelles
cumulées].[D-modif#]=[EnterDateModif])))

@+
Jessy Sempere - Access MVP

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

Bonjour a tous
ma requête ci dessous fonctionne:
WHERE ((([SCR mutations mensuelles
cumulées].[C-mot#mod#])=[EntrerCodeModif]) AND (([SCR mutations mensuelles
cumulées].[D-modif#])=IIf([EntrerDateModif] Is Not
Null,[EntrerDateModif],([SCR mutations mensuelles
cumulées].[D-modif#])#1/4/2003#)))

alors que celle-ci ne renvoie aucun enregistrement
WHERE ((([SCR mutations mensuelles
cumulées].[C-mot#mod#])=[EntrerCodeModif]) AND (([SCR mutations mensuelles
cumulées].[D-modif#])=IIf([EntrerDateModif] Is Not
Null,[EntrerDateModif],([SCR mutations mensuelles
cumulées].[D-modif#])>#1/4/2003#)))

Le fait de mettre le symbole > devant la date ne donne aucun
enregistrement

comme résultat (des enregistrements existent!).
Ma question : comment écrire cette requête pour avoir tous les
enregistrements si le paramètre [EntrerDateModif] est vide ?
D'avance merci