Présentation des Macros et du Langage VBA
Les macros Access peuvent être comparées à un langage de programmation simplifié avec lequel vous créez du code en générant une liste d’actions à effectuer. Lorsque vous créez une macro, vous sélectionnez les actions dans une liste déroulante, puis complétez les informations requises pour chacune d’entre elles. Les macros vous permettent d’ajouter des fonctionnalités à des formulaires, états et contrôles sans avoir à entrer du code dans un module VBA. Les macros fournissent un sous-ensemble des commandes disponibles dans VBA, et pour la plupart des utilisateurs, il est plus facile de créer une macro que de rédiger du code VBA.
Pour créer une macro, vous devez utiliser le Générateur de macro présenté dans l’illustration suivante.
Pour afficher le Générateur de macro :
- Dans l’onglet Créer, accédez au groupe Macros et code et cliquez sur Macro.
Présentation du code VBA
Comme les macros, le code VBA vous permet d’ajouter de l’automatisation et d’autres fonctionnalités à votre application Access. Vous pouvez élargir le code VBA en utilisant des contrôles tiers, et vous pouvez créer des fonctions et procédures adaptées à vos besoins.
Pour une prise en main rapide de la programmation VBA, commencez par créer une macro Access, puis convertissez-la en code VBA. Les instructions correspondantes sont disponibles à la section plus bas Convertir des macros en code VBA. Cette fonctionnalité crée un nouveau module VBA qui effectue les opérations équivalentes dans la macro. Elle ouvre également Visual Basic Editor pour vous permettre de commencer à modifier la procédure. Lorsque vous travaillez dans Visual Basic Editor, vous pouvez cliquez sur les mots clés et appuyer sur F1 pour démarrer l’Aide du développeur Access et en savoir plus sur chaque mot clé. Vous pouvez alors explorer l’Aide du développeur Access et découvrir de nouvelles commandes qui vous aideront à effectuer les tâches de programmation de votre choix.
Convertir des macros en code VBA
Vous pouvez utiliser Access pour convertir automatiquement des macros en modules VBA ou en modules de classe. Vous pouvez convertir les macros jointes à un formulaire ou à un état, qu’il s’agisse d’objets distincts ou de macros incorporées. Vous pouvez également convertir des macros globales non jointes à un formulaire ou état spécifique.
Remarque : Vous pouvez ajouter du code Visual Basic pour applications (VBA) à une base de données Web. Toutefois, vous ne pouvez pas exécuter ce code lorsque la base de données est en cours d’exécution dans un navigateur Web. Si votre base de données Web contient du code VBA, vous devez d’abord ouvrir la base de données sur le Web à l’aide d’Access pour pouvoir exécuter le code. Pour effectuer des tâches de programmation au sein d’une base de données Web, utilisez à la place des macros Access.
Convertir des macros jointes à un formulaire ou à un état
Ce processus convertit en code VBA toutes les macros qui sont référencées par (ou incorporées à) un formulaire ou état (ou l’un de ses contrôles), et ajoute le code VBA au module de classe du formulaire ou de l’état. Le module de classe devient partie intégrante du formulaire ou état et se déplace avec lui lorsqu’il est déplacé ou copié.
- Dans le volet de navigation, cliquez avec le bouton droit sur le formulaire ou sur l’état, puis cliquez sur Mode Création.
- Dans l’onglet Création, accédez au groupe Outils, puis cliquez sur Convertir les macros du formulaire en code Visual Basic ou Convertir les macros de l’état en code Visual Basic.
- Dans la boîte de dialogue Convertir les macros du formulaire ou Convertir les macros de l’état, indiquez si vous souhaitez qu’Access ajoute le code de gestion des erreurs aux fonctions qu’il génère. Par ailleurs, si vos macros contiennent des commentaires, indiquez si vous souhaitez qu’ils soient inclus sous forme de commentaires dans les fonctions. Cliquez sur Convertir pour continuer.
S’il n’existe aucun module de classe pour le formulaire ou pour l’état, Access en crée un et ajoute une procédure au module pour chaque macro associée au formulaire ou à l’état. Access modifie également les propriétés de type événement du formulaire ou de l’état afin qu’elles exécutent les nouvelles procédures VBA à la place des macros.
- Pour afficher et modifier le code VBA :
- Lorsque le formulaire ou état est ouvert en mode Création, si la feuille de propriétés n’est pas encore affichée, appuyez sur F4.
- Dans l’onglet événement de la feuille de propriétés, cliquez dans une zone de propriété qui affiche [procédure événementielle], puis cliquez sur le bouton créer . Pour afficher les propriétés de type événement d’un contrôle spécifique, cliquez sur le contrôle pour le sélectionner. Pour afficher les propriétés de type événement de l’ensemble du formulaire ou état, sélectionnez Formulaire ou État dans la liste déroulante du haut de la feuille de propriétés.
Access ouvre Visual Basic Editor et affiche la procédure événementielle dans son module de classe. Vous pouvez faire défiler la liste vers le haut ou vers le bas pour voir les autres procédures incluses dans le module de classe.
Convertir des macros globales
- Dans le volet de navigation, cliquez avec le bouton droit sur la macro que vous souhaitez convertir, puis cliquez sur Mode Création.
- Dans l’onglet Création, accédez au groupe Outils et cliquez sur Convertir les macros en Visual Basic.
- Dans la boîte de dialogue Convertir la macro, sélectionnez les options de votre choix, puis cliquez sur Convertir.
Access convertit la macro et ouvre Visual Basic Editor.
- Pour afficher et modifier le code VBA :
- Dans Visual Basic Editor, si le volet Explorateur de projets n’est pas affiché, dans le menu Affichage, cliquez sur Explorateur de projets.
- Développez l’arborescence sous le nom de la base de données dans laquelle vous travaillez.
- Sous Modules, double-cliquez sur le module Macro convertie- nom de la macro.
Visual Basic Editor ouvre le module.
Joindre une fonction VBA à une propriété de type événement
Lorsque vous convertissez une macro globale en code VBA, le code VBA est placé dans un module standard. Contrairement à un module de classe, un module standard ne fait pas partie d’un formulaire ou état. Vous pouvez associer la fonction à une propriété de type événement sur un formulaire, état ou contrôle afin que le code soit exécuté exactement quand et où vous le souhaitez. Pour ce faire, vous pouvez copier le code VBA dans un module de classe et l’associer à une propriété de type événement, ou vous pouvez passer un appel spécial de la propriété de type événement vers le module standard en utilisant la procédure suivante.
- Dans Visual Basic Editor, notez le nom de fonction. Par exemple, si vous avez converti une macro nommée MaMacro, le nom de la fonction sera MaMacro().
- Fermez Visual Basic Editor.
- Dans le volet de navigation, cliquez avec le bouton droit sur le formulaire ou état auquel vous souhaitez associer la fonction, puis cliquez sur Mode Création.
- Cliquez sur le contrôle ou la section auquel vous souhaitez associer la fonction.
- Si la feuille de propriétés n’est pas affichée, appuyez sur F4.
- Dans l’onglet Événement de la feuille de propriétés, cliquez sur la zone de la propriété de type événement à laquelle vous souhaitez associer la fonction.
- Dans la zone de propriété, tapez un signe égal(=), suivi du nom de la fonction, par exemple , =MyMacro(). Veillez à inclure les parenthèses.
- Enregistrez le formulaire ou l’état en cliquant sur Enregistrer sur la barre d’outils Accès rapide.
- Dans le volet de navigation, double-cliquez sur le formulaire ou sur l’état et testez-le pour vérifier que le code s’exécute comme prévu.
Vous connaissez maintenant les étapes de base pour ajouter du code VBA à votre base de données. Cet article décrit uniquement les notions de base relatives à la mise en route. Il existe de nombreux ouvrages de référence et ressources en ligne qui peuvent vous aider à développer vos compétences en matière de programmation.