OVH Cloud OVH Cloud

Est Null en variable

5 réponses
Avatar
Sarah
Bonjour, je suis confrontée à un problème dans une requête. J'ai une table
sur laquelle je dois poser des critères qui sont saisis dans un formulaire.
Soit je choisis une donnée dans une liste déroulante soit je veux tous les
enregistrements. J'ai fais en sorte que sur changement de ma liste, la valeur
sélectionnée aille dans une zone de texte invisible et ma requête s'exécute
par rapport à ça. Si je veux tout, une étoile va dans cette zone et la
requête s'éxécute par rapport à ça.
Mon problème : Certaines données sont manquantes dans la table et quand
j'éxécute avec "*", je n'ai pas les lignes correspondants aux champs non
remplis.
J'ai essayé Est Null dans une autre zone masquée mais il le prends comme
une chaine de catactère et pas comme une instruction.
Comment puis-je faire ?
Merci de vos réponses
Sarah

5 réponses

Avatar
Tisane
Bonjour Sarah,

Bonjour, je suis confrontée à un problème dans une requête. J'ai une table
sur laquelle je dois poser des critères qui sont saisis dans un
formulaire.
Soit je choisis une donnée dans une liste déroulante soit je veux tous les
enregistrements. J'ai fais en sorte que sur changement de ma liste, la
valeur
sélectionnée aille dans une zone de texte invisible et ma requête
s'exécute
par rapport à ça. Si je veux tout, une étoile va dans cette zone et la
requête s'éxécute par rapport à ça.
Mon problème : Certaines données sont manquantes dans la table et quand
j'éxécute avec "*", je n'ai pas les lignes correspondants aux champs non
remplis.
J'ai essayé Est Null dans une autre zone masquée mais il le prends comme
une chaine de catactère et pas comme une instruction.


En effet, il faut précise * ou Null.
Mais, je ne sais pas pourquoi tu utilises une zone de texte invisible pour
afficher tous les enegistrements.
Pourquoi ne pas ajouter "Tous" en haut de la liste déroulante par exemple en
l'encadrant par des tirets (- Tous -) pour qu'elle soit placée en 1re
position si ta liste est classée par alpha ?
Et dans la fenêtre SQL de la requête sous-jacente :
SELECT DISTINCT Ton_Champ
FROM Ta_Table
WHERE ((([Ton_Champ]) Is Not Null))
UNION SELECT "- Tous -" FROM Ta_Table
ORDER BY Ton_Champ;

--
Tisane

Avatar
Sarah
Ah, j'ai essayé ce que tu m'as conseillé mais lorsque j'éxécute ma requête,
il ne me renvoie rien. -Tous- ne fait pas partie des critères possibles.
Comment puis-je contourner ce problème ?
Merci


Bonjour Sarah,

Bonjour, je suis confrontée à un problème dans une requête. J'ai une table
sur laquelle je dois poser des critères qui sont saisis dans un
formulaire.
Soit je choisis une donnée dans une liste déroulante soit je veux tous les
enregistrements. J'ai fais en sorte que sur changement de ma liste, la
valeur
sélectionnée aille dans une zone de texte invisible et ma requête
s'exécute
par rapport à ça. Si je veux tout, une étoile va dans cette zone et la
requête s'éxécute par rapport à ça.
Mon problème : Certaines données sont manquantes dans la table et quand
j'éxécute avec "*", je n'ai pas les lignes correspondants aux champs non
remplis.
J'ai essayé Est Null dans une autre zone masquée mais il le prends comme
une chaine de catactère et pas comme une instruction.


En effet, il faut précise * ou Null.
Mais, je ne sais pas pourquoi tu utilises une zone de texte invisible pour
afficher tous les enegistrements.
Pourquoi ne pas ajouter "Tous" en haut de la liste déroulante par exemple en
l'encadrant par des tirets (- Tous -) pour qu'elle soit placée en 1re
position si ta liste est classée par alpha ?
Et dans la fenêtre SQL de la requête sous-jacente :
SELECT DISTINCT Ton_Champ
FROM Ta_Table
WHERE ((([Ton_Champ]) Is Not Null))
UNION SELECT "- Tous -" FROM Ta_Table
ORDER BY Ton_Champ;

--
Tisane





Avatar
Tisane
Ah, j'ai essayé ce que tu m'as conseillé mais lorsque j'éxécute ma
requête,
il ne me renvoie rien. -Tous- ne fait pas partie des critères possibles.


J'ai copié/coller un peu vite un des codes que j'utilise.
SELECT DISTINCT Ton_champ FROM Ta_Table UNION SELECT "- Tous -" FROM
Ta_Table
ORDER BY Ton_Champ;
suffit si tu n'as qu'un champ dans ta liste.

Mais dis-nous de quoi est composée ta liste ce sera plus simple.

--
Tisane

Bonjour, je suis confrontée à un problème dans une requête. J'ai une
table
sur laquelle je dois poser des critères qui sont saisis dans un
formulaire.
Soit je choisis une donnée dans une liste déroulante soit je veux tous
les
enregistrements. J'ai fais en sorte que sur changement de ma liste, la
valeur
sélectionnée aille dans une zone de texte invisible et ma requête
s'exécute
par rapport à ça. Si je veux tout, une étoile va dans cette zone et la
requête s'éxécute par rapport à ça.
Mon problème : Certaines données sont manquantes dans la table et quand
j'éxécute avec "*", je n'ai pas les lignes correspondants aux champs
non
remplis.
J'ai essayé Est Null dans une autre zone masquée mais il le prends
comme
une chaine de catactère et pas comme une instruction.


En effet, il faut précise * ou Null.
Mais, je ne sais pas pourquoi tu utilises une zone de texte invisible
pour
afficher tous les enegistrements.
Pourquoi ne pas ajouter "Tous" en haut de la liste déroulante par exemple
en
l'encadrant par des tirets (- Tous -) pour qu'elle soit placée en 1re
position si ta liste est classée par alpha ?
Et dans la fenêtre SQL de la requête sous-jacente :
SELECT DISTINCT Ton_Champ
FROM Ta_Table
WHERE ((([Ton_Champ]) Is Not Null))
UNION SELECT "- Tous -" FROM Ta_Table
ORDER BY Ton_Champ;

--
Tisane







Avatar
Sarah
Ma liste est composée de noms de personnes qui viennent d'une table
"Personnes".
Cette table est reliée avec une autre "Saisie" où certains noms apparaissent
mais quelquefois ce champ nom n'est pas renseigné.
Il faut que je puisse soit faire apparaitre les enregistrements concernant
une personne soit faire tout apparaitre même les lignes dont le champ nom est
null.
Mes critères sont posés dans une liste dans un formulaire.
Mon problème est le * qui ne gère pas les Null.
J'espère avoir été plus claire.

Merci


Ah, j'ai essayé ce que tu m'as conseillé mais lorsque j'éxécute ma
requête,
il ne me renvoie rien. -Tous- ne fait pas partie des critères possibles.


J'ai copié/coller un peu vite un des codes que j'utilise.
SELECT DISTINCT Ton_champ FROM Ta_Table UNION SELECT "- Tous -" FROM
Ta_Table
ORDER BY Ton_Champ;
suffit si tu n'as qu'un champ dans ta liste.

Mais dis-nous de quoi est composée ta liste ce sera plus simple.

--
Tisane

Bonjour, je suis confrontée à un problème dans une requête. J'ai une
table
sur laquelle je dois poser des critères qui sont saisis dans un
formulaire.
Soit je choisis une donnée dans une liste déroulante soit je veux tous
les
enregistrements. J'ai fais en sorte que sur changement de ma liste, la
valeur
sélectionnée aille dans une zone de texte invisible et ma requête
s'exécute
par rapport à ça. Si je veux tout, une étoile va dans cette zone et la
requête s'éxécute par rapport à ça.
Mon problème : Certaines données sont manquantes dans la table et quand
j'éxécute avec "*", je n'ai pas les lignes correspondants aux champs
non
remplis.
J'ai essayé Est Null dans une autre zone masquée mais il le prends
comme
une chaine de catactère et pas comme une instruction.


En effet, il faut précise * ou Null.
Mais, je ne sais pas pourquoi tu utilises une zone de texte invisible
pour
afficher tous les enegistrements.
Pourquoi ne pas ajouter "Tous" en haut de la liste déroulante par exemple
en
l'encadrant par des tirets (- Tous -) pour qu'elle soit placée en 1re
position si ta liste est classée par alpha ?
Et dans la fenêtre SQL de la requête sous-jacente :
SELECT DISTINCT Ton_Champ
FROM Ta_Table
WHERE ((([Ton_Champ]) Is Not Null))
UNION SELECT "- Tous -" FROM Ta_Table
ORDER BY Ton_Champ;

--
Tisane











Avatar
Sarah
J'ai trouvé ma réponse grace à la base de conniassances à cette adresse :
http://support.microsoft.com/kb/209261/fr en téléchargeant la base exemple.
Merci


Ma liste est composée de noms de personnes qui viennent d'une table
"Personnes".
Cette table est reliée avec une autre "Saisie" où certains noms apparaissent
mais quelquefois ce champ nom n'est pas renseigné.
Il faut que je puisse soit faire apparaitre les enregistrements concernant
une personne soit faire tout apparaitre même les lignes dont le champ nom est
null.
Mes critères sont posés dans une liste dans un formulaire.
Mon problème est le * qui ne gère pas les Null.
J'espère avoir été plus claire.

Merci


Ah, j'ai essayé ce que tu m'as conseillé mais lorsque j'éxécute ma
requête,
il ne me renvoie rien. -Tous- ne fait pas partie des critères possibles.


J'ai copié/coller un peu vite un des codes que j'utilise.
SELECT DISTINCT Ton_champ FROM Ta_Table UNION SELECT "- Tous -" FROM
Ta_Table
ORDER BY Ton_Champ;
suffit si tu n'as qu'un champ dans ta liste.

Mais dis-nous de quoi est composée ta liste ce sera plus simple.

--
Tisane

Bonjour, je suis confrontée à un problème dans une requête. J'ai une
table
sur laquelle je dois poser des critères qui sont saisis dans un
formulaire.
Soit je choisis une donnée dans une liste déroulante soit je veux tous
les
enregistrements. J'ai fais en sorte que sur changement de ma liste, la
valeur
sélectionnée aille dans une zone de texte invisible et ma requête
s'exécute
par rapport à ça. Si je veux tout, une étoile va dans cette zone et la
requête s'éxécute par rapport à ça.
Mon problème : Certaines données sont manquantes dans la table et quand
j'éxécute avec "*", je n'ai pas les lignes correspondants aux champs
non
remplis.
J'ai essayé Est Null dans une autre zone masquée mais il le prends
comme
une chaine de catactère et pas comme une instruction.


En effet, il faut précise * ou Null.
Mais, je ne sais pas pourquoi tu utilises une zone de texte invisible
pour
afficher tous les enegistrements.
Pourquoi ne pas ajouter "Tous" en haut de la liste déroulante par exemple
en
l'encadrant par des tirets (- Tous -) pour qu'elle soit placée en 1re
position si ta liste est classée par alpha ?
Et dans la fenêtre SQL de la requête sous-jacente :
SELECT DISTINCT Ton_Champ
FROM Ta_Table
WHERE ((([Ton_Champ]) Is Not Null))
UNION SELECT "- Tous -" FROM Ta_Table
ORDER BY Ton_Champ;

--
Tisane