Critère de requête avec IIF [Résolu]

Signaler
-
Messages postés
2
Date d'inscription
vendredi 7 février 2020
Statut
Membre
Dernière intervention
10 février 2020
-
Bonjour à tous,

Je souhaiterais obtenir de l'aide pour un critère de requête :

Explication :

Je dispose dans ma bdd :

- d'un formulaire qui contient une liste déroulante ("natp") de valeurs correspondant à différentes nationalités. Soit la valeur de cette liste est nulle (choix de ne pas sélectionner sur base de la nationalité) soit elle reprend la valeur d'une des nationalités.

- D'une table dont l'une des colonnes ("Nationalité") reprend la nationalité des personnes. Soit une valeur nulle (nationalité inconnue) soit la valeur d'une des nationalités.

Résultats attendus du critère : si la valeur de la liste déroulante est nulle alors tous les enregistrements sont sélectionnés, même ceux dont le champ Nationalité a une valeur nulle.

Si la liste déroulante à une valeur non nulle alors les enregistrements dont la nationalité correspond à celle sélectionnée dans la liste déroulante sont sélectionnés mais aussi les enregistrements dont la champ Nationalité est null.

J'ai essayé avec :

Comme VraiFaux([Formulaires]![F_recherche v2]![natp].[Texte] Est Null;"*";[Formulaires]![F_recherche v2]![natp].[Texte])

C'est je crois la partie "*" qui pose problème. Si je remplace par comme "*" ou est null, cela ne donne pas les résultats attendus.

Quelqu'un a un avis ? Merci d'avance!

Configuration: Windows / Firefox 68.0

3 réponses

Messages postés
12606
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 octobre 2020
701
bonjour, à quoi le critère est-il appliqué?
peux-tu partager ton fichier?
Messages postés
2
Date d'inscription
vendredi 7 février 2020
Statut
Membre
Dernière intervention
10 février 2020

Bonjour,

Merci pour votre réponse. Ci-dessus le lien vers mon fichier :

https://www.cjoint.com/c/JBhkh3vLIMg

La requête sert à rechercher les enregistrements de la table "Personnes" suivant les nom, prénom et nationalité. Pour le critère "nationalité", il est appliqué au champ "Nationalité" de la table "Personnes".

Les critères pour les champs "Nom" et "Prénom" fonctionnent eux comme je le veux (Comme "*" & [Champ] & "*").
Messages postés
12606
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 octobre 2020
701
je suggère ceci pour la requête complete:
SELECT t_Personnes.Nom, t_Personnes.Prénom, t_Personnes.Nationalité
FROM t_Personnes
WHERE ((t_Personnes.Nom) Like "*" & [Formulaires]![F_recherche v2]![nom] & "*" Or (t_Personnes.Nom) Is Null) AND ((t_Personnes.Prénom) Like "*" & [Formulaires]![F_recherche v2]![prenom] & "*" Or (t_Personnes.Prénom) Is Null) AND 
(
([Formulaires]![F_recherche v2]![natp].[Texte] Is Null)
or 
(t_Personnes.Nationalité is null)
or
(t_Personnes.Nationalité  = [Formulaires]![F_recherche v2]![natp].[Texte] )
)
;

en effet, tu veux sélectionner les enregistrements pour lesquels la nationalité dans la liste déroulante est nulle ou la nationalité dans la table est nulle ou les deux nationalités sont identiques.
Messages postés
2
Date d'inscription
vendredi 7 février 2020
Statut
Membre
Dernière intervention
10 février 2020

Bonjour,

Merci beaucoup yg_be cela fonctionne!