|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : mai 2011 Messages : 29 ![]() |
Bonjour,
J'ai un formulaire qui regroupe tous les enregistrements de ma base. Dans ce formulaire j'ai 4 cases à cocher (on les nomme cocher1...cocher4), qui sont automatiquement cochées à l'ouverture du formulaire et qui filtre des valeurs(val1...val4). Lorsqu'on décoche un case, sa filtre les enregistrements en retirant ceux qui correspondent à la valeur de la case décochée (jusqu'ici pas de problème). Mon problème survient lorsque je décoche une deuxième case. J'aimerais que sa cumule les deux filtres. Or dans mon cas sa enlève bien les valeurs du 2eme filtre mais sa rajoute celle du 1er. J'aimerais savoir comment on fait pour cumuler plusieurs filtres sur les 4 cases à cocher? J'espère avoir été clair. Merci de votre aide. |
|
|
00
|
|
|
#2 |
|
Candidat au titre de Membre du Club
![]() L3 MIAGE Inscription : octobre 2009 Messages : 64 ![]() |
Je ne sais pas si ça peut t'aider.
Mais la recherche multi-critères m'a permis de réaliser des filtres en fonction de plusieurs cases cochées. http://cafeine.developpez.com/access...echerchemulti/ |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : mai 2011 Messages : 29 ![]() |
Ton lien fonfek24 se rapproche de ce que je souhaite faire mais ce n'est pas exactement mon attente.
En fait au lieu d'afficher ou de masqué les zones de listes déroulantes à l'aide des case à cocher, je souhaiterais directement filtré la liste des résultats. Si je décoche une case, sa enlève des valeurs, si j'en décoche une autre sa enlève d' autres valeurs (et sa ne remet pas les valeurs de la première case). Moi, j'arrive à faire les filtres un par un mais je sais pas comment faire pour cumulé plusieurs filtres (4 au maximum). Merci |
|
|
00
|
|
|
#4 | ||
|
Candidat au titre de Membre du Club
![]() L3 MIAGE Inscription : octobre 2009 Messages : 64 ![]() |
Code :
Dans mon application j'ai utilisé à de nombreuses reprises cette technique pour avoir la possibilité d'allier pleins de critères différents. |
||
|
|
00
|
|
|
#5 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 086 ![]() |
Bonjour,
Comme te le dit Fonfek24 tu peux utiliser cette technique pour créer tes filtres. Ce qu'il faut savoir c'est qu'il s'agisse de filtre ou de condition Where, dans les requetes ou les expressions, la syntaxe est toujours la même. On peut donc dire que celui qui maitrise SQL, maitrise 99% des appels à la base de données. Si l'on observe ce qu'ACCESS fait en interne (cf mon tuto sur l'optimisation) on voit clairement que dans tous les cas ce sont des requetes qui sont lancées au moteur de base de données. Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#6 |
|
Invité régulier
![]() Inscription : mai 2011 Messages : 29 ![]() |
En fait je ne vois pas trop comment adapter le code dans mon cas.
J'ai 4 case à cocher ( SSS,PSS,HIPS,PACKAGE) qui font référence à une colonne SYSTEME de la table SSS. A partir de la, dans mon formulaire, si je décoche une des cases, sa m'enlève tous les enregistrements ou la valeur de la colonne SYSTEME est égale à celle de la case à cocher. Merci |
|
|
00
|
|
|
#7 | ||
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 086 ![]() |
Comme ceci par exemple.
Code :
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
||
|
00
|
|
|
#8 | ||
|
Invité régulier
![]() Inscription : mai 2011 Messages : 29 ![]() |
Ok, mais à la place de :
Code :
Merci |
||
|
|
00
|
|
|
#9 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 086 ![]() |
Quand tu fais F1 sur une propriété non seulement il t'explique ce que ça fait mais également comment tu peux le controler via VBA.
à partir de là facile de faire F1 sur la propriété qui contient la source de ton formulaire (ou sous-formulaire c'est pareil).
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#10 |
|
Invité régulier
![]() Inscription : mai 2011 Messages : 29 ![]() |
Bonjour,
Je n' est toujours pas trouvé de solution à ce problème. J'ai essayé d'adapté les codes que vous m'avez fourni mais il ne se passe rien. Si quelqu'un peut m'aider à rédiger le bon code je lui serais très reconnaissant. Merci, |
|
|
00
|
|
|
#11 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 086 ![]() |
Bonjour,
à la place d'affecter ta source à la propriété rowsource de la liste tu l'affecte à celle du formulaire. Comme ceci : Le requery est inutile lorsqu'on affecte une source. Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#12 | ||
|
Invité régulier
![]() Inscription : mai 2011 Messages : 29 ![]() |
J'ai essayé ce code mais rien ne se passe :
Code :
|
||
|
|
00
|
|
|
#13 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 086 ![]() |
Bonjour,
Est-ce que ta requete rammene quelque chose ? C'est la première question à se poser. Pour cela il existe un très bon tuto sur le déboggage des requetes dans VBA. De plus dans ta requête il manque des espaces. Voici ce que ça donne si tu choisis tout : Code :
SELECT SYSTEM,SIMPLE,TYPE,WORKPERMIT,COMMENTS,REQUESTER,POSTE,TAGNAME,UNIT,FUNCTION,EQUIPMENT,LEVEL,STATUS FROM SSS WHERE ID <>0OR SYSTEM = 'SSS'OR SYSTEM = 'PSS'OR SYSTEM = 'HIPS'OR SYSTEM = 'PACKAGE' Connais-tu les mots réservés d'ACCESS ? C'est dans le F1 recherche "Mots réservés" et essai de ne pas le utiliser... ça evite les problèmes à terme. Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#14 |
|
Membre éclairé
![]() Inscription : septembre 2003 Messages : 292 ![]() |
Bonjour ,
Si ce code qui me parais parfait pour ton cas ne marche pas, tu peux essayer de voir autrement le problème : Si les critères de sélections (des cases à cocher) sont stockés sur la table des données, tu pourras passer par une requête simple qui aura pour critères les valeurs de la case à cocher. Tu n'auras qu'a basé ton formulaire sur la requête et après chaque action sur les cases à cocher tu actualises le formulaire. A+
__________________
Pourquoi faire compliqué quand on peut faire simple Je suis encore en ACCESS 2003
|
|
|
00
|
|
|
#15 | ||||
|
Invité régulier
![]() Inscription : mai 2011 Messages : 29 ![]() |
Bonjour,
@ loufab : En effet, il y avait un problème avec la requête, le mot 'level' étant réservé. Après modification de ce mot, la requête me renvoit bien les enregistrements correspondant mais j'ai toujours le même problème avec mon formulaire où rien ne se passe quand je coche une case. Code :
Code :
PS: Si je remplace OR par AND dans le code sa marche pour une case à cocher mais quand je clique sur une autre case sa efface tous les résultats. Le problème viendrait il du choix des conditions ? Merci |
||||
|
|
00
|
|
|
#16 | ||
|
Invité régulier
![]() Inscription : mai 2011 Messages : 29 ![]() |
Le code ci dessous à l'air de fonctionné :
Code :
Merci |
||
|
|
00
|
|
|
#17 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 086 ![]() |
Bonjour,
Je ne vois pas très bien ce que le filter vient faire dans cette histoire. Ici tu agis sur la source pas sur un filtre. C'est normal qu'il n'affiche rien. Regarde ta ligne SQL. Code :
AND SYSTEM = 'SSS' AND SYSTEM = 'PSS' AND SYSTEM = 'HIPS' AND SYSTEM = 'PACKAGE'" J'ai l'impression que tu ne débogge pas ton code pourtant il y a un tuto très bien fait qui explique comment faire. L'as-tu lu ? Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#18 |
|
Invité régulier
![]() Inscription : mai 2011 Messages : 29 ![]() |
Bonjour,
Je vois bien que ma requête SQL n'est pas bonne mais le seul problème c'est que comme sa sa marche. En fait à l'ouverture du formulaire, mes 4 cases sont cochées, et quand on en décoche une sa retire les valeurs correspondante (à la base c'était l'idée que je voulais développée) et ainsi de suite si on décoche les autres. Ensuite quand on les cochent à nouveaux sa réaffiche les enregistrements correspondant à la valeur de la case. C'est quand même bizzare que sa fonctionne vu que la requête est erronée et ne renvoi rien. (Pourtant ce sont les AND qui font la différence) Code :
WHERE ID <>0 AND SYSTEM = 'SSS' AND SYSTEM = 'PSS' AND SYSTEM = 'HIPS' AND SYSTEM = 'PACKAGE' |
|
|
00
|
|
|
#19 |
![]() ![]() ![]() Fabrice CONSTANSIngénieur développement logiciels Inscription : avril 2005 Messages : 7 086 ![]() |
Bonjour,
Si lce résultat te satisfait alors tant mieux. Tu peux cliquer sur résolu. Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste MsGraph et VBA - 1e Partie 2e partie Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010 Complément :Générateur de msgbox Visitez mon Blog Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine |
|
00
|
|
|
#20 | ||
|
Invité régulier
![]() Inscription : mai 2011 Messages : 29 ![]() |
Bonjour,
Je remets à jour ce sujet car après avoir essayé divers codes, j'ai finalement trouvé une solution qui semble bien plus adéquate que celle soumise lors de la résolution du problème. J'ai donc décidé de la publiée au cas où certaines personnes serait intéressé par le sujet. Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com