Requete Access afficher tous les champs même vide

Fermé
RBBL94 Messages postés 4 Date d'inscription samedi 5 mars 2022 Statut Membre Dernière intervention 7 mars 2022 - 5 mars 2022 à 19:35
yg_be Messages postés 23020 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 24 juillet 2024 - 7 mars 2022 à 22:04
Bonjour à tous, voila mon problème :

J'ai créé une base de données comportant une table avec plusieurs critères sous la forme de menus déroulants, ainsi qu'une requête incorporée dans un formulaire (appelé "Formulaire_Recherche").

-Quand tous les champs sont remplis, la requête s'effectue correctement grâce à un critère sous la forme: Comme [Formulaire]![Formulaire_Recherche]![Mon_champs] & "*"

-Or quand un seul champs est laissé vide, la requête ne fonctionne plus.

Comment faire pour lui demander d'afficher tous les résultats de la requête en considérant que si un des champs n'est pas renseigné, il doit me renvoyer toutes les informations contenues dans la table, même si ces dernières sont vides ?

Merci beaucoup pour vos futurs réponses, en sachant que je n'y connais absolument RIEN en SQL.

5 réponses

yg_be Messages postés 23020 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 24 juillet 2024 1 507
6 mars 2022 à 19:19
bonjour,
quand tu écris "champs", il s'agit des champs de la table ou bien des contrôles (zones de texte ou menus déroulants) dans le formulaire?
RBBL94 Messages postés 4 Date d'inscription samedi 5 mars 2022 Statut Membre Dernière intervention 7 mars 2022
6 mars 2022 à 20:23
Bonjour,

Je m'excuse si je n'étais pas assez clair et vais essayer de mieux m'exprimer:

-J'ai une table contenant les champs "Age, Sexe, Taille" avec un menu déroulant chacun pour inscrire des données.
-Dans un formulaire j'ai inscrit chacun de ces champs sous la forme de menu déroulant
-Dans une requête j'ai indiqué comme critère dans chacun de ces champs: Comme [Formulaire]![Champ] & "*"

Si toutes les valeurs sont remplis dans les menus déroulant de mon formulaire la requête s'effectue sans problème et m'affiche les résultats correspondant à la valeur de chaque champs.

Or si un individu n'a pas sa taille de renseigné dans la table (car je ne la connais pas), la requête ne m'affichera pas cette personne même si je laisse le champs vide dans le formulaire.

Voila j'espère avoir été plus clair :/
RBBL94 Messages postés 4 Date d'inscription samedi 5 mars 2022 Statut Membre Dernière intervention 7 mars 2022
6 mars 2022 à 20:45
Je partage avec vous ma base au cas ou je n'aurais toujours pas été assez clair sur ce qu'elle contient et sur pour les requêtes n'affichent pas les données absentes dans la table :/

https://www.cjoint.com/c/LCgtRKCkLUd
yg_be Messages postés 23020 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 24 juillet 2024 1 507
6 mars 2022 à 21:19
C'est clair, mais le fichier m'a aidé à proposer une solution.
Pour commencer, voyons si ceci marche pour le sexe.
Voici ce que je propose comme syntaxe SQL pour la requête:
SELECT [Table individu].Sexe, [Table individu].Age, [Table individu].Taille
FROM [Table individu]
WHERE ((([Table individu].Sexe) Like [Formulaires]![Formulaire recherche]![Sexe] & "*" 
OR (([Formulaires]![Formulaire recherche]![Sexe] is null And Sexe Is Null))) 
AND (([Table individu].Age) Like [Formulaires]![Formulaire recherche]![Age] & "*") 
AND (([Table individu].Taille) Like [Formulaires]![Formulaire recherche]![Taille] & "*")) ;

Cela fonctionne-t-il pour le cas où le sexe est laissé vide?
yg_be Messages postés 23020 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 24 juillet 2024 1 507
6 mars 2022 à 21:32
plus simple, et qui devrait fonctionner pour les trois champs:
dans la définition de la requête, en bas, dans la ligne "champs",
remplace Sexe par
Sexes: Nz([Sexe];"")

fais de même pour age et taille.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
RBBL94 Messages postés 4 Date d'inscription samedi 5 mars 2022 Statut Membre Dernière intervention 7 mars 2022
7 mars 2022 à 20:44
Effectivement ca marche du tonnerre !!!

Par contre du coup j'ai besoin d'explication, la fonction Nz() ne marche que dans le "champ" de la requête c'est bien ca ?
yg_be Messages postés 23020 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 24 juillet 2024 1 507
7 mars 2022 à 22:04
Quand tu laisses un champ de la table vide, ce champ contient
Null
, une valeur spéciale. Une comparaison avec cette valeur spéciale est toujours fausse, ce qui faisait que l'enregistrement avec un champ vide n'était jamais sélectionné.
La fonction nz retourne soit la valeur du champ, soit, si le champ est vide (
Null
), retourne la valeur du second paramètre, "".
J'espère avoir clarifié...
0