|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Débutant
Inscription : octobre 2004 Messages : 432 ![]() |
Bonjour,
J'ai un formulaire dont un des champs "Status" peut contenir une des valeurs suivantes : A B C J'ai trois cases à cocher indépendantes par lesquelles j'aimerais filtrer les enregistrements de mon formulaire "frm_ openamounts" par rapport au champ "Status". CocherA CocherB CocherC Voici la source de mon formulaire : Code :
J'aimerais si je décoche par exemple la case à cocher "CocherA" que les enregistrements contenant A dans le champ "Status" n'apparaissent pas. Idem si je décoche 2 ou les 3 cases à cocher. Merci de m'aider svp. |
||
|
|
00
|
|
|
#2 |
![]() ![]() Jean BALLATInscription : octobre 2004 Messages : 2 856 ![]() |
![]() Tu peux retrouver des situations similaires dans les tutos sur les recherches multicritères Bonne continuation
__________________
Jeannot Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., [B]Sources VBA Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre
|
|
|
00
|
|
|
#3 | |
|
Débutant
Inscription : octobre 2004 Messages : 432 ![]() |
Citation:
Je m'y suis d'ailleurs inspiré pour filter ce même formulaire par une zone de liste déroulante sur un autre champ. Par contre, en ce qui concerne les cases à cocher je sèche vraiment. |
|
|
|
00
|
|
|
#4 | ||
|
Membre habitué
![]() Inscription : janvier 2006 Messages : 99 ![]() |
Bonjour,
voici ce que je ferais : je créerai une procédure qui me crée automatiquement un filtre en fonction des valeurs de mes 3 cases à cocher. Puis j'activerai ce filtre à chaque fois qu'on clique sur mes cases à cocher. Voici le code que j'utiliserai pour la procédure générant le filtre. Je ne l'ai pas testée mais ça devrait fonctionner. Code :
|
||
|
|
00
|
|
|
#5 | |||||||
|
Débutant
Inscription : octobre 2004 Messages : 432 ![]() |
Citation:
Bon cela ne marche pas, lorsque je click sur une des cases à cocher, il me met : Erreur d'exécution '94': Utilisation incorrecte de Null Lorsque je click sur débogage, il me colore en jaune la ligne une des lignes If Me![...] Then Suite à ton code, j'ai procédé comme suit : Dans mon formulaire, il y a 10 cases à cocher en fait. J'ai inséré ce code dans mon formulaire : Code :
Code :
|
|||||||
|
|
00
|
|
|
#6 |
![]() ![]() Jean BALLATInscription : octobre 2004 Messages : 2 856 ![]() |
![]() Je te joins une petite base exemple qui utilise te montre comment j'ai implanté la gestion de tes cases à cocher. Je passe par la modification du recordSource du formulaire. Bonne continuation
__________________
Jeannot Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., [B]Sources VBA Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre
|
|
|
00
|
|
|
#7 | |
|
Débutant
Inscription : octobre 2004 Messages : 432 ![]() |
Citation:
mais pourrais-tu m'envoyer la base sous format .mdb il m'est impossible de faire la conversion ici au boulot ou d'avoir access 2007 Bien à toi, |
|
|
|
00
|
|
|
#8 | |
|
Membre habitué
![]() Inscription : janvier 2006 Messages : 99 ![]() |
Citation:
en fait, je suppose que votre case à cocher n'a pas de valeur initiale (elle est donc à null), ce qui déclenche en effet ce type d'erreur. Pour résoudre ce problème, affectez une valeur par défaut (true ou false suivant vos besoins) aux cases à cocher. Cordialement, |
|
|
|
00
|
|
|
#9 | |
|
Débutant
Inscription : octobre 2004 Messages : 432 ![]() |
Citation:
Erreur d'exécution '3075': Erreur de syntaxe (opérateur absent) dans l'expression 'ract status code] = 'A025') OR ([Contract stuatus code] = 'A030') etc ... Cela me surligne en jaune : Me.Filter = filtre |
|
|
|
00
|
|
|
#10 |
![]() ![]() Jean BALLATInscription : octobre 2004 Messages : 2 856 ![]() |
![]() Je te joins la base convertie en mdb. Erreur de ma part. ![]() Tu trouveras dans cette base deux formulaires : 1 qui est basé sur un groupe d'options ce qui fait que tu ne peux choisir qu'une seule valeur. le second utilisant des cases à cocher indépendantes. ce qui te permet de sélectionner une ou plusieurs valeurs. Etudie le code et revient si tu as des questions. Bonne continuation
__________________
Jeannot Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., [B]Sources VBA Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre
|
|
|
00
|
|
|
#11 | |||
|
Membre habitué
![]() Inscription : janvier 2006 Messages : 99 ![]() |
Citation:
Code :
filtre = Mid$(filtre, 11, Len(filtre) - 10) Code :
L'instruction Mid permet d'extraire une chaine de caractères à l'intérieur d'une autre chaine. Ici, en l'occurrence, je souhaitais enlever le début de la chaine pour le filtre (ie, supprimer " OR"). |
|||
|
|
00
|
|
|
#12 | |||||||
|
Débutant
Inscription : octobre 2004 Messages : 432 ![]() |
Citation:
Mais j'ai encore un souci ... J'ai une autre méthode de filtre avec une zone de liste déroulante qui me permet de filtrer un champ nommé "Invoice addressee name". Contenu de cette zone de liste déroulante : Code :
Code :
Parce que là en clickant sur ma case à cocher, il me remet tous les enregistrements hormis ceux en relation avec ma case à cocher. |
|||||||
|
|
00
|
|
|
#13 |
|
Débutant
Inscription : octobre 2004 Messages : 432 ![]() |
Dois-je pour garder le résultat du filtre précédent, le mémoriser dans une autre table ?
|
|
|
00
|
|
|
#14 |
|
Débutant
Inscription : octobre 2004 Messages : 432 ![]() |
J'ai mis ma base en copie. Si qqun pourrait m'aider à solutionner les problèmes suivants, ca serait gentil pcq ca fait des jours que je suis penché sur ce formulaire sans trouver de solution :
- ajouter TOUS à ma zone de liste déroulante Modifiable2 - conservation des résultats de filtre avant d'effectuer un autre filtre pcq là à chaque fois que j'effectue un autre filtre, le résultat de ma requête liée au sous formulaire apparait. Merci d'avance, |
|
|
00
|
|
|
#15 |
![]() ![]() Jean BALLATInscription : octobre 2004 Messages : 2 856 ![]() |
![]() Pour ajouter la mention "TOUS" dans une liste, il te suffit de consulter la Ajouter TOUS dans une liste déroulante Quant au deuxième problème, je ne comprends pas ![]() Veux-tu parler du dysfonctionnement du filtre quand tu "joues" avec les cases à cocher ?
__________________
Jeannot Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., [B]Sources VBA Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre
|
|
|
00
|
|
|
#16 | |
|
Débutant
Inscription : octobre 2004 Messages : 432 ![]() |
Citation:
Pour le 2ème problème, les cases à cocher fonctionnent (CocherA025, COcherA030, ...) mais lorsque je click sur une valeur de ma liste déroulante je voudrais garder le résultat de cette requête lorsque je click sur une des cases à cocher (CocherA025, COcherA030, ...). Parce que là, si je choisis une valeur de ma liste déroulante et que je click sur une case à cocher il me remet tous les enregistrements. |
|
|
|
00
|
|
|
#17 | ||
|
Débutant
Inscription : octobre 2004 Messages : 432 ![]() |
J'ai réussi à ajouter Tous à ma liste déroulante mais il subsiste un problème.
Code :
Ma requête initiale le faisait bien avec la partie du code : Code :
HAVING (((tbl_openamounts.[Customer ID])=[Forms].[frm_openamounts]![Customer ID])); |
||
|
|
00
|
|
|
#18 |
![]() ![]() Jean BALLATInscription : octobre 2004 Messages : 2 856 ![]() |
![]() Je pense que pour "cumuler" plusieurs filtres il te faut utiliser une zone de liste avec sélection multiple et non une liste déroulante.
__________________
Jeannot Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., [B]Sources VBA Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre
|
|
|
00
|
|
|
#19 |
![]() ![]() Jean BALLATInscription : octobre 2004 Messages : 2 856 ![]() |
![]() Je te joins une base qui te répond je crois à ton souci. Tu retrouveras dans celle-ci le principe de filtrage que je t'avais exposé dans l'exemple que j'avais mis en pièce jointe un peu plus haut. J'ai documenté le code. Bonne continuation
__________________
Jeannot Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., [B]Sources VBA Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre
|
|
|
00
|
|
|
#20 | |
|
Débutant
Inscription : octobre 2004 Messages : 432 ![]() |
Citation:
![]() Un tout grand merci pour le temps que tu as consacré Je vais analyser çà pour comprendre |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com