Critère de requête avec IIF

Résolu/Fermé
nicolasBE74 - 6 févr. 2020 à 14:30
nicolasBE74 Messages postés 2 Date d'inscription vendredi 7 février 2020 Statut Membre Dernière intervention 10 février 2020 - 10 févr. 2020 à 09:07
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

yg_be Messages postés 23364 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 décembre 2024 Ambassadeur 1 556
6 févr. 2020 à 20:41
bonjour, à quoi le critère est-il appliqué?
peux-tu partager ton fichier?
0
nicolasBE74 Messages postés 2 Date d'inscription vendredi 7 février 2020 Statut Membre Dernière intervention 10 février 2020
7 févr. 2020 à 11:12
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] & "*").
0
yg_be Messages postés 23364 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 décembre 2024 1 556
7 févr. 2020 à 18:25
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.
0
nicolasBE74 Messages postés 2 Date d'inscription vendredi 7 février 2020 Statut Membre Dernière intervention 10 février 2020
10 févr. 2020 à 09:07
Bonjour,

Merci beaucoup yg_be cela fonctionne!
0