Bonjour,
j'ai créé un formulaire de recherche multicritères basé donc sur une requête, avec dans le formulaire des zones de liste déroulantes permettant de choisir les critères de la recherche afin d'afficher les valeurs correspondantes dans une feuille de données intégrée.
Dans la requête sur laquelle est basé le formulaire, j'ai donc mis pour chaque champ un critère le rattachant à sa zone de liste correspondante dans le formulaire.
Et je bloque pour l'un des champs. Le problème est que ce champ n'est pas obligatoire, et n'est donc pas tout le temps rempli. Il s'agit d'un champ appelé "Secteur", qui est lui-même une liste déroulante basée sur une requête.
Le problème apparaît lorsque je mets un critère à ce champ.
Quand je mets le même critère que pour les autres champs (qui sont eux tout le temps remplis), à savoir: Comme "*" & [Formulaires]![Formulaire de recherche]![FiltreSecteur] & "*" où filtresecteur est la liste déroulante permettant de filtrer la recherche; alors quand rien n'est sélectionné dans la liste, je n'obtiens que les enregistrements dans lesquels le champ secteur est renseigné.
Sauf que ce que je souhaite, c'est que quand la liste est "à zéro", je puisse voir tous les enregistrements, et que le filtre ne s'applique qu'une fois une valeur choisie dans la liste.
J'ai donc essayé divers critères, j'ai un peu tâtonné, je vous les met "pêle-mêle" ci dessous:
1)
VraiFaux(EstNull([Formulaires]![Formulaire de recherche]![Filtresecteur]);"";"Comme" & "*" & [Formulaires]![Formulaire de recherche]![Filtresecteur] & "*")
Résultat: n'affiche aucun enregistrement par défaut, par contre le filtre s'applique quand on sélectionne une valeur.
2)
Comme nz([Formulaires]![Formulaire de recherche]![Filtresecteur];"*" & Null & "*")
Résultat: n'affiche jamais rien quoi que je sélectionne.
3) Dans "critères":
Comme "*" & [Formulaires]![Formulaire de recherche]![Filtresecteur] & "*"
Dans "ou":
Comme PremVrai(EstVide([Formulaires]![Formulaire de recherche]![Filtresecteur]);"*")
Résultat: n'affiche par défaut que les enregistrements où un secteur est renseigné, et filtre correctement si une valeur est choisie.
4)
VraiFaux(EstNull([Formulaires]![Formulaire de recherche]![Filtresecteur]);[Formulaires]![Formulaire de recherche]![Secteur];VraiFaux([Formulaires]![Formulaire de recherche]![Filtresecteur]="";[Formulaires]![Formulaire de recherche]![Secteur];"Comme" & " " & "*" & [Formulaires]![Formulaire de recherche]![Filtresecteur] & "*"))
Résultat: n'affiche jamais rien (tout ça pour ça!)
Etc. etc. j'en ai essayé plein j'ai fait "toutes" les combinaisons possibles, essayé des trucs invraisemblables, mais je pense qu'il y a une question de logique et/ou de syntaxe, et après avoir passé encore 2h ce matin + écumé les forums (mais pas évident de trouver un sujet équivalent), je m'en remets à vous!
Partager