Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Ouvrir un formulaire dans un autre !

2 réponses
Avatar
Paul Florent
Bonjour à tous.
Sous Access 2003, j'ai un formulaire principal
avec trop de sous formulaires (12) et de listes déroulantes (28)
Le formulaire principal est lent
et parfois j'obtiens le message "Trop de bases de données ouvertes !"
Ce formulaire principal à un contrôle onglet avec 9 onglets.
Pour alléger le tout, je pense retirer du formulaire principal
tous les tous formulaires, et placer des boutons de commande pour ouvrir les
sous-formulaires.
Jusque là pas (trop) de problème,
mais je souhaiterais ouvrir les sous formulaires "dans" le formulaire
principal
et çà, je ne sais pas faire

Merci par avance pour votre aide
Paul

2 réponses

Avatar
Gilles MOUGNOZ
Bonjour à tous.
Sous Access 2003, j'ai un formulaire principal
avec trop de sous formulaires (12) et de listes déroulantes (28)
Le formulaire principal est lent
et parfois j'obtiens le message "Trop de bases de données ouvertes !"
Ce formulaire principal à un contrôle onglet avec 9 onglets.
Pour alléger le tout, je pense retirer du formulaire principal
tous les tous formulaires, et placer des boutons de commande pour ouvrir
les sous-formulaires.
Jusque là pas (trop) de problème,
mais je souhaiterais ouvrir les sous formulaires "dans" le formulaire
principal
et çà, je ne sais pas faire
Merci par avance pour votre aide
Paul


Bonjour, Paul

Le plus simple (à utiliser, pas à faire!) serait de rajouter une liste
déroulante pour sélectionner le sous-formulaire souhaité.
A partir de là, tu modifie directement la source d'un contrôle
sous-formulaire par un code de ce style:
Me![TonControleSousForm].SourceObject = LeNomDuSousFormulaire
Attention à bien renseigner également les champs de liaison:
Me![TonControleSousForm].LinkChildFields = NomDuChampFils ' dans le
sous-form
Me![TonControleSousForm].LinkMasterFields = NomDuChampPere ' dans le form
principal
S'il n'y a pas de liaison, mets une chaîne vide ("") à la place de
NomDuChampFils et NomDuChampPere.
Après, tu réactualises le sous-formulaire et le formulaire principal:
Me![TonControleSousForm].Form.Requery
Me.Requery
L'idéal, en terme de maintenance, est de créer une table qui contiendrait
toutes les données utiles (nom des sous-forms, noms des champs de liaison
père et fils) et de baser la liste déroulante dont je parle au début sur
cette table.

Cela fonctionne bien (quand on a compris comment ça marche!) et je l'utilise
depuis plusieurs années pour un formulaire Dictionnaire qui présente ainsi
la même interface pour toutes mes tables de paramétrage.

Bonne continuation

Avatar
Patrick Fredin
Bonjour,

Dans le formulaire principal, tu places un sous-formulaire et , selon le
choix de l'utilisateur, tu indiques avec un peu de code quel formulaire doit
être affiché. Cela devrait fonctionner bien que je ne l'ai pas testé.

Bon courage.

--
Patrick


"Paul Florent" wrote:

Bonjour à tous.
Sous Access 2003, j'ai un formulaire principal
avec trop de sous formulaires (12) et de listes déroulantes (28)
Le formulaire principal est lent
et parfois j'obtiens le message "Trop de bases de données ouvertes !"
Ce formulaire principal à un contrôle onglet avec 9 onglets.
Pour alléger le tout, je pense retirer du formulaire principal
tous les tous formulaires, et placer des boutons de commande pour ouvrir les
sous-formulaires.
Jusque là pas (trop) de problème,
mais je souhaiterais ouvrir les sous formulaires "dans" le formulaire
principal
et çà, je ne sais pas faire

Merci par avance pour votre aide
Paul