Applies ToAccess pour Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Lorsque vous créez une base de données, vous commencez généralement par créer plusieurs objets de base de données tels que des tables, des formulaires et des états. Puis arrive un moment où vous devez ajouter des éléments de programmation pour automatiser certains processus et relier vos objets de base de données. Cet article vous aide à vous orienter vers les outils de programmation dans Access.

Contenu de cet article

Qu’est-ce que la programmation ?

Dans Access, la programmation est le processus d’ajout de fonctionnalités à votre base de données à l’aide de macros Access ou de code Visual Basic pour Applications (VBA). Par exemple, supposons que vous avez créé un formulaire et un état, et que vous souhaitez ajouter un bouton de commande au formulaire qui, lorsque vous cliquez dessus, ouvre le rapport. Dans ce cas, la programmation consiste à créer une macro ou une procédure VBA, puis à définir la propriété d’événement OnClick du bouton de commande afin que le clic sur le bouton de commande exécute la macro ou la procédure. Pour une opération simple, comme l’ouverture d’un rapport, vous pouvez utiliser l’Assistant Bouton de commande pour effectuer tout le travail, ou vous pouvez désactiver l’Assistant et effectuer la programmation vous-même.

Remarque : De nombreux programmes Microsoft Office utilisent le terme « macro » pour faire référence au code VBA. Cela peut prêter à confusion pour Access utilisateurs, car, dans Access, le terme « macro » fait référence à une collection nommée d’actions de macro que vous pouvez assembler à l’aide du Générateur de macros. Access actions de macro représentent uniquement un sous-ensemble des commandes disponibles dans VBA. Le Générateur de macros vous offre une interface plus structurée que Visual Basic Editor, ce qui vous permet d’ajouter de la programmation à des contrôles et des objets sans avoir à apprendre du code VBA. N’oubliez pas que dans Access articles d’aide, Access macros sont appelées macros. À l’inverse, le code VBA est appelé VBA, code, fonction ou procédure. Le code VBA est contenu dans des modules de classe (qui font partie de formulaires ou d’états individuels et contiennent généralement du code uniquement pour ces objets) et dans des modules (qui ne sont pas liés à des objets spécifiques et contiennent généralement du code « global » qui peut être utilisé dans toute la base de données).

Les objets (tels que les formulaires et les états) et les contrôles (tels que les boutons de commande et les zones de texte) possèdent différentes propriétés de type événement auxquelles vous pouvez joindre des macros ou procédures. Chaque propriété de type événement est associée à un événement spécifique, par exemple un clic sur la souris, l’ouverture d’un formulaire ou la modification des données incluses dans une zone de texte. Les événements peuvent également être déclenchés par des facteurs en dehors de Access, tels que des événements système, ou par des macros ou des procédures attachées à d’autres événements. Si vous ajoutez un grand nombre de macros ou procédures aux propriétés de type événement de nombreux objets, votre base de données peut devenir relativement complexe, mais en général, vous pouvez obtenir les résultats recherchés en limitant la programmation au strict minimum.

Haut de page

Dois-je utiliser des macros ou du code VBA ?

L’utilisation de macros, de code VBA, ou des deux, dépend principalement de la façon dont vous souhaitez déployer ou distribuer la base de données. Par exemple, si la base de données est stockée sur votre ordinateur et que vous en êtes l’unique utilisateur, et si vous avez l’habitude d’utiliser du code VBA, vous pouvez utiliser du code VBA pour réaliser la plupart de vos tâches de programmation. En revanche, si vous souhaitez partager votre base de données avec d’autres utilisateurs en la plaçant sur un serveur de fichiers, il est préférable de ne pas utiliser de code VBA pour des raisons de sécurité.

L’utilisation de macros ou de code VBA dépend de deux facteurs : la sécurité et les fonctionnalités que vous souhaitez utiliser. La sécurité est un véritable enjeu car du code VBA peut être utilisé pour créer un code susceptible de compromettre la sécurité de vos données ou d’endommager les fichiers présents sur votre ordinateur. Lorsque vous utilisez une base de données dont vous n’êtes pas l’auteur, vous ne devez activer le code VBA que si vous êtes certain que la base de données provient d’une source fiable. Lorsque vous créez une base de données destinée à être utilisée par d’autres personnes, évitez d’y inclure des outils de programmation qui obligeraient les utilisateurs à accorder spécifiquement l’état Approuvé à la base de données. Pour éviter d’en arriver là, reportez-vous aux techniques générales décrites plus loin dans cette section.

Pour garantir la sécurité de votre base de données, utilisez plutôt des macros et n’ayez recours à la programmation VBA que lorsque les actions de macro ne vous permettent pas d’obtenir les résultats souhaités. Par ailleurs, privilégiez les actions de macro dont l’exécution ne nécessite aucune approbation de la base de données. Grâce à cette utilisation restreinte des actions de macro, les utilisateurs seront certains que la base de données ne comporte aucun élément de programmation susceptible d’endommager les données ou autres fichiers présents sur leur ordinateur.

Considérations relatives aux macros

Access contient de nombreuses nouvelles actions de macro qui vous permettent de créer des macros plus puissantes que celles que vous pouvez générer à l’aide de versions antérieures de Access. Par exemple, vous pouvez désormais créer et utiliser des variables globales temporaires à l’aide d’actions de macro, et les nouvelles actions de macro dédiées à la gestion des erreurs facilitent le traitement des erreurs. Dans les versions antérieures de Access, ces types de fonctionnalités sont disponibles uniquement à l’aide de VBA. En outre, vous pouvez directement incorporer une macro dans la propriété de type événement d’un objet ou d’un contrôle. Une macro incorporée fait partie intégrante de l’objet ou du contrôle, et y reste jointe si celui-ci est déplacé ou copié.

Les macros permettent de traiter facilement de nombreuses tâches de programmation, comme l’ouverture et la fermeture de formulaires et l’exécution d’états. Vous pouvez rapidement et aisément relier les objets de base de données (formulaires, états, etc.) que vous avez créés car la syntaxe à retenir est limitée. Les arguments relatifs à chaque action sont affichés dans le Générateur de macro.

Outre la sécurité et la facilité d’utilisation offertes par les macros, vous devez les utiliser pour effectuer les tâches suivantes :

  • Attribuer une action ou un ensemble d’actions à une clé. Pour cela, un groupe de macros nommé AutoKeys doit être créé.

  • Effectuer une action ou une série d’actions lors de la première ouverture d’une base de données. Pour cela, une macro nommée AutoExec doit être créée.

    Remarque :  La macro AutoExec s’exécute avant les autres macros ou éléments de code VBA, même si vous avez créé un formulaire de démarrage dans la boîte de dialogue Options Access et joint une macro ou du code VBA à l’événement SurOuverture ou SurChargement de ce formulaire.

Pour plus d’informations sur la création de macros, voir la section Présentation des macros.

Considérations relatives à la programmation VBA

Utilisez la programmation VBA au lieu des macros si vous souhaitez effectuer l’une des opérations suivantes :

  • Utilisez des fonctions intégrées ou créez vos propres fonctions    Access inclut de nombreuses fonctions intégrées, telles que la fonction IPmt , qui calcule un paiement d’intérêt. Vous pouvez utiliser ces fonctions intégrées pour effectuer des calculs sans avoir à créer d’expressions complexes. Le code VBA vous permet également de créer vos propres fonctions pour effectuer des calculs impossibles à réaliser avec une expression ou pour remplacer des expressions complexes. En outre, vous pouvez utiliser les fonctions que vous créez dans des expressions pour appliquer une opération commune à plusieurs objets.

  • Créer ou manipuler des objets    Généralement, le plus simple consiste à créer et modifier un objet en mode Création. Mais dans certains cas, l’utilisation de code est nécessaire pour manipuler la définition d’un objet. Le code VBA vous permet de manipuler tous les objets d’une base de données, en plus de la base de données proprement dite.

  • Effectuer des actions au niveau système    Vous pouvez exécuter l’action ExécuterApp dans une macro pour exécuter un autre programme (tel que Microsoft Excel) à partir de Access, mais vous ne pouvez pas utiliser une macro pour faire beaucoup d’autres choses en dehors de Access. Le code VBA vous permet de vérifier si un fichier se trouve sur l’ordinateur, d’avoir recours à l’automatisation ou à l’échange dynamique de données pour communiquer avec d’autres programmes Microsoft Windows (comme Excel) et d’appeler des fonctions incluses dans des bibliothèques de liens dynamiques Windows (DLL).

  • Manipuler les enregistrements un par un    Vous pouvez utiliser du code VBA pour parcourir un jeu d’enregistrements, un enregistrement à la fois, et effectuer une opération sur chaque enregistrement. Les macros, quant à elles, manipulent simultanément des jeux d’enregistrements entiers.

Haut de page

Utiliser l’Assistant Bouton de commande pour effectuer des tâches de programmation courantes

Si vous ajoutez un bouton de commande à un formulaire, l’Assistant Bouton de commande peut vous aider à débuter la programmation. L’Assistant vous permet de créer un bouton de commande qui effectue une tâche spécifique. Dans un fichier Access (.accdb), l’Assistant crée une macro incorporée dans la propriété OnClick du bouton de commande. Dans un fichier .mdb ou .adp, l’Assistant crée du code VBA, car les macros incorporées ne sont pas disponibles dans ces formats de fichier. Dans les deux cas, vous pouvez ensuite modifier ou améliorer la macro ou le code VBA pour l’adapter à vos besoins.

  1. Dans le volet de navigation, cliquez avec le bouton droit sur le formulaire auquel vous souhaitez ajouter le bouton de commande, puis cliquez sur Mode Création.

  2. Sous l’onglet Création de formulaire , cliquez sur la flèche vers le bas pour afficher la galerie Contrôles , puis vérifiez que l’option Utiliser les Assistants Contrôle est sélectionnée.

  3. Sous l’onglet Création de formulaire , dans la galerie Contrôles , cliquez sur Bouton.

  4. Dans la grille de création du formulaire, cliquez sur l’emplacement où vous souhaitez placer le bouton de commande.

    L’Assistant Bouton de commande démarre.

  5. Sur la première page de l’Assistant, cliquez sur chacune des catégories de la liste Catégories pour afficher les actions que l’Assistant peut programmer pour le bouton de commande. Dans la liste Actions, sélectionnez l’action de votre choix, puis cliquez sur Suivant.

  6. Cliquez sur l’option Texte ou Image pour afficher respectivement du texte ou une image sur le bouton de commande.

    • Si vous souhaitez afficher du texte, vous pouvez modifier le texte de la zone située en regard de l’option Texte.

    • Si vous souhaitez afficher une image, l’Assistant suggère une image dans la liste. Si vous souhaitez sélectionner une autre image, activez la case à cocher Afficher toutes les images pour afficher la liste de toutes les images de bouton de commande que Access fournit, ou cliquez sur Parcourir pour sélectionner une image stockée ailleurs.

      Cliquez sur Suivant.

  7. Entrez un nom significatif pour le bouton de commande. Cette étape est facultative, et ce nom n’apparaît pas sur le bouton de commande. Toutefois, il est recommandé d’entrer un nom significatif car si vous avez ultérieurement besoin de faire référence au bouton de commande (par exemple, pour configurer l’ordre de tabulation des contrôles de votre formulaire), vous le retrouverez plus facilement parmi les différents boutons de commande. Si le bouton de commande ferme le formulaire, par exemple, vous pouvez le nommer cmdFermer ou CommandeFermer.

  8. Cliquez sur Terminer.

    Access place le bouton de commande sur le formulaire.

  9. Si vous souhaitez voir ce que l’Assistant a « programmé » pour vous, suivez les étapes facultatives ci-dessous :

    1. Si la feuille de propriétés n'est pas affichée, appuyez sur F4.

    2. Sur la feuille de propriétés, cliquez sur l’onglet Événement.

    3. Dans la zone de propriété Sur clic , cliquez sur le bouton Générer Image du bouton.

      Access démarre le Générateur de macros et affiche la macro créée par l’Assistant. Si vous le souhaitez, vous pouvez modifier la macro (pour plus d’informations sur la modification d’une macro, reportez-vous à la section Présentation des macros). Lorsque vous avez terminé, sous l’onglet Création de macro , dans le groupe Fermer , cliquez sur Fermer pour fermer le Générateur de macros. Si Access vous invite à enregistrer les modifications et à mettre à jour la propriété, cliquez sur Oui pour enregistrer les modifications ou sur Non pour rejeter les modifications.

  10. Sous l’onglet Création de formulaire , dans le groupe Affichages , cliquez sur Affichage, puis sur Mode Formulaire. Cliquez sur le nouveau bouton de commande pour vérifier qu’il fonctionne comme prévu.

Haut de page

Présentation des macros

Une macro est un outil qui vous permet d’automatiser des tâches et d’ajouter des fonctionnalités à vos formulaires, états et contrôles. Par exemple, si vous ajoutez un bouton de commande à un formulaire, vous associez la propriété de type événement SurClic du bouton à une macro contenant les commandes à exécuter par le bouton chaque fois que l’utilisateur clique sur celui-ci.

Il est utile de considérer Access macros comme un langage de programmation simplifié dans lequel vous créez du code en créant 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.

Générateur de macro Access 2010

Pour afficher le Générateur de macro :

  • Dans l’onglet Créer, accédez au groupe Macros et code et cliquez sur Macro.

Haut de page

Présentation du code VBA

Comme les macros, VBA vous permet d’ajouter 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.

Un moyen rapide de commencer à utiliser la programmation VBA consiste à créer une macro Access, puis à la convertir en code VBA. Les instructions correspondantes sont disponibles à la section 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 cliquer sur des mots clés et appuyer sur F1 pour démarrer Access Aide du développeur et en savoir plus sur chaque mot clé. Vous pouvez ensuite explorer Access Aide du développeur et découvrir de nouvelles commandes pour vous aider à effectuer les tâches de programmation souhaitées.

Haut de page

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.

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é.

  1. Dans le volet de navigation, cliquez avec le bouton droit sur le formulaire ou sur l’état, puis cliquez sur Mode Création.

  2. Sous l’onglet Création de formulaire , dans le groupe Outils , cliquez sur Convertir les macros du formulaire en Visual Basic ou Convertir les macros du rapport en Visual Basic.

  3. Dans la boîte de dialogue Convertir les macros de formulaire ou Convertir les macros de rapport , indiquez si vous souhaitez Access ajouter du 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 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 d’événement du formulaire ou de l’état afin qu’elles exécutent les nouvelles procédures VBA au lieu des macros.

  4. Pour afficher et modifier le code VBA :

    1. 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.

    2. Sous 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 générer Image du bouton. 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

  1. Dans le volet de navigation, cliquez avec le bouton droit sur la macro que vous souhaitez convertir, puis cliquez sur Mode Création.

  2. Sous l’onglet Création de macros , dans le groupe Outils , cliquez sur Convertir des macros en Visual Basic.

  3. 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.

  4. Pour afficher et modifier le code VBA :

    1. Dans Visual Basic Editor, si le volet Explorateur de projets n'est pas affiché, dans le menu Affichage, cliquez sur Explorateur de projets.

    2. Développez l’arborescence sous le nom de la base de données dans laquelle vous travaillez.

    3. 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.

  1. 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().

  2. Fermez Visual Basic Editor.

  3. 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.

  4. Cliquez sur le contrôle ou la section auquel vous souhaitez associer la fonction.

  5. Si la feuille de propriétés n'est pas affichée, appuyez sur F4.

  6. 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.

  7. Dans la zone de propriété, tapez un signe égal (=) suivi du nom de la fonction , par exemple, =MyMacro(). Veillez à inclure les parenthèses.

  8. Enregistrez le formulaire ou l’état en cliquant sur Enregistrer sur la barre d’outils Accès rapide.

  9. 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 principes de base de la prise en main ; il existe de nombreux excellents livres de référence et ressources en ligne qui peuvent vous aider à développer vos compétences en programmation.

Voir aussi

Créer une macro d’interface utilisateur

Exécution d’une macro Access via un raccourci clavier

Automatiser les événements de démarrage avec une macro

Créer une macro qui s’exécute à l’ouverture d’une base de données

Ordre des événements pour les objets de bases de données

Haut de la page

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.