|
|
|
|
Salut,
dans les propriétés du formulaire, onglet 'données', il y a un champ nommé 'filtre' qui correspond au filtre souhaité et qui sera chargé avec le formulaire. Mais il ne sera pas appliqué automatiquement. Pour cela, il faut écrire un peu de code dans l'évènement 'surouverture' et exécuter la méthode 'applyfilter' (dixit la doc). Des renseignements plus détaillés sont dispo dans l'aide, à la rubrique 'filtre'. A+ Blux "Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
|
Merci Blux T'es un choux
mais pourrait tu me donner quelque renseignements sur la methode aplyfilter: c'est un docmd, quels sont ses parametres sais-tu l'utiliser? merci encore Aurore |
D'après l'aide (que tu devrais consulter...) :
Cet exemple utilise la méthode ApplyFilter pour n'afficher que les enregistrements contenant le nom Roi dans le champ Nom: DoCmd.ApplyFilter , "Nom = 'Roi'" A+ Blux "Les cons, ça ose tout. C'est même à ça qu'on les reconnait" |
d'après ce que j'ai compris dans l'aide (pas grand chose je bosse dans une boite américaine et tout est en anglais).
Applyfilter sert comme son nom l'indique à valider un filtre déjà existant. mais tout ce que je désire c'est arriver sur le formulaire en mode filtre pour formulaire sans devoir cliquer sur l'icone m'amenant dans ce mode. J'ai un second problème: comment basé un autre formulaire sur le résultat de ce premier filtre? |
Pour arriver au mode filtré, encore faut-il définir un filtre !
C'est l'objet de mon premier message : enregistrer un filtre avec le formulaire... L'icone de passage en mode filtré n'est opérationnelle que si un filtre est défini. Pour ton deuxième problème, je ne pense pas que l'on puisse baser un formulaire sur un formulaire filtré, il vaudrait mieux baser le formulaire sur une requête... A+ Blux "Les cons, ça ose tout. C'est même à ça qu'on les reconnait" |
Je ne veux pas arriver en mode filtrer just arriver et pouvoir sélectionner les valeurs que je veux dans les champs que je veux sans devoir presser filtre par formulaire. Ensuite je pense que je serai obligé de revenir en mode normal pour pouvoir presser sur un bouton m'ouvrant mon deuxième formulaire en mode tabulaire donc tous les tuples conprenant ces valeurs sont afficher, je click sur celui qu'il me faut et il m'ouvre mon état.
Je pense que il y a à peu près tout si tu pouvais m'aider je te serai infinement reconnaissant merci Aurore |
D'après ce que tu expliques, il semblerait que tes champs dans le formulaire soient indépendants. Dans ce cas, mets les en liste déroulante, laisse l'utilsateur choisir les bonnes valeurs dans toutes les listes, et à l'appui sur un bouton tu récupères les données des listes déroulantes pour ouvrir un autre formulaire...
Ou alors j'ai pas saisi où tu voulais en venir... A+ Blux "Les cons, ça ose tout. C'est même à ça qu'on les reconnait" |
Tu veux que je les récupère avec une requete
Champs = liste dans le formulaire Je vois ce que tu veux dire mais j'ai 38 champs au choix ce qui me fait 274 000 000 de possibillités. En faisant une ligne à la minute ça devrait pas me prendre plus de 10 000 ans... en fait c'est pour ça que je me suis dirigé vers les filtre par formulaire... |
10 000 ans...
ben comme ça, tu seras jamais au chômage... :-) Je n'ai pas compris ce que tu souhaites faire : où sont tes données, pourquoi veux-tu les filtrer ? Sache qu'il est parfaitement possible de modifier dynamiquement les données présentées dans une liste déroulante. Ex : un formulaire avec une liste des marques (de voitures), une liste des modèles et une liste des couleurs. Le choix de 'bmw' dans la première liste fera que la deuxième ne proposera que les modèles bmw et ainsi de suite... A+ Blux "Les cons, ça ose tout. C'est même à ça qu'on les reconnait" |
Le but est de sortir un état avec une seule ligne.
Pour cela il y a 38 champs dans ma table principal qui peuvent etre un critère de séléction ou pas. ex : taille = grand / apparance = moche / épaisseur = mince ex2 : taille = petit / épaisseur = mince donc j'ai un formulaire permettant de faire cette saisie et après un deuxième formulaire en mode tabulaire s'ouvre avec tous les tuples comprenant ces infos. On en choisi un et l'état avec cette ligne s'affiche |
Si tes 38 critères sont indépendants, quel est l'intérêt du filtre ?
Si c'est ce que j'ai compris, je te propose cela : - sélection des critères - appui sur un bouton (nécessaire puisque certains critères sont optionnels) - création d'une requête qui recherche tous les enr correspondant aux critères choisis - affichage d'un formulaire basé sur cette requête - sélection de l'enr souhaité - édition Ca irait ? A+ Blux "Les cons, ça ose tout. C'est même à ça qu'on les reconnait" |
C'était mon idée de base mais le probleme c'est que les 38 champs sont optionnel donc dans la requete qui les récupère je peu avoir quelque chose dans mon premier champs et rien dans le 37 autres ou le 1er , le 2eme et les 36 autres vides ...etc et tu fais ça pour les 38 champs ce qui me fait 274 000 000 de ou c'est un peu bcp non ? |
Ben oui, mais si on simplifie :
Tu crées une requête en vba en testant les champs : Mareq = "SELECT * FROM matable WHERE " if not isnull(champ1.value) then mareq = mareq + " critere1 = '" & champ1.value & "'" end if if not isnull(champ2.value) then mareq = mareq + " critere2 = '" & champ2.value & "'" end if .... if not isnull(champ38.value) then mareq = mareq + " critere38 = '" & champ38.value & "'" end if mareq = mareq + " ;"Il ne reste plus qu'à mettre un .recordsource = mareq pour ton deuxième formulaire. Ca irait ? Mais faut gérer les AND, je l'ai pas mis, mais bon, c'est l'esprit qui vaut... A+ Blux "Les cons, ça ose tout. C'est même à ça qu'on les reconnait" |
Très bonne idée je vai essayer merci bcp t'es un amour
|
J'essaye et je te donne des nouvelles
merci encore mais ton mareq c'est une variable? Si c'est le cas t'es sur que je peux basé un recordsource dessus? |
mareq est de type string
forms![mondeuxiemeformulaire].recordsource = mareq ou DoCmd.OpenForm "mondeuxiemeformulaire", acNormal, , mareq A+ Blux "Les cons, ça ose tout. C'est même à ça qu'on les reconnait" |
Désolé de faire une nouvelle fois appel à toi mais ça marche pas un message d'erreur s'affiche: (traduit en français) access ne peut pas trouver le formulaire mondeuxiemeformulaire se référant à du code vb...
c'est bizarre t'es sur qu'on peut lier le recordsource à une variable et si je la déclare pas mareq et que je nomme une requete comme ça |
Je confirme : on peut bien lier le recordsource à une variable (si elle contient quelque chose au format nécessaire, c'est à dire une requête). C'est ce que je fais depuis de nombreuses années ;-)
Ton erreur vient sûrement du fait que le formulaire dont tu souhaites changer une propriété n'est pas ouvert... Ouvre ton formulaire 'mondeuxiemeformulaire' et laisse-le en icône, exécute ensuite la procédure du formulaire principal, ça devrait aller beaucoup mieux ! A+ Blux "Les cons, ça ose tout. C'est même à ça qu'on les reconnait" |
effectivement ça joue un rôle mais un message d'erreur ( The action or method is invalid because the form or report isn't bound to a table or query.) apparait encore meme en simplifiant a fond la requete de cette façon:
mareq = "SELECT * FROM T_molecule ;" stDocName = "f_name1" DoCmd.OpenForm stDocName, acNormal, , mareq vois-tu l'erreur merci encore pour tout ce que tu fais pour moi c'est vraiment cool Aurore |
| 25/12 16h30 | [MacOS] FireFox -- tabulation et formulaire | MacOS |
| 02/11 11h14 | [Webmaster] Un formulaire de contact pour votre site | Webmaster |
| 05/05 18h24 | Ergonomie des formulaires en ligne | Ergonomie |
| 05/10 10h02 | [Sécurité] Filtrage d'internet pour les enfants | Sécurité |
| 05/11 11h52 | [Javascript] Effacer un champ de formulaire lors du clic (focus) | Javascript |
| 30/04 17h22 | VBA ACCESS Filtre dans un formulaire | 0 |
| 26/02 22h09 | Access-Filtre suivant sous-formulaire | 0 |
| 06/03 15h03 | [Access] récupdonnées sur filtre formulaire | 0 |
| 18/05 10h48 | Access: filtre sur formulaire | 2 |
![]() | DS Monkey Audio - Filtre APE - Le format MonkeysAudio (extension *.ape) est un format de compression audio lossless (sans pertes) permettant de réduire la... | Catégorie: Plugins audio Licence: Freeware/gratuit |
![]() | Photofiltre - PhotoFiltre est un logiciel de retouche d’images très complet. Il permet d'effectuer des réglages simples ou avancés sur une... | Catégorie: Retouche photo Licence: Freeware/gratuit |
![]() | Kerio - Kerio est un pare-feu très pratique et convivial, aux nombreuses fonctions, élément efficace dans la protection de votre ... | Catégorie: Firewall Licence: Freeware/gratuit |
![]() | K9 Web Protection - K9 Web Protection est un logiciel de contrôle parental permettant de contrôler et de limiter les accès à Internet de son... | Catégorie: Contrôle parental Licence: Freeware/gratuit |
![]() | Linksys WAP54G Wireless Access | Catégorie: Point d'accès pour réseaux sans fil | 48.65 € Atlanpolis |
![]() | Formula One Arcade | Catégorie: Jeu Playstation | 0.90 € PriceMinister |
![]() | Logitech Access Keyboard 600 | Catégorie: Clavier | 19.30 € La Boutique Du Net |
![]() | Logitech Formula Vibration Feedback | Catégorie: Joystick | 32.08 € Toutpourlamicro.com |