Afficher le champs complet avec critère variable - ACCESS

Résolu/Fermé
MouPetshop - 15 avril 2013 à 15:20
 Tessel75 - 15 avril 2015 à 02:05
Bonjour,
Je commence sur access et je suis confronté à un problème depuis deux jours.
Je travaille avec un formulaire qui me permet de choisir une variable, à l'aide d'une liste déroulante, que j'applique comme critère à ma requête.
J'aimerais lorsque je n'ai choisi aucune des variables proposées dans la liste, pouvoir afficher la totalité du champs.
Le problème vient du fait que plusieurs de mes enregistrements sont nuls dans ce champs.

J'utilise l'expression suivante comme critère :

Nz([Formulaires]![Formulaire accueil]![critere1];[champs1])

J'ai aussi essayé avec la formule

IIF(EstNull([Formulaire]![Formulaire accueil]![critere1]);[champs1];[Formulaire]![Formulaire accueil]![critere1])

En utilisant ces expressions je n'arrive à obtenir que les enregistrements dans lequel le champs est complété.

J'ai essayé de tourner l'expression dans tous les sens avec des "*", "", Est Null etc ...
Rien y fait.

En vous remerciant d'avance ^^.

5 réponses

Bonsoir,
Tu écris : "J'aimerais lorsque je n'ai choisi aucune des variables proposées dans la liste, pouvoir afficher la totalité du champs."

Ce n'est pas très clair. Je crois comprendre que tu veux que tous les enregistrements soient sélectionner, y compris ceux dont la valeur du champ1 est nulle.

Tu dis encore : "Nz([Formulaires]![Formulaire accueil]![critere1];[champs1]) "
Tu ne dois pas oublier que la fonction Nz() remplace la valeur "null" par "0" si aucune valeur n'est indiquée, ou la valeur donnée en 2ème argument de la fonction si celle-ciest indiquée, donc ici "[champs1]". Je ne sais pas ce que Access te sort, mais il y a de fortes chances que ce soit la 1ère valeur du champ, soit celle qui en haut de la colonne.

J'ai du mal à admettre qu'avec "*", ça ne fonctionne pas, aussi je me demande si tu utilises la bonne syntaxe à savoir " comme "*" ". En effet si tu poses comme critère " "*" " tout seul, Access comprendra que tu cherches les enregistrements dont la valeur du champ1 est " * " et non pas ceux dont dont la valeur du champ1 est quelconque, càd toutes.
Ne sachant plus à brûle-pourpoint ce que sélectionne " comme "*" ", si les valeurs nulles sont incluses ou exclues, je te proposes de tester l'une des 2 ou des 3 écritures (c'est mon jour de générosité)

critère1 = comme "*"
critère2 = comme "*" ou null
critère2 = iif([Formulaires]![Formulaire accueil]![critere1] ="*";comme "*" ou null;[Formulaires]![Formulaire accueil]![critere1] )


Bonne suite
0