Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Table regroupant mes critères de requête

6 réponses
Avatar
SherMichel
J'ai une requête qui me donne les données de production (30 champs).
Comme je veux obtenir ces mêmes donnée soit par client, produit,procédé et
unité de production ou une combinaison de ceux-ci (0,1,2,3,4 critères) j'ai
créé un table ou chacun des champs correspond à un critère. Dans ma requête
initiale, j'ai ajouté dans les champs correspondants, mes critères comme suit
: [FiltreRqt]![Client], [FiltreRqt]![Description] etc. Ca fonctionne très
bien mais il y a un problème lorsqu'un champs de ma table TblFiltreRqt est
vide. Si je veux les résultat seulement pour un client par exemple, la
requête ne donne aucun résultats.
Il faudrait que j'ajouter à chacun de mes critères de ma requête un code qui
indique ne ne pas tenir compte de ce critère si le champs de ma table
Filtrerqt ne contient aucune valeur.
Quelqu'un peut m'aider à résoudre cette difficulté ? Merci pour votre
collaboration.

6 réponses

Avatar
3stone
Salut,

"SherMichel"
| J'ai une requête qui me donne les données de production (30 champs).
| Comme je veux obtenir ces mêmes donnée soit par client, produit,procédé et
| unité de production ou une combinaison de ceux-ci (0,1,2,3,4 critères) j'ai
| créé un table ou chacun des champs correspond à un critère. Dans ma requête
| initiale, j'ai ajouté dans les champs correspondants, mes critères comme suit
| : [FiltreRqt]![Client], [FiltreRqt]![Description] etc. Ca fonctionne très
| bien mais il y a un problème lorsqu'un champs de ma table TblFiltreRqt est
| vide. Si je veux les résultat seulement pour un client par exemple, la
| requête ne donne aucun résultats.
| Il faudrait que j'ajouter à chacun de mes critères de ma requête un code qui
| indique ne ne pas tenir compte de ce critère si le champs de ma table
| Filtrerqt ne contient aucune valeur.
| Quelqu'un peut m'aider à résoudre cette difficulté ? Merci pour votre
| collaboration


a condition d'avoir compris...

tu peux écrire les critères de cette façon:

iif ( isnull(critère) ; [champ]; critère)

ou ajouter à chaque critère :

or critère is null


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
Bauwens François
Salut,

Je cherchais dans l'historique car j'ai exactement le même problème. J'ai
tenté le "ou est null" mais ça ne fonctionne pas... la première proposition,
je vois moins bien !
Ma démarche est un peu différente; Je n'ai pas créé de table mais
directement un formulaire devant me servir à introduire les critères. Le
problèmes vient du fait de ne pas introduire de critère dans un des champs.

Merci pour votre aide
"SherMichel" a écrit dans le message
de news:
J'ai une requête qui me donne les données de production (30 champs).
Comme je veux obtenir ces mêmes donnée soit par client, produit,procédé et
unité de production ou une combinaison de ceux-ci (0,1,2,3,4 critères)
j'ai

créé un table ou chacun des champs correspond à un critère. Dans ma
requête

initiale, j'ai ajouté dans les champs correspondants, mes critères comme
suit

: [FiltreRqt]![Client], [FiltreRqt]![Description] etc. Ca fonctionne très
bien mais il y a un problème lorsqu'un champs de ma table TblFiltreRqt est
vide. Si je veux les résultat seulement pour un client par exemple, la
requête ne donne aucun résultats.
Il faudrait que j'ajouter à chacun de mes critères de ma requête un code
qui

indique ne ne pas tenir compte de ce critère si le champs de ma table
Filtrerqt ne contient aucune valeur.
Quelqu'un peut m'aider à résoudre cette difficulté ? Merci pour votre
collaboration.


Avatar
3stone
Salut,

"Bauwens François"
| Je cherchais dans l'historique car j'ai exactement le même problème. J'ai
| tenté le "ou est null" mais ça ne fonctionne pas... la première proposition,
| je vois moins bien !
| Ma démarche est un peu différente; Je n'ai pas créé de table mais
| directement un formulaire devant me servir à introduire les critères. Le
| problèmes vient du fait de ne pas introduire de critère dans un des champs.


Les deux méthodes fonctionnent...

Pour ce qui est de la première :

si l'on doit filtrer le champ "ChampX" par le contenu de la zone de texte "ZdT"

Forms!LeForm!ZdT

le critère devient :

iif(isnull(Foms!LeForm!ZdT);ChampX;Forms!LeForm!ZdT)

ce qui revient à dire :
si ZdT est null, je compare le ChampX au ChampX, ce qui est troujours vrai !!


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/
Avatar
SherMichel

Salut,

Je cherchais dans l'historique car j'ai exactement le même problème. J'ai
tenté le "ou est null" mais ça ne fonctionne pas... la première proposition,
je vois moins bien !

Salut,


J'ai finalement trouver une solution toute simple et qui fonctionne à
merveille.

Dans la grille de requête, à la ligne critère j'ai ajouté comme en avant de
ma référence au champs de ma table qui contient tous les critères que je
souhaites utilisées comme par exemple pour sélection un client j'ai écris
:Comme ([FiltreRqt]![Cust]), pour le champs Essence du bois j'ai écris :Comme
([FiltreRqt]![Ess]) etc.
Je peux ainsi enregistré 8 critères (dans mon cas, il pourrait en avoir plus
je pense) dans une table que je nomme TblFiltreRqt. Cette table est alimenté
via un formulaire lié à cette table. Dans mon exemple, je peux choisir 0,
1,2,3,....8 criètres et ca fonctionne très bien.
Toutefois, lorsqu'un champs de TblFiltreRqt est vide, il faut simplement
mettre un astérisque.
Pour ce faire, dans mes tables références telles que client, essence du
bois, activité etc, j'ai ajouté un enregistrement qui porte la valeur * tout
simplement.

Ah oui j'oubliais: Je ne sais pas exactement pourquoi, mais il faut dans la
grille de requête ajouté la même référence à la ligne ou.....ainsi,
Comme([FiltreRqt]![Cust]) sera ajouté sur la ligne critère: et sur la ligne
Ou:

Si cela peut en aider d'autres, tant mieux !!!!!

Avatar
Bauwens François
Ok mais comment peut-on faire pour introduire plusieurs critères dans un
champ ?
Pour clarifier ma question : dans un requête si sur année en souhaite tenir
compte des année 2002, 2003, 2004 on écrit ces 3 années les années en
dessous des autres, mais si au lieu de passer par une requête on passe par
un formulaire d'introduction des critères comment permettre le multicritère
sur un champ ? On en doit quant-même pas créer autant de champ qu'on
pourrait avoir de critère ? Est-ce alors une question de formulation ?
(j'espère avoir été clair, sinon dites le moi je tenterai de formuler mieux)

Merci
Frans


"3stone" a écrit dans le message de
news:
Salut,

"Bauwens François"
| Je cherchais dans l'historique car j'ai exactement le même problème.
J'ai

| tenté le "ou est null" mais ça ne fonctionne pas... la première
proposition,

| je vois moins bien !
| Ma démarche est un peu différente; Je n'ai pas créé de table mais
| directement un formulaire devant me servir à introduire les critères. Le
| problèmes vient du fait de ne pas introduire de critère dans un des
champs.



Les deux méthodes fonctionnent...

Pour ce qui est de la première :

si l'on doit filtrer le champ "ChampX" par le contenu de la zone de texte
"ZdT"


Forms!LeForm!ZdT

le critère devient :

iif(isnull(Foms!LeForm!ZdT);ChampX;Forms!LeForm!ZdT)

ce qui revient à dire :
si ZdT est null, je compare le ChampX au ChampX, ce qui est troujours vrai
!!



--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/



Avatar
3stone
Salut,

"Bauwens François"
| Ok mais comment peut-on faire pour introduire plusieurs critères dans un
| champ ?
| Pour clarifier ma question : dans un requête si sur année en souhaite tenir
| compte des année 2002, 2003, 2004 on écrit ces 3 années les années en
| dessous des autres, mais si au lieu de passer par une requête on passe par
| un formulaire d'introduction des critères comment permettre le multicritère
| sur un champ ? On en doit quant-même pas créer autant de champ qu'on
| pourrait avoir de critère ? Est-ce alors une question de formulation ?
| (j'espère avoir été clair, sinon dites le moi je tenterai de formuler mieux)


Une des raisons pour laquelle on construit la requête "au vol" au niveau
du VBA est de permettre de sélectionner selon les besoins.
Comme le filtre ci-dessous :
http://www.3stone.be/access/articles.php?lng=fr&pgC

ou à l'aide d'un formulaire "spécialisé" :
http://www.mvps.org/accessfr/forms/frm0045.htm


--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
Conseils MPFA: http://www.mpfa.info/