Critère de requête avec IIF
Résolu
nicolasBE74
-
nicolasBE74 Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
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!
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
A voir également:
- Access requête plusieurs critères
- Acer quick access - Forum Logiciels
- Critères d'analyse d'un site web ✓ - Forum Webmastering
- Access appdata - Guide
- Somme.si.ens plusieurs critères même colonne ✓ - Forum Excel
- Exemple base de données access à télécharger gratuit - Forum Access
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?
peux-tu partager ton fichier?
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] & "*").
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] & "*").
je suggère ceci pour la requête complete:
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.
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.