Critère de requête avec IIF

Résolu
nicolasBE74 -  
nicolasBE74 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, à quoi le critère est-il appliqué?
peux-tu partager ton fichier?
0
nicolasBE74 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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   Statut Membre Dernière intervention  
 
Bonjour,

Merci beaucoup yg_be cela fonctionne!
0