OVH Cloud OVH Cloud

Filtre automatique dans formulaire liste

7 réponses
Avatar
EnPanne
Bonjour,

Soit une table MonProjetTbl contenant un champ Nom (alpha, clé unique) et un
champ Présent (Oui/Non)
Soit une requête MonProjetReq contenant ces champs pour imposer un
classement croissant sur le champ Nom
Soit un formulaire MonProjetForm détaillant en liste ("mode continu") le
contenu de la table.
Jusqu'ici, ça va.
Où ça se corse, c'est quand je veux, avec un groupe d'options à 2 boutons
(Présents/Absents) logé dans l'entête de formulaire, choisir l'affichage
dans ma liste que des bonshommes présents ou absents, selon mon goût du
moment.
Mon groupe d'options s'appelle FiltrePrésent, les valeurs des boutons étant
0 et -1
Dans MonProjetReq, j'ai ajouté la condition
[Foms]![MonProjetForm]![FiltrePrésent].
Et ça ne m'affiche rien du tout !
Pourtant, j'ai repîqué cette façon de faire sur une autre Bdd dans laquelle,
il est vrai, le formulaire est en "mode simple".
Qu'ai-je oublié ?
Et en abusant, quelle valeur renvoyer à ma requête pour avoir la liste
complète, si c'est possible ?

Merci pour votre aide précieuse.

PG

7 réponses

Avatar
didier TEST
"EnPanne" a écrit dans le message de
news:
Bonjour,

Soit une table MonProjetTbl contenant un champ Nom (alpha, clé unique) et
un

champ Présent (Oui/Non)
Soit une requête MonProjetReq contenant ces champs pour imposer un
classement croissant sur le champ Nom
Soit un formulaire MonProjetForm détaillant en liste ("mode continu") le
contenu de la table.
Jusqu'ici, ça va.
Où ça se corse, c'est quand je veux, avec un groupe d'options à 2 boutons
(Présents/Absents) logé dans l'entête de formulaire, choisir l'affichage
dans ma liste que des bonshommes présents ou absents, selon mon goût du
moment.
Mon groupe d'options s'appelle FiltrePrésent, les valeurs des boutons
étant

0 et -1
Dans MonProjetReq, j'ai ajouté la condition
[Foms]![MonProjetForm]![FiltrePrésent].
Et ça ne m'affiche rien du tout !
Pourtant, j'ai repîqué cette façon de faire sur une autre Bdd dans
laquelle,

il est vrai, le formulaire est en "mode simple".
Qu'ai-je oublié ?
Et en abusant, quelle valeur renvoyer à ma requête pour avoir la liste
complète, si c'est possible ?

Merci pour votre aide précieuse.

PG


bonjour ,
touche PAS a la requette, en fontion des tes boutons option tu cree une
condition where (a peu de chose pret):

dans ton form tu place du code comme ca, par exemple sur un bouton
"appliquer" si tu en as plein d'autres des options :

cond = "NomChampTable = " & me.nomChampCondSurForm
me.filter= cond
me.filteron = true


Et voila !

Avatar
3stone
Salut,

"EnPanne"
| Soit une table MonProjetTbl contenant un champ Nom (alpha, clé unique) et un
| champ Présent (Oui/Non)
| Soit une requête MonProjetReq contenant ces champs pour imposer un
| classement croissant sur le champ Nom
| Soit un formulaire MonProjetForm détaillant en liste ("mode continu") le
| contenu de la table.
| Jusqu'ici, ça va.
| Où ça se corse, c'est quand je veux, avec un groupe d'options à 2 boutons
| (Présents/Absents) logé dans l'entête de formulaire, choisir l'affichage
| dans ma liste que des bonshommes présents ou absents, selon mon goût du
| moment.
| Mon groupe d'options s'appelle FiltrePrésent, les valeurs des boutons étant
| 0 et -1
| Dans MonProjetReq, j'ai ajouté la condition
| [Foms]![MonProjetForm]![FiltrePrésent].
| Et ça ne m'affiche rien du tout !
| Pourtant, j'ai repîqué cette façon de faire sur une autre Bdd dans laquelle,
| il est vrai, le formulaire est en "mode simple".
| Qu'ai-je oublié ?
| Et en abusant, quelle valeur renvoyer à ma requête pour avoir la liste
| complète, si c'est possible ?


Puisque tu cherche à filtre un champ boolean...
pourquoi n'utilise tu pas simplement une case à cocher
avec le libelé "Présent" ?


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
EnPanne
Bonjour et merci pour ton attention.

Parce que j'ai déjà cette case à cocher.
Et je cherche à n'avoir dans ma liste _que_ les gugusses déjà cochés
"présents" ou au contraire les zôtres.
Il est évident que je n'ai pas décrit toute ma table.
Comme je suis novice, je teste des tout petits bouts avant des les intégrer
à d'autres éléments plus complexes.

Merci à toi.


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


Puisque tu cherche à filtre un champ boolean...
pourquoi n'utilise tu pas simplement une case à cocher
avec le libelé "Présent" ?
Avatar
EnPanne
Bonjour Didier,

Je suis sans doute un peu bouché, mais je ne te comprends pas.
Je reste quelque peu borné dès qu'on me parle de code :-(

Le bidule que j'ai monté là fonctionne sur une autre base de données.
C'est Raymond qui m'avait à l'époque aiguillé sur ce procédé pour filtrer
des années.
Et là, je tente de faire la même chose, mais ça coince.

Merci à toi.
PG


"didier TEST" a écrit dans le message de news:


"EnPanne" a écrit dans le message de
news:
Bonjour,

Soit une table MonProjetTbl contenant un champ Nom (alpha, clé unique) et
un

champ Présent (Oui/Non)
Soit une requête MonProjetReq contenant ces champs pour imposer un
classement croissant sur le champ Nom
Soit un formulaire MonProjetForm détaillant en liste ("mode continu") le
contenu de la table.
Jusqu'ici, ça va.
Où ça se corse, c'est quand je veux, avec un groupe d'options à 2 boutons
(Présents/Absents) logé dans l'entête de formulaire, choisir l'affichage
dans ma liste que des bonshommes présents ou absents, selon mon goût du
moment.
Mon groupe d'options s'appelle FiltrePrésent, les valeurs des boutons
étant

0 et -1
Dans MonProjetReq, j'ai ajouté la condition
[Foms]![MonProjetForm]![FiltrePrésent].
Et ça ne m'affiche rien du tout !
Pourtant, j'ai repîqué cette façon de faire sur une autre Bdd dans
laquelle,

il est vrai, le formulaire est en "mode simple".
Qu'ai-je oublié ?
Et en abusant, quelle valeur renvoyer à ma requête pour avoir la liste
complète, si c'est possible ?

Merci pour votre aide précieuse.

PG


bonjour ,
touche PAS a la requette, en fontion des tes boutons option tu cree une
condition where (a peu de chose pret):

dans ton form tu place du code comme ca, par exemple sur un bouton
"appliquer" si tu en as plein d'autres des options :

cond = "NomChampTable = " & me.nomChampCondSurForm
me.filter= cond
me.filteron = true


Et voila !








Avatar
3stone
re,

"EnPanne"
|
| Parce que j'ai déjà cette case à cocher.


Nnnn... tu as dis que tu avait placé un "groupe d'options"...

ce qui ne renvoie pas un boolean !


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
EnPanne
J'ai effectivement une case à cocher dans ma table, et je cherche à faire en
sorte de n'avoir dans mon formulaire que les gens cochées, ou ceux non
cochés. Idéalement, je devrai avoir aussi tous les gens, cochés ou non.
Pour ça je pense que c'est ma requête qui doit bouger. D'aucuns me diront
qu'il faut le faire en vba. Mais j'ai déjà bien du mal sans VBA :-(
Par ailleurs, j'ai testé mon modèle en créant une zone de texte (Test) dans
mon entete de formulaire contenant la formule =FiltrePrésent.
La zone de texte me renvoit bien 0 ou -1 selon le bouton appuyé.
Mais ma requête ne veut rien savoir que ce soit avec
[Foms]![MonProjetForm]![FiltrePrésent] ou avec [Foms]![MonProjetForm]![Test]
dans le champ de requête Présent.
Quand je lance ma requête directement, j'ai une boîte de dialogue qui me
demande la valeur de [Foms]![MonProjetForm]![FiltrePrésent], ce qu est
normal, et le résultat est correct autant avec 0 qu'avec -1
Mais il semble que mon formulaire ne passe pas la valeur à la requête.
Je pense que cela vient du mode continu.
Mais comment résoudre ce souci ?

@+

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

re,

"EnPanne"
|
| Parce que j'ai déjà cette case à cocher.


Nnnn... tu as dis que tu avait placé un "groupe d'options"...

ce qui ne renvoie pas un boolean !


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
EnPanne
J'ai compris ! du moins je le crois ...
Je pense prendre mon problème par le mauvais bout !
Je suis partir d'une procédure qui me permet d'afficher un état en mode
aperçu.
J'ai donc du code derrière le traitement qui gère cet état.
Je vais laisser passer la nuit et revoir la question autrement, par exemple
par l'usage d'une liste déroulante filtrant mon résultat.

Merci encore.

"EnPanne" a écrit dans le message de news:

J'ai effectivement une case à cocher dans ma table, et je cherche à faire
en sorte de n'avoir dans mon formulaire que les gens cochées, ou ceux non
cochés. Idéalement, je devrai avoir aussi tous les gens, cochés ou non.
Pour ça je pense que c'est ma requête qui doit bouger. D'aucuns me diront
qu'il faut le faire en vba. Mais j'ai déjà bien du mal sans VBA :-(
Par ailleurs, j'ai testé mon modèle en créant une zone de texte (Test)
dans mon entete de formulaire contenant la formule =FiltrePrésent.
La zone de texte me renvoit bien 0 ou -1 selon le bouton appuyé.
Mais ma requête ne veut rien savoir que ce soit avec
[Foms]![MonProjetForm]![FiltrePrésent] ou avec
[Foms]![MonProjetForm]![Test] dans le champ de requête Présent.
Quand je lance ma requête directement, j'ai une boîte de dialogue qui me
demande la valeur de [Foms]![MonProjetForm]![FiltrePrésent], ce qu est
normal, et le résultat est correct autant avec 0 qu'avec -1
Mais il semble que mon formulaire ne passe pas la valeur à la requête.
Je pense que cela vient du mode continu.
Mais comment résoudre ce souci ?