Bonjour,
Envoyé par
Peanut
Si on ne peut pas appeler un formulaire d'un complément .mda, peut-on "décompiler" un formulaire pour récupérer le code servant à le générer ?
Je pourrais alors l'incorporer dans un module du .mda qui créerait le formulaire dans les bases appelantes avant de s'en servir ?
D'abord il ne faut pas confondre un fichier complément et une bibliothèque de fonctions.
Le complément est un fichier qui est pris en charge par Access pour mettre ses fonctionnalités à la disposition des utilisateurs via l'interface utilisateur.
La vocation d'un complément n'est pas d'être utilisé directement par des appels au code et aux objets qu'il contient.
A la place, on utilise un fichier MDA ou MDB (ça n'a aucune importance) auquel on accède au moyen d'une référence.
Ensuite, il est possible d'accéder aux objets/classes définies à l'intérieur d'un fichier bibliothèque MAIS il y a une astuce (évidemment ).
Pour ce qui concerne un formulaire stocké dans la bibliothèque, l'Application Access ne peut y accéder directement.
Par exemple, impossible de faire:
DoCmd.OpenForm "le nom du formulaire dans la bibliothèque"
A la place, on crée dans la bibliothèque une fonction qui sait "instancier" un formulaire de la bibliothèque et peut, par exemple, retourner une référence vers l'objet qui correspond à cette instance d'un formulaire.
Dans l'exemple ci-dessous, le formulaire s'appelle MonFormulaire.
Une classe est automatiquement créée pour prendre en charge des instances de ce formulaire. Cette classe s'appelle Form_MonFormulaire.
Dans la bibliothèque:
1 2 3
| Public Function CréerFormulaire() as Access.Form
Set CréerFormulaire = New Form_MonFormulaire
End Function |
Dans l'application Access:
1 2 3 4
| Dim oForm As Access.Form
Set oForm = CréerFormulaire()
oForm.Visible = True |
Partager