Appeler un formulaire à partir de deux autres au choix
Fermé
Laurano_75018
Messages postés
9
Date d'inscription
dimanche 30 janvier 2022
Statut
Membre
Dernière intervention
5 février 2022
-
30 janv. 2022 à 09:20
yg_be Messages postés 23309 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 novembre 2024 - 1 févr. 2022 à 15:43
yg_be Messages postés 23309 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 novembre 2024 - 1 févr. 2022 à 15:43
A voir également:
- Appeler un formulaire à partir de deux autres au choix
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Liste déroulante de choix excel - Guide
- Appeler en privé - Guide
- Formulaire de réclamation facebook - Guide
- Combien y a-t-il de bateaux dans la zone de 1000 pixels de large et 500 pixels de haut à partir du coin supérieur gauche de cette image ? - Forum Graphisme
8 réponses
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
Ambassadeur
1 550
30 janv. 2022 à 13:24
30 janv. 2022 à 13:24
bonjour,
Quand tu écris "une macro qui exécute la requête sélection associée au formulaire", peux-tu être plus précis? Que fait la macro?
Pourquoi ne pas avoir, pour le formulaire C, une autre macro qui utilise une autre requête comme filtrer d'ouverture du formulaire?
Quand tu écris "une macro qui exécute la requête sélection associée au formulaire", peux-tu être plus précis? Que fait la macro?
Pourquoi ne pas avoir, pour le formulaire C, une autre macro qui utilise une autre requête comme filtrer d'ouverture du formulaire?
Laurano_75018
Messages postés
9
Date d'inscription
dimanche 30 janvier 2022
Statut
Membre
Dernière intervention
5 février 2022
30 janv. 2022 à 13:59
30 janv. 2022 à 13:59
Bonjour,
Merci pour ta réponse.
Je débute dans l'utilisation d'access. Je veux en fait transposer dans Access tout un suivi des gestion de projet que je fais actuellement dans Excel mais pour lequel access serait surement infiniment plus approprié. Je suis donc face à différents cas de figures que je connais dans Excel et que je dois retransposer dans access mais je suis très ouvert sur la façon de m'y prendre puisque de toute façon je démarre.
Donc peu importe comment je fais actuellement car il y a fort à parier que je ne m'y prends pas bien. Je voudrais en fait juste savoir comment je peux gérer le cas où je veux afficher un formulaire qui repose sur une requête de sélection d'un champs, sachant que ce champs peut-être défini à partir de différentes sources. La condition "ou" pour définir les sources possibles ne me semble pas remplir son office sans que je comprenne pourquoi.
Merci pour ta réponse.
Je débute dans l'utilisation d'access. Je veux en fait transposer dans Access tout un suivi des gestion de projet que je fais actuellement dans Excel mais pour lequel access serait surement infiniment plus approprié. Je suis donc face à différents cas de figures que je connais dans Excel et que je dois retransposer dans access mais je suis très ouvert sur la façon de m'y prendre puisque de toute façon je démarre.
Donc peu importe comment je fais actuellement car il y a fort à parier que je ne m'y prends pas bien. Je voudrais en fait juste savoir comment je peux gérer le cas où je veux afficher un formulaire qui repose sur une requête de sélection d'un champs, sachant que ce champs peut-être défini à partir de différentes sources. La condition "ou" pour définir les sources possibles ne me semble pas remplir son office sans que je comprenne pourquoi.
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
1 550
30 janv. 2022 à 15:33
30 janv. 2022 à 15:33
Si j'ai compris, je ferais un peu différemment.
Dans la définition d'un formulaire, on configure la source du formulaire, et on peut aussi y configurer un filtre appliqué à l'ouverture du formulaire. Dans la plupart des cas, ce n'est pas le bon endroit pour configurer le filtre.
Quand une macro (ou du code VBA) ouvre le formulaire, on peut, dans la macro ou le code, spécifier un filtre à appliquer à l'ouverture du formulaire.
Je suppose que tu essaies, dans la définition du formulaire, de préciser un filtre qui conviendra pour toutes les méthodes d'ouverture du formulaire.
Je suggère, plutôt, de préciser le filtre adéquat lors de chaque type d'ouverture.
Un petit avertissement, comme tu signales que tu commences avec Access, en venant d'Excel: le succès de ton projet dépendra de la qualité de la structure de tes tables. Une mauvaise structure risque, ensuite, de te forcer à recommencer une bonne partie de ton travail.
Dans la définition d'un formulaire, on configure la source du formulaire, et on peut aussi y configurer un filtre appliqué à l'ouverture du formulaire. Dans la plupart des cas, ce n'est pas le bon endroit pour configurer le filtre.
Quand une macro (ou du code VBA) ouvre le formulaire, on peut, dans la macro ou le code, spécifier un filtre à appliquer à l'ouverture du formulaire.
Je suppose que tu essaies, dans la définition du formulaire, de préciser un filtre qui conviendra pour toutes les méthodes d'ouverture du formulaire.
Je suggère, plutôt, de préciser le filtre adéquat lors de chaque type d'ouverture.
Un petit avertissement, comme tu signales que tu commences avec Access, en venant d'Excel: le succès de ton projet dépendra de la qualité de la structure de tes tables. Une mauvaise structure risque, ensuite, de te forcer à recommencer une bonne partie de ton travail.
Laurano_75018
Messages postés
9
Date d'inscription
dimanche 30 janvier 2022
Statut
Membre
Dernière intervention
5 février 2022
>
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
30 janv. 2022 à 16:51
30 janv. 2022 à 16:51
Je sais que le truc avec acces , c'est de bien avoir construit ses tables. Bien sûr après avoir travaillé un bon moment sur la question, je pense que c'est le cas mais je ne ne suis bien évidemment pas à l'abri de me rendre compte encore de failles. Je verrai bien...
Tu me dis de préciser la filtre adéquat lors de chaque type d'ouverture. On est bien d'accord mais c'est précisément ce que je n'arrive pas à faire. La seule solution que je vois serait d'avoir deux formulaires B : un pour quand j'ouvre avec A et l'autre quand j'ouvre avec C. Je veux essayer d'éviter cette option qui m'obligerait à maintenir deux formulaires B en tout point identiques. De plus je ne suis pas à l'abri de trouver des cas où il pourrait y avoir 3 ou 4 sources possibles. Je démultiplierais alors mes formulaires de façon déraisonnable avec la maintenance que cela impliquerait. Je voudrais éviter cette situation absurde.
Pour préciser le contenu de ma base :
- Le formulaire A contient les données "Catégorie" et "Famille" et sert à définir les familles par catégorie
- Le formulaire B contient les données "Catégorie", "Famille" et "sous-famille" et sert à définir les sous-familles de chaque famille
- Le formulaire C contient les données "Famille", "sous-famille" et "segment" et sert à définir les segments de chaque sous-famille.
Et je voudrais donc que le champs famille me permette de passer de A à B ou de C à B, comme je le disais en évitant de doublonner le formulaire B pour répondre à chaque type de filtre.
Tu me dis de préciser la filtre adéquat lors de chaque type d'ouverture. On est bien d'accord mais c'est précisément ce que je n'arrive pas à faire. La seule solution que je vois serait d'avoir deux formulaires B : un pour quand j'ouvre avec A et l'autre quand j'ouvre avec C. Je veux essayer d'éviter cette option qui m'obligerait à maintenir deux formulaires B en tout point identiques. De plus je ne suis pas à l'abri de trouver des cas où il pourrait y avoir 3 ou 4 sources possibles. Je démultiplierais alors mes formulaires de façon déraisonnable avec la maintenance que cela impliquerait. Je voudrais éviter cette situation absurde.
Pour préciser le contenu de ma base :
- Le formulaire A contient les données "Catégorie" et "Famille" et sert à définir les familles par catégorie
- Le formulaire B contient les données "Catégorie", "Famille" et "sous-famille" et sert à définir les sous-familles de chaque famille
- Le formulaire C contient les données "Famille", "sous-famille" et "segment" et sert à définir les segments de chaque sous-famille.
Et je voudrais donc que le champs famille me permette de passer de A à B ou de C à B, comme je le disais en évitant de doublonner le formulaire B pour répondre à chaque type de filtre.
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
1 550
>
Laurano_75018
Messages postés
9
Date d'inscription
dimanche 30 janvier 2022
Statut
Membre
Dernière intervention
5 février 2022
30 janv. 2022 à 18:05
30 janv. 2022 à 18:05
Je me demande si tu lis chacune des phrases que j'écris.
Que-ne comprends-tu pas dans cette phrase: Quand une macro (ou du code VBA) ouvre le formulaire, on peut, dans la macro ou le code, spécifier un filtre à appliquer à l'ouverture du formulaire.
Il faut donc spécifier le filtre dans la définition de la macro, pas dans la définition du formulaire.
Tu auras, bien sûr, une macro associée à chacun des formulaires A et C.
Tu avais écrit "J'y arrive sans difficulté en faisant une macro": que fait cette macro?
Que-ne comprends-tu pas dans cette phrase: Quand une macro (ou du code VBA) ouvre le formulaire, on peut, dans la macro ou le code, spécifier un filtre à appliquer à l'ouverture du formulaire.
Il faut donc spécifier le filtre dans la définition de la macro, pas dans la définition du formulaire.
Tu auras, bien sûr, une macro associée à chacun des formulaires A et C.
Tu avais écrit "J'y arrive sans difficulté en faisant une macro": que fait cette macro?
Laurano_75018
Messages postés
9
Date d'inscription
dimanche 30 janvier 2022
Statut
Membre
Dernière intervention
5 février 2022
>
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
30 janv. 2022 à 18:20
30 janv. 2022 à 18:20
Lol : oui je te rassure je lis ce que tu écris mais je t'avoue que je n'ai pas compris de suite. Mais ce que tu avais dit avait fini par faire tilt dans ma tête et j'étais en train de chercher comment faire. En effet, ayant enfin compris ce que tu avais dit, J'ai compris que fondamentalement, pour ne pas avoir de problème, les conditions de filtre ne devaient s'exécuter qu'au moment de la macro et qu'il ne devait pas y en avoir dans la requete des sélection elle-même.
J'ai donc viré les filtres des requetes associées au formulaire pour tout traiter uniquement en macro.
J'ai écrit une macro (avec le générateur) pour :
- au clic sur un champs Famille dans le formulaire A
- ouvrir le formulaire B
- avec pour filtre la requête B (sur laquelle s'appuie le formulaire B et qui ne comporte plus de conditions de filtre)
- avec pour critère que la famille = famille du formulaire A.
Ca m'ouvre bien le formulaire mais sur le premier enregistrement de famille du formulaire A, pas nécessairement sur celui sur lequel j'ai cliqué. Je suis donc en train de chercher comment je peux dire à access quel enregistrement du champs famaille constiyue le filtre puisque le clic ne suffit pas...
J'ai donc viré les filtres des requetes associées au formulaire pour tout traiter uniquement en macro.
J'ai écrit une macro (avec le générateur) pour :
- au clic sur un champs Famille dans le formulaire A
- ouvrir le formulaire B
- avec pour filtre la requête B (sur laquelle s'appuie le formulaire B et qui ne comporte plus de conditions de filtre)
- avec pour critère que la famille = famille du formulaire A.
Ca m'ouvre bien le formulaire mais sur le premier enregistrement de famille du formulaire A, pas nécessairement sur celui sur lequel j'ai cliqué. Je suis donc en train de chercher comment je peux dire à access quel enregistrement du champs famaille constiyue le filtre puisque le clic ne suffit pas...
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
1 550
>
Laurano_75018
Messages postés
9
Date d'inscription
dimanche 30 janvier 2022
Statut
Membre
Dernière intervention
5 février 2022
30 janv. 2022 à 20:21
30 janv. 2022 à 20:21
Aie, le formulaire A serait un formulaire en continu?
Laurano_75018
Messages postés
9
Date d'inscription
dimanche 30 janvier 2022
Statut
Membre
Dernière intervention
5 février 2022
30 janv. 2022 à 20:55
30 janv. 2022 à 20:55
je ne vois pas comment je peux joindre mon fichier...
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
1 550
30 janv. 2022 à 21:09
30 janv. 2022 à 21:09
c'est très simple: tu importes ton fichier quelque part sur internet (google drive, cjoint.com, ...), puis tu partages ici un lien vers le fichier.
Laurano_75018
Messages postés
9
Date d'inscription
dimanche 30 janvier 2022
Statut
Membre
Dernière intervention
5 février 2022
31 janv. 2022 à 07:51
31 janv. 2022 à 07:51
J'ai fait le partage sur One Drive : https://onedrive.live.com/redir?resid=947BBD525B83D52D!2101&authkey=!AE3FxwzsjWNhIHU&e=YRRI2q.
Quelques précisions parce que pour que mon cas soit plus facilement compréhensible, j'avais changé le nom des données :
- Formulaire A = F010....
- Formulaire B = F020...
- Formulaire C = F030
Catégorie = domaine
Famille = Code scénario
sous-famille = Code variante
segment = test
Et donc mon objectif est d'accéder au formulaire F020 depuis F010 ou F030 en cliquant sur un code scénario dur formulaire
Quelques précisions parce que pour que mon cas soit plus facilement compréhensible, j'avais changé le nom des données :
- Formulaire A = F010....
- Formulaire B = F020...
- Formulaire C = F030
Catégorie = domaine
Famille = Code scénario
sous-famille = Code variante
segment = test
Et donc mon objectif est d'accéder au formulaire F020 depuis F010 ou F030 en cliquant sur un code scénario dur formulaire
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
Ambassadeur
1 550
31 janv. 2022 à 12:37
31 janv. 2022 à 12:37
Tu peux obtenir le résultat souhaité avec un code VBA.
A titre d'exemple, le code suivant se déclenche quand tu cliques sur le nom du scénario:
Ce code fait, je pense, la même chose que ta macro. Cependant, heureusement, il récupère la valeur de l'enregistrement courant, pas du premier enregistrement.
A titre d'exemple, le code suivant se déclenche quand tu cliques sur le nom du scénario:
Private Sub Nom_du_scénario_Click() Call DoCmd.OpenForm("F020_Scénarios_par_domaine", , , "[Code scénario]='" + CStr(Me.Code_scénario) + "'") Call DoCmd.Close(acForm, Me.Name) End Sub
Ce code fait, je pense, la même chose que ta macro. Cependant, heureusement, il récupère la valeur de l'enregistrement courant, pas du premier enregistrement.
Laurano_75018
Messages postés
9
Date d'inscription
dimanche 30 janvier 2022
Statut
Membre
Dernière intervention
5 février 2022
31 janv. 2022 à 20:22
31 janv. 2022 à 20:22
merci pour ta réponse et ta disponibilité : je n'ai pas encore du tout regardé l'aspect VBA dans access. Je connais dans excel mais pas là et même dans excel ça fait un petit moment que je n'en ai pas fait. Du coup, is je comprends bien, je ne vais pas avoir d'autre chois que d'en passer par là.
C'est dommage mais c'est ce que je vais devoir faire... merci en tout cas.
C'est dommage mais c'est ce que je vais devoir faire... merci en tout cas.
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
1 550
1 févr. 2022 à 09:07
1 févr. 2022 à 09:07
Peut-être qu'en utilisant des listes déroulantes au lieu de formulaires en continu, tu pourras travailler sans VBA.
Je n'ai pas d'expérience dans ce domaine.
Je n'ai pas d'expérience dans ce domaine.
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
Ambassadeur
1 550
31 janv. 2022 à 20:43
31 janv. 2022 à 20:43
Je ne sais pas comment réaliser cela avec une macro, et je sais comment le faire en VBA.
Cela ne signifie pas que c'est impossible sans VBA.
Cela ne signifie pas que c'est impossible sans VBA.
Laurano_75018
Messages postés
9
Date d'inscription
dimanche 30 janvier 2022
Statut
Membre
Dernière intervention
5 février 2022
1 févr. 2022 à 13:38
1 févr. 2022 à 13:38
j'y suis arrivé sans macro !!! :o)
La clé dans tes remarques, c'était qu'il fallait que la détermination de la source ne se fasse pas dans le formulaire F020. Or mon formulaire se basait sur une requête de sélection et du coup j'étais coincé.
J'ai refait mon formulaire F020 en interrogeant directement les tables dont j'avais besoin et sans passer par une requête de sélection. Ensuite j'ai fait une requête de sélection pour le formulaire F010 que j'applique depuis une macro dans le formulaire F010 et une requête de sélection pour le formulaire F030 que j'applique depuis une macro dans le formulaire F030, et ça marche !
Tout cela est juste logique mais encore faut-il rentrer dans la logique. Ce n''est pas toujours facile. En tout cas, tu m'as aidé à trouver la solution et je t'en remercie ! :o)
La clé dans tes remarques, c'était qu'il fallait que la détermination de la source ne se fasse pas dans le formulaire F020. Or mon formulaire se basait sur une requête de sélection et du coup j'étais coincé.
J'ai refait mon formulaire F020 en interrogeant directement les tables dont j'avais besoin et sans passer par une requête de sélection. Ensuite j'ai fait une requête de sélection pour le formulaire F010 que j'applique depuis une macro dans le formulaire F010 et une requête de sélection pour le formulaire F030 que j'applique depuis une macro dans le formulaire F030, et ça marche !
Tout cela est juste logique mais encore faut-il rentrer dans la logique. Ce n''est pas toujours facile. En tout cas, tu m'as aidé à trouver la solution et je t'en remercie ! :o)
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
1 550
1 févr. 2022 à 15:43
1 févr. 2022 à 15:43
En effet, je me disais que beaucoup de gens font des choses assez complètes sans macro et certainement sans VBA, et je me demandais pourquoi cela ne marchait pas pour toi.
Je n'ai pas l'expérience de ces possibilités de Access, moi je démarre par le VBA et je fais le minimum avec ces possibilités de Access.
Content que cela ait marché pour toi!
Je n'ai pas l'expérience de ces possibilités de Access, moi je démarre par le VBA et je fais le minimum avec ces possibilités de Access.
Content que cela ait marché pour toi!