ACCESS : Créer des compléments (menu/assistants) en VBA

Thierry GASPERMENT

Apprenez à créer des compléments en VBA pour Access.
Ces compléments peuvent être exécutés ensuite par le menu ou en tant qu'assistants.

- Titre : ACCESS : Créer des compléments (menu/assistants) en VBA

- Auteur : Thierry GASPERMENT

- Parution : 5 avril 2007

- Mise à jour : 13 février 2011

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2007 Thierry GASPERMENT. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.

Sommaire

- I. Généralités sur les compléments

- I-A. Comment créer un complément?

- I-B. Comment s'installe un complément?

- I-B-1. Sécurité sous Vista

- I-B-2. Sécurité sous Seven

- I-C. Structure de la table USysRegInfo

- I-D. Comment créer la table USysRegInfo ?

- II. Complément de Menu

- II-A. Création

- II-A-1. Création de la table de paramètres d'installation

- II-A-2. Création de la base de données

- II-B. Installation

- III. Assistant formulaire ou état

- III-A. Création

- III-A-1. Création de la table de paramètres d'installation

- III-A-2. Création de la base de données

- III-B. Installation

- IV. Assistant contrôle ou propriété

- IV-A. Création

- IV-A-1. Création de la table de paramètres d'installation

- IV-A-2. Création de la base de données

- IV-B. Installation

- V. Assistant table ou requête

- V-A. Création

- V-A-1. Création de la table de paramètres d'installation

- V-A-2. Création de la base de données

- V-B. Installation

- VI. Enchaîner les assistants

- VII. Gestion de la confidentialité avec Access 2007

- VIII. Astuces de programmation : CodeDb et CodeProject

- IX. Conclusion

I - Généralités sur les compléments

I-A - Comment créer un complément?

Vous avez tous déjà utilisé des compléments (ou add-ins), peut-être sans le savoir!
Les assistants de création de contrôles, de formulaires… sont des compléments.

Ces compléments sont de simples bases Access, sauvegardées habituellement avec l'extension mda, ou mde si le complément est compilé.

Pour créer de tels compléments, seul Access est nécessaire.

Nous ne traiterons pas dans cet article des compléments COM.

I-B - Comment s'installe un complément?

La particularité d'un complément est d'avoir, dans une table système nommée USysRegInfo, les paramètres nécessaires à son installation.

L'installation se fait grâce au Gestionnaire de compléments accessible dans le menu :
Outils --> Macros complémentaires --> Gestionnaire de compléments.

A partir d'Access 2007, le gestionnaire de compléments est disponible dans l'onglet Outils de base de données du ruban.
Dans Compléments, sélectionnez Gestionnaire de compléments.

Cette installation se fait en deux étapes :

1. copie du complément dans le répertoire approprié ;

2. copie des entrées de la table USysRegInfo dans le registre de Windows.

Une fois installés sur un ordinateur, les compléments sont accessibles dans toutes les bases de données ouvertes sur cet ordinateur.

Sous Windows Vista ou Seven, la sécurité peut vous empêcher d'installer le complément.
Vous devez exécuter Access en administrateur :

Clic droit sur le raccourci vers Access.exe => Propriétés => onglet Compatibilité => cochez Exécuter ce programme en tant qu'administrateur.
Décochez la case après avoir installé l'assistant.

Vous pouvez également procéder selon les indications suivantes.

I-B-1 - Sécurité sous Vista

Cliquez sur le bouton en bas à gauche de Windows :

Ouvrez le panneau de configuration :

Choisissez Comptes utilisateurs :

Cliquez sur le bouton Activer ou désactiver le contrôle des comptes utilisateurs.

Décochez l'option :

Redémarrez le PC quand cela est demandé :

Installez le complément lorsque le PC est redémarré.

Faites ensuite la manipulation inverse pour réactiver la sécurité.

Ou réactivez-la en ouvrant le centre de sécurité :

Cliquez alors sur le bouton Activer maintenant.

Merci à Dolphy35 pour ces explications.

I-B-2 - Sécurité sous Seven

Ouvrez le panneau de configuration.
Choisissez Comptes utilisateurs :

cliquez sur le bouton Modifier les paramètres de contrôle des comptes utilisateurs.

Abaisser le niveau : Ne jamais m'avertir :

Redémarrez le PC quand cela est demandé.

Installez le complément lorsque le PC est redémarré.

Faites ensuite la manipulation inverse pour réactiver la sécurité.

Merci à Domi2 pour ces explications.

I-C - Structure de la table USysRegInfo

Pour que le complément soit installable, il faut créer une table système qui contient les paramètres d'installation du complément.
Cette table USysRegInfo est utilisée par le gestionnaire de compléments d'Access lors de l'installation.

Voici la structure de cette table :

La structure de la table est identique quel que soit le type de complément.

Les données de cette table seront copiées dans le registre de Windows :

- Subkey : clé de registre ;

- Type : type de valeur ;

- ValName : nom de la valeur ;

- Value : donnée de la valeur.

I-D - Comment créer la table USysRegInfo ?

Comme c'est une table système, il faut d'abord demander l'affichage de ces tables système.
Outils --> Options --> onglet Affichage --> cochez Objets système

A partir d'Access 2007 : clic droit sur l'en-tête du volet de navigation à gauche puis :
Options de navigation… => cochez Afficher les objets système.

Vous pouvez soit :

- créer vous-même cette table ;

- importer la structure de cette table d'un autre complément.

L'import est la solution la plus simple :
Dans le menu : Fichier --> Données externes --> Importer, choisissez un complément.
A partir d'Access 2007 : dans l'onglet Données externes du ruban, choisissez Access.

Vous pouvez trouver les compléments d'Access dans le répertoire d'installation d'Office :
Pour Access 2003 par exemple : C:\Program Files\Microsoft Office 2003\OFFICE11\ACWZMAIN.MDE

Choisissez ici la table USysRegInfo et cliquez OK.

Videz le contenu de la table importée si elle est déjà remplie.

Si la structure est toujours identique, le contenu de la table varie en fonction du type de complément.

Les chapitres suivants détaillent la création des entrées de table dans chaque cas.

II - Complément de Menu

II-A - Création

II-A-1 - Création de la table de paramètres d'installation

Créez la structure de la table UsysRegInfo selon les instructions du paragraphe Comment créer la table USysRegInfo?

Le champ Subkey détermine l'emplacement des entrées de registre à ajouter à l'installation :
Pour un complément de menu : HKEY_CURRENT_ACCESS_PROFILE\Menu Add-ins\NomDuMenu

Quatre enregistrements sont nécessaires pour un menu :

Type

ValName

Value

Description

0

Cet enregistrement demande au gestionnaire de compléments d'installer le complément à l'aide des enregistrements suivants.

1

Expression

=NomDeLaFonction()

Nom de la fonction à lancer
Lors du clic sur l'entrée de menu correspondant au complément, la fonction mentionnée est exécutée.

1

Library

|ACCDIR\NomDuFichierComplément.mda

Chemin d'installation du complément
Le chemin est |ACCDIR\ (Access installera le complément dans le répertoire utilisateur adéquat), suivi du nom de fichier du complément.

1

Version

1, 2 ou 3

la valeur détermine la visibilité du complément :

- 1 = Visible uniquement dans les bases de données mdb

- 2 = Visible uniquement dans les projets adp

- 3 = Visible dans les deux types de fichiers

A partir de ces informations, remplissons la table USysRegInfo ainsi :

Subkey

Type

ValName

Value

HKEY_CURRENT_ACCESS_PROFILE\Menu Add-ins\MenuDVP

0

HKEY_CURRENT_ACCESS_PROFILE\Menu Add-ins\MenuDVP

1

Expression

=Fonction_Test_Menu()

HKEY_CURRENT_ACCESS_PROFILE\Menu Add-ins\MenuDVP

1

Library

|ACCDIR\Test_Menu.mda

HKEY_CURRENT_ACCESS_PROFILE\Menu Add-ins\MenuDVP

1

Version

3

II-A-2 - Création de la base de données

Créez une nouvelle base Access, cette base est notre complément de menu.
Nommez la par exemple Test_Menu.mda

On a d'abord besoin de la fonction qui sera le point d'entrée du complément de menu.
On crée donc dans un nouveau module une fonction nommée par exemple Fonction_Test_Menu.

On peut par exemple utiliser Screen.ActiveForm pour connaître le formulaire actif

Function Fonction_Test_Menu()
On error resume next
MsgBox "Le formulaire actif est : " & Screen.ActiveForm.Name
If err.number <> 0 then MsgBox "Pas de formulaire actif"
End Function

Les propriétés de la base de données doivent également être modifiées, dans Fichier --> Propriétés de la base)

Le Titre, la Société et le Commentaire apparaîtrons dans le gestionnaire de compléments.

II-B - Installation

Dans le menu : Outils --> Macros complémentaires --> Gestionnaire de compléments.
Cliquez sur le bouton : Ajoutez un nouveau…, sélectionnez le fichier mda du complément à installer.

On note que les propriétés de la base de données mises à jour précédemment ont bien été utilisées.

Désormais, dans toutes les bases Access, on obtient une nouvelle entrée de menu dans Macro Complémentaire :

Si on clique sur ce menu, on exécute la fonction Fonction_Test_Menu.

L'exemple affiche simplement le nom du formulaire actif dans une boîte de message.
Il est possible de faire mieux en ajoutant aux compléments des formulaires, des tables, des états…
Les objets Screen.ActiveControl, Screen.ActiveForm, Screen.ActiveReport sont utiles pour connaître le nom des objets actifs.

III - Assistant formulaire ou état

III-A - Création

III-A-1 - Création de la table de paramètres d'installation

Créez la structure de la table UsysRegInfo selon les instructions du paragraphe Comment créer la table USysRegInfo?

Le champ Subkey détermine l'emplacement des entrées de registre à ajouter à l'installation :
Pour un assistant de création de formulaire : HKEY_CURRENT_ACCESS_PROFILE\Wizards\Form Wizards\NomAssistant

Pour un assistant de création d'état : HKEY_CURRENT_ACCESS_PROFILE\Wizards\Report Wizards\NomAssistant

Huit enregistrements sont nécessaires pour un assistant de formulaire ou d'état :

Type

ValName

Value

Description

0

Cet enregistrement demande au gestionnaire de compléments d'installer le complément à l'aide des enregistrements suivants.

1

Bitmap

Chemin d'un fichier image Bitmap (*.bmp)

Cette image s'affiche dans la liste des assistants, si la valeur n'est pas renseignée alors aucune image ne s'affiche.

4

Datasource Required

0 ou 1

0 : Le choix d'une table ou requête est facultatif;
1 : L'assistant impose le choix d'une table ou requête source des données avant de continuer.
le nom de la table ou requête choisie est passée en paramètre à la fonction définie dans la valeur Function

1

Description

Texte libre

Description à afficher dans la liste des asssistants.

1

Function

NomDeLaFonction

Nom de la fonction à lancer
Lors de la sélection de l'assistant, la fonction mentionnée est exécutée.

4

Index

Numérique

Position dans la liste des assistants
Mettre 0 pour que l'assistant soit en première position.

1

Library

|ACCDIR\NomDuFichierComplément.mda

Chemin d'installation du complément
Le chemin est |ACCDIR\ (Access installera le complément dans le répertoire utilisateur adéquat), suivi du nom de fichier du complément.

1

Version

1, 2 ou 3

la valeur détermine la visibilité du complément :

- 1 = Visible uniquement dans les bases de données mdb

- 2 = Visible uniquement dans les projets adp

- 3 = Visible dans les deux types de fichiers

A partir de ces informations, remplissons la table USysRegInfo ainsi :

Subkey

Type

ValName

Value

HKEY_CURRENT_ACCESS_PROFILE\Wizards\Form Wizards\Test_Form

0

HKEY_CURRENT_ACCESS_PROFILE\Wizards\Form Wizards\Test_Form

1

Bitmap

HKEY_CURRENT_ACCESS_PROFILE\Wizards\Form Wizards\Test_Form

4

Datasource Required

1

HKEY_CURRENT_ACCESS_PROFILE\Wizards\Form Wizards\Test_Form

1

Description

Tutoriel DVP Assistant formulaire

HKEY_CURRENT_ACCESS_PROFILE\Wizards\Form Wizards\Test_Form

1

Function

Fonction_Test_formulaire

HKEY_CURRENT_ACCESS_PROFILE\Wizards\Form Wizards\Test_Form

4

Index

0

HKEY_CURRENT_ACCESS_PROFILE\Wizards\Form Wizards\Test_Form

1

Library

|ACCDIR\Test_Form.mda

HKEY_CURRENT_ACCESS_PROFILE\Wizards\Form Wizards\Test_Form

1

Version

3

III-A-2 - Création de la base de données

Créez une nouvelle base Access, cette base est notre assistant de création de formulaire ou d'état.
Nommez la par exemple Test_Formulaire.mda

On a d'abord besoin de la fonction qui sera le point d'entrée de l'assistant.
On crée donc dans un nouveau module une fonction nommée par exemple Fonction_Test_formulaire.

La fonction doit avoir un paramètre optionnel pour le choix de la source de données.

Function Fonction_Test_formulaire(Optional pRecordSource As String)
' Pour tests, on affiche la source de données choisie dans une boîte de message
MsgBox "Source de données choisie = " & pRecordSource
End Function

Les propriétés de la base de données doivent également être modifiées, dans Fichier --> Propriétés de la base.

Le Titre, la Société et le Commentaire apparaîtrons dans le gestionnaire de compléments.

III-B - Installation

Dans le menu : Outils --> Macros complémentaires --> Gestionnaire de compléments.
Cliquez sur le bouton : Ajoutez un nouveau…, sélectionnez le fichier mda du complément à installer.

On note que les propriétés de la base de données mises à jour précédemment ont bien été utilisées.

Désormais, dans toutes les bases Access, on obtient un nouvel assistant de création de formulaire.

Si on choisit cet assistant, on exécute la fonction Fonction_Test_Formulaire.

L'exemple affiche simplement, dans une boîte de message, le nom de la source de données sélectionnée.

En fonction du type d'assistant développé, on pourra utiliser les méthodes : CreateForm, CreateReport et CreateControlpour créer un nouvel objet en suivant ses propres règles.

IV - Assistant contrôle ou propriété

IV-A - Création

IV-A-1 - Création de la table de paramètres d'installation

Créez la structure de la table UsysRegInfo selon les instructions du paragraphe Comment créer la table USysRegInfo?

Le champ Subkey détermine l'emplacement des entrées de registre à ajouter à l'installation :

- Pour un assistant contrôle OLE :

HKEY_CURRENT_ACCESS_PROFILE\Wizards\OLE CUSTOM CONTROL WIZARDS\TypeDeContrôle\NomAssistant
Le TypeDeContrôle est la classe d l'objet OLE (créez un objet OLE et regardez sa propriété Class).

- Pour un assistant contrôle :

HKEY_CURRENT_ACCESS_PROFILE\Wizards\Control Wizards\TypeDeContrôle\NomAssistant
Le TypeDeContrôle peut être :

Type de contrôle

Description

Label

Etiquette

TextBox

Zone de texte

OptionGroup

Groupe d'options

ToggleButton

Bouton bascule

OptionButton

Case d'option

CheckBox

Case à cocher

ComboBox

Zone de liste déroulante

ListBox

Zone de liste

CommandButton

Bouton de commande

ImageFrame

Image

UnboundObjectFrame

Cadre d'objet indépendant

BoundObjectFrame

Cadre d'objet dépendant

PageBreak

Saut de page

SubformSubreport

Sous-formulaire/Sous-état

Line

Trait

Rectangle

Rectangle

- Pour un assistant propriété :

HKEY_CURRENT_ACCESS_PROFILE\Wizards\Property Wizards\TypeDePropriété\NomAssistant
Le TypeDePropriété peut être :

BackColor

Couleur de remplissage

BorderColor

Couleur de bordure

FieldName

Nom du champ

ForeColor

Couleur du texte

InputMask

Masque de saisie

LinkChildFields

Champs fils

LinkMasterFields

Champs père

MenuBar

Barre de menu

Module

Module

ODBCConnectStr

Chaîne de connectino ODBC

Picture

Image

ShortcutMenuBar

Menu contextuel

Six enregistrements sont nécessaires pour un assistant contrôle ou propriété :

Type

ValName

Value

Description

0

Cet enregistrement demande au gestionnaire de compléments d'installer le complément à l'aide des enregistrements suivants.

4

Can Edit

0 ou 1

0 : L'assistant ne peut être utilisé qu'en création
1 : L'assistant peut être utilisé en création ou modification

1

Description

Texte libre

Description à afficher dans la liste des asssistants.

1

Function

NomDeLaFonction

Nom de la fonction à lancer
Lors de la sélection de l'assistant, la fonction mentionnée est exécutée.

1

Library

|ACCDIR\NomDuFichierComplément.mda

Chemin d'installation du complément
Le chemin est |ACCDIR\ (Access installera le complément dans le répertoire utilisateur adéquat), suivi du nom de fichier du complément.

1

Version

1, 2 ou 3

la valeur détermine la visibilité du complément :
1 = Visible uniquement dans les base de données mdb
2 = Visible uniquement dans les projets adp
3 = Visible dans les deux types de fichiers

A partir de ces informations, remplissons la table USysRegInfo pour un assistant de création de contrôle :

Subkey

Type

ValName

Value

HKEY_CURRENT_ACCESS_PROFILE\Wizards\Control Wizards\TextBox\ControlDVP

0

HKEY_CURRENT_ACCESS_PROFILE\Wizards\Control Wizards\TextBox\ControlDVP

4

Can Edit

0

HKEY_CURRENT_ACCESS_PROFILE\Wizards\Control Wizards\TextBox\ControlDVP

1

Description

Tutoriel DVP Assistant contrôle

HKEY_CURRENT_ACCESS_PROFILE\Wizards\Control Wizards\TextBox\ControlDVP

1

Function

Fonction_Test_Control

HKEY_CURRENT_ACCESS_PROFILE\Wizards\Control Wizards\TextBox\ControlDVP

1

Library

|ACCDIR\Test_Control.mda

HKEY_CURRENT_ACCESS_PROFILE\Wizards\Control Wizards\TextBox\ControlDVP

1

Version

3

IV-A-2 - Création de la base de données

Créez une nouvelle base Access, cette base est notre assistant contrôle ou propriété.
Nommez la par exemple Test_Control.mda

On a d'abord besoin de la fonction qui sera le point d'entrée de l'assistant.
On crée donc dans un nouveau module une fonction nommée par exemple Fonction_Test_Control.

La fonction doit avoir des paramètres pour recevoir des informations au lancement de l'assistant.

Function Fonction_Test_Control(Optional pArg1 As String, Optional pArg2 As String, Optional pArg3 As String)
' Pour tests, on affiche les paramètres reçus à l'exécution de l'assistant
MsgBox pArg1 & ":" & pArg2 & ":" & pArg3
End Function

Les propriétés de la base de données doivent également être modifiées, dans Fichier --> Propriétés de la base.

Le Titre, la Société et le Commentaire apparaîtront dans le gestionnaire de compléments.

IV-B - Installation

Dans le menu : Outils --> Macros complémentaires --> Gestionnaire de compléments.
Cliquez sur le bouton : Ajoutez un nouveau…, sélectionnez le fichier mda du complément à installer.

On note que les propriétés de la base de données mises à jour précédemment ont bien été utilisées.

Désormais, dans toutes les bases Access, on obtient un nouvel assistant de création de zone de texte.

Lorsque l'on crée une nouvelle zone de texte, on exécute la fonction Fonction_Test_Control.

L'exemple affiche simplement, dans une boîte de message, les paramètres reçus par l'assistant.
On s'aperçoit qu'il y a deux paramètres pour une zone de texte : le nom de l'étiquette et le nom de la zone de texte.

Le formulaire courant est : Screen.ActiveForm

On peut alors modifier les propriétés de ces deux objets.

V - Assistant table ou requête

V-A - Création

V-A-1 - Création de la table de paramètres d'installation

Créez la structure de la table UsysRegInfo selon les instructions du paragraphe Comment créer la table USysRegInfo?

Le champ Subkey détermine l'emplacement des entrées de registre à ajouter à l'installation :

- Pour un assistant table : HKEY_CURRENT_ACCESS_PROFILE\Wizards\Table Wizards\NomAssistant

- Pour un assistant requête : HKEY_CURRENT_ACCESS_PROFILE\Wizards\Query Wizards\NomAssistant

Sept enregistrements sont nécessaires pour un assistant table ou requête :

Type

ValName

Value

Description

0

Cet enregistrement demande au gestionnaire de compléments d'installer le complément à l'aide des enregistrements suivants.

1

Bitmap

Chemin d'un fichier image Bitmap (*.bmp)

Cette image s'affiche dans la liste des assistants, si la valeur n'est pas renseignée alors aucune image ne s'affiche.

1

Description

Texte libre

Description à afficher dans la liste des asssistants.

1

Function

NomDeLaFonction

Nom de la fonction à lancer
Lors de la sélection de l'assistant, la fonction mentionnée est exécutée.

4

Index

Numérique

Position dans la liste des assistants
Mettre 0 pour que l'assistant soit en première position.

1

Library

|ACCDIR\NomDuFichierComplément.mda

Chemin d'installation du complément
Le chemin est |ACCDIR\ (Access installera le complément dans le répertoire utilisateur adéquat), suivi du nom de fichier du complément.

1

Version

1, 2 ou 3

la valeur détermine la visibilité du complément :

- 1 = Visible uniquement dans les bases de données mdb

- 2 = Visible uniquement dans les projets adp

- 3 = Visible dans les deux types de fichiers

A partir de ces informations, remplissons la table USysRegInfo pour un assistant de création de table :

Subkey

Type

ValName

Value

HKEY_CURRENT_ACCESS_PROFILE\Wizards\Table Wizards\TableDVP

0

HKEY_CURRENT_ACCESS_PROFILE\Wizards\Table Wizards\TableDVP

1

Bitmap

HKEY_CURRENT_ACCESS_PROFILE\Wizards\Table Wizards\TableDVP

1

Description

Tutoriel DVP Assistant table

HKEY_CURRENT_ACCESS_PROFILE\Wizards\Table Wizards\TableDVP

1

Function

Fonction_Test_Table

HKEY_CURRENT_ACCESS_PROFILE\Wizards\Table Wizards\TableDVP

4

Index

0

HKEY_CURRENT_ACCESS_PROFILE\Wizards\Table Wizards\TableDVP

1

Library

|ACCDIR\Test_Table.mda

HKEY_CURRENT_ACCESS_PROFILE\Wizards\Table Wizards\TableDVP

1

Version

3

V-A-2 - Création de la base de données

Créez une nouvelle base Access, cette base est notre assistant contrôle ou propriété.
Nommez la par exemple Test_Table.mda

On a d'abord besoin de la fonction qui sera le point d'entrée de l'assistant.
On crée donc dans un nouveau module une fonction nommée par exemple Fonction_Test_Table.

La fonction n'a pas de paramètre.

Function Fonction_Test_Table()
' Pour tests, on affiche un message
MsgBox "Assistant table DVP"
End Function

Les propriétés de la base de données doivent également être modifiées, dans Fichier --> Propriétés de la base.

Le Titre, la Société et le Commentaire apparaîtront dans le gestionnaire de compléments.

V-B - Installation

Dans le menu : Outils --> Macros complémentaires --> Gestionnaire de compléments.
Cliquez sur le bouton : Ajoutez un nouveau…, sélectionnez le fichier mda du complément à installer.

On note que les propriétés de la base de données mises à jour précédemment ont bien été utilisées.

Désormais, dans toutes les bases Access, on obtient un nouvel assistant de création de table.

L'exemple affiche simplement une boîte de message.

On peut utiliser par exemple une requête création de table (cf. https://access.developpez.com/sql/#L2.1.1) pour créer une nouvelle table).

VI - Enchaîner les assistants

Les assistants standards sont compilés en base de données mde.
On n'a donc pas accès à leur code si on souhaite les modifier.

Par contre on peut, dans un assistant, appeler un assistant standard avant de reprendre la main et apporter des modifications personnalisées.

Pour retrouver les assistants standards, on peut regarder les entrées de la base de registre.
Dans le menu Démarrer de Windows, cliquez Exécuter, Tapez Regedit et cliquez OK.

Déroulez l'arborescence suivante :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Access\Wizards
(le 11.0 peut varier en fonction de votre version d'Access)

On voudrait par exemple exécuter un assistant formulaire avant de reprendre la main et ajouter un en-tête au code du formulaire.
La clé de registre suivante :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Access\Wizards\Form Wizards\AutoForm: Tabular
correspond à l'assistant : Formulaire instantané : Tableau (voir la valeur de index pour connaître la position dans la liste des assistants)

On note dans les valeurs :

- la librairie : acwzmain ;

- la fonction : auto_Entry ;

- les arguments : 2 et 2 ;

- la source de données requise ou non : 1.

Pour appeler cet assistant il faut alors utiliser la fonction suivante :

Run "acwzmain.auto_entry", "NomDelaSource", 2, 2

« NomDelaSource » est le nom de la table ou requête choisie, elle est nécessaire car Datasource Required = 1.

Pour notre assistant on utilisera le code suivant :

Function Fonction_Test_formulaire(Optional pRecordSource As String)
' Appel de l'assistant standard
Run "acwzmain.auto_entry", pRecordSource, 2, 2
' Ouverture du formulaire en mode édition
DoCmd.OpenForm Screen.ActiveForm.Name, acDesign
With Screen.ActiveForm
' Ajout d'une page de code
.HasModule = True
' Ajout du code
.Module.InsertText "'**************** Module créé par assistant DVP *****************" & _
vbCrLf & "' Date : " & Now
End With
End Function

Pour tester ce code de complément, utilisez la partie Assistant formulaire ou état de cet article et remplacer le codepar celui ci-dessus.

Télécharger ce complément (format Access 2000)

VII - Gestion de la confidentialité avec Access 2007

Access 2007 vous protège via le centre de gestion de la confidentialité.

Le répertoire contenant les compléments doit être approuvé pour qu'ils puissent s'exécuter.
Dans le cas contraire, vous verrez ce message :

Vous devez alors approuver le répertoire de complément:

- Cliquez sur le bouton Office :
- Puis cliquez sur le bouton Options Access :
- Dans le menu de gauche, choisissez Centre de gestion de la confidentialité
- Et cliquez sur le bouton Paramètres du Centre de gestion de la confidentialité…
- Dans le menu de gauche, choisissez Emplacements approuvés
- Cliquez sur le bouton Ajouter un nouvel emplacement….
- Sélectionnez le répertoire où sont copiés les compléments.
Si vous avez utilisé |ACCDIR dans le paramètre library de la table de paramètres USysRegInfo, le répertoire est : C:\Documents and Settings\[Nom de l'utilisateur]\Application Data\Microsoft\AddIns
(par défaut ce répertoire est caché, pour l'afficher dans l'explorateur Windows : Outils --> Options des dossiers --> Affichage --> Afficher les fichiers et les dossiers cachés)
- Cochez la case Les sous-dossiers de cet emplacement sont également approuvés.

VIII - Astuces de programmation : CodeDb et CodeProject

Vous avez sans doute l'habitude d'utiliser dans vos programmes les objets CurrentDb et CurrentProject.

Lors de la programmation de compléments, ces deux objets font référence à la base de données dans laquelle s'exécute le complément.

Si vous souhaitez faire référence au complément (qui rappelons-le, est une base de données presque comme les autres), vous devrez utiliser les objetsCodeDb et CodeProject.

Remarque : CurrentProject et CodeProject sont apparus avec Access 2000.

IX - Conclusion

Si vos travaux aboutissent à des compléments que vous souhaitez partager, n'hésitez pas à les proposer dans le forum Vos contributions