Présentation de la programmation Access

S’applique à
Access 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 des objets de base de données tels que des tables, des formulaires et des états. À un moment donné, vous devrez peut-être ajouter de la programmation pour automatiser les processus et connecter ces objets. Cet article présente les outils de programmation dans Access.

Contenu de cet article

Qu’est-ce que la programmation ?

Dans Access, la programmation signifie ajouter des fonctionnalités à votre base de données à l’aide de macros Access ou de code Visual Basic pour Applications (VBA). Par exemple, vous pouvez créer un formulaire et un état, puis ajouter un bouton de commande au formulaire qui ouvre le rapport lorsque vous le sélectionnez. Dans ce cas, vous créez une macro ou VBA une procédure, puis définissez la propriété d’événement du bouton de OnClick commande afin que 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 le travail, ou vous pouvez désactiver l’Assistant et le programmer vous-même.

Remarque

De nombreux programmes Microsoft Office utilisent le terme « macro » pour faire référence au VBA code. Cela peut confondre les utilisateurs Access, car, dans Access, le terme « macro » fait référence à une collection nommée d’actions de macro que vous assemblez à l’aide du Générateur de macros. Les actions de macro Access 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 apprendre de VBA code. Dans les articles d’aide d’Access, les macros Access sont appelées macros. VBA code est appelé VBA code, fonction ou procédure. VBA le code est stocké 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 que vous pouvez utiliser dans toute la base de données.

Les objets tels que les formulaires et les états, ainsi que les contrôles tels que les boutons de commande et les zones de texte, ont des propriétés d’événement auxquelles vous pouvez attacher des macros ou des procédures. Chaque propriété d’événement est associée à un événement spécifique, comme cliquer sur la souris, ouvrir un formulaire ou modifier des données dans une zone de texte. Les événements peuvent également être déclenchés par des facteurs extérieurs à Access, tels que des événements système, ou par des macros ou des procédures qui sont associées à d’autres événements. Votre base de données peut devenir complexe si vous ajoutez de nombreuses macros ou procédures à de nombreuses propriétés d’événement sur de nombreux objets. Dans la plupart des cas, cependant, vous pouvez obtenir les résultats souhaités en utilisant très peu de programmation.

Haut de la page

Dois-je utiliser des macros ou du code VBA ?

La décision d’utiliser des macros, VBAou les deux, dépend principalement de la façon dont vous prévoyez de déployer ou de distribuer la base de données. Par exemple, si la base de données est stockée sur votre ordinateur, vous êtes le seul utilisateur et que vous êtes à l’aise avec VBA le code, vous pouvez décider d’utiliser VBA pour la plupart des tâches de programmation. Toutefois, si vous envisagez de partager votre base de données avec d’autres personnes à partir d’un serveur de fichiers, vous pouvez éviter d’utiliser VBA en raison de problèmes de sécurité.

Basez votre décision d’utiliser des macros ou VBA du code sur deux préoccupations : la sécurité et les fonctionnalités souhaitées. La sécurité est importante, car VBA peut être utilisé pour créer du code qui compromet vos données ou endommage les fichiers sur votre ordinateur. Lorsque vous utilisez une base de données créée par quelqu’un d’autre, activez VBA le code uniquement si vous savez que la base de données provient d’une source digne de confiance. Lorsque vous créez une base de données que d’autres utilisateurs utiliseront, essayez d’éviter d’inclure des outils de programmation qui exigent que l’utilisateur approuve explicitement la base de données. Les techniques générales permettant d’éviter cette exigence apparaissent plus loin dans cette section.

Pour sécuriser votre base de données, essayez d’utiliser des macros lorsque vous le pouvez et utilisez VBA uniquement pour les opérations qui ne peuvent pas être effectuées à l’aide d’actions de macro. En outre, essayez d’utiliser uniquement les actions de macro qui ne nécessitent pas que la base de données soit approuvée avant de pouvoir s’exécuter. La limitation des actions de macro de cette façon permet aux utilisateurs de se sentir confiants que la base de données n’a aucune programmation susceptible d’endommager les données ou d’autres fichiers sur leurs ordinateurs.

Considérations relatives aux macros

Access contient de nombreuses actions de macro qui vous permettent de créer des macros plus puissantes que les versions antérieures d’Access autorisées. 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 d’Access, ces fonctionnalités étaient disponibles uniquement dans VBA. Vous pouvez également incorporer une macro directement dans la propriété event d’un objet ou d’un contrôle. Une macro incorporée fait partie de l’objet ou du contrôle et reste avec elle si l’objet ou le contrôle 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 lier les objets de base de données, tels que les formulaires et les états, que vous avez créés, car il y a peu de syntaxe à retenir. 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é. Cela nécessite la création d’un groupe de macros nommé AutoKeys.

  • Effectuer une action ou une série d’actions lors de la première ouverture d’une base de données. Cela nécessite la création d’une macro nommée AutoExec.

    Remarque

    La AutoExec macro s’exécute avant tout autre code ou VBA macro, même si vous avez désigné un formulaire de démarrage dans la boîte de dialogue Options Access et joint une macro ou du VBA code à l’événement ou OnLoad à l’événement de OnOpen ce formulaire.

Pour plus d’informations sur la façon de générer des macros, consultez Comprendre les macros.

Considérations relatives à la programmation VBA

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

  • Utilisez des fonctions intégrées ou créez les vôtres. Access inclut de nombreuses fonctions intégrées, telles que IPmt, qui calcule un paiement d’intérêt. Vous pouvez utiliser ces fonctions pour effectuer des calculs sans créer d’expressions complexes. En utilisant VBA, vous pouvez également créer vos propres fonctions pour effectuer des calculs qui vont au-delà de la capacité d’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. Dans la plupart des cas, il est plus facile de créer et de modifier un objet en mode Création de cet objet. Toutefois, dans certains cas, vous pouvez manipuler la définition d’un objet dans le code. En utilisant VBA, vous pouvez manipuler tous les objets d’une base de données, ainsi que la base de données elle-même.
  • Effectuer des actions au niveau du système. Vous pouvez effectuer l’action RunApp dans une macro pour exécuter un autre programme, tel que Microsoft Excel, à partir d’Access, mais vous ne pouvez pas utiliser une macro pour faire beaucoup d’autres choses en dehors d’Access. À l’aide de VBA, vous pouvez case activée si un fichier existe sur l’ordinateur, utiliser Automation ou Dynamic Data Exchange (DDE) pour communiquer avec d’autres programmes Microsoft Windows tels qu’Excel et appeler des fonctions dans les bibliothèques de liens dynamiques Windows (DLLs).
  • Manipuler les enregistrements un par un. Vous pouvez utiliser VBA pour parcourir un jeu d’enregistrements un enregistrement à la fois et effectuer une opération sur chaque enregistrement. En revanche, les macros fonctionnent avec des jeux d’enregistrements entiers à la fois.

Haut de la 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 OnClick propriété du bouton de commande. Dans un .mdb fichier ou .adp , l’Assistant crée VBA du code, 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 VBA le code pour mieux répondre à 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. Pour sélectionner une autre image, cochez la case Afficher toutes les images afin d’afficher la liste de toutes les images de bouton de commande proposée par Access, ou cliquez sur Parcourir pour sélectionner une image stockée à un autre emplacement. Cliquez sur Suivant.
  7. Entrez un nom significatif pour le bouton de commande. Cette étape est facultative et ce nom n’est pas affiché sur le bouton de commande. Toutefois, il est judicieux d’entrer un nom explicite afin que lorsque vous devez faire référence au bouton de commande ultérieurement, par exemple lorsque vous définissez l’ordre de tabulation pour les contrôles de votre formulaire, il soit beaucoup plus facile de distinguer les boutons de commande. Si le bouton de commande ferme le formulaire, par exemple, vous pouvez le nommer cmdClose ou CommandClose.

  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 ces étapes facultatives :

    1. Si la feuille de propriétés n’est pas déjà affichée, appuyez sur F4 pour l’afficher.

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

    3. Dans la zone de propriété On Click , cliquez sur le bouton Générer .

      Access démarre le Générateur de macro et affiche la macro créée par l’Assistant. Vous pouvez modifier la macro si vous le souhaitez. Pour plus d’informations, consultez Comprendre les 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 les ignorer.

  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 la 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, rapports et contrôles. Par exemple, si vous ajoutez un bouton de commande à un formulaire, vous pouvez associer la propriété d’événement du OnClick bouton à une macro qui contient les commandes que vous souhaitez que le bouton exécute chaque fois qu’il est sélectionné.

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 aux formulaires, états et contrôles sans écrire de code dans un VBA module. Les macros fournissent un sous-ensemble des commandes disponibles dans VBA, et la plupart des utilisateurs trouvent plus facile de créer une macro que d’écrire VBA du code.

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.

Haut de la 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 étendre VBA en utilisant des contrôles tiers, et vous pouvez écrire vos propres fonctions et procédures pour des besoins spécifiques.

Un moyen rapide de commencer à utiliser VBA consiste à créer d’abord une macro Access, puis à la convertir en VBA code. Des instructions pour ce faire sont incluses dans Convertir des macros en code VBA. Cette fonctionnalité crée un VBA module 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 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.

Haut de la page

Convertir des macros en code VBA

Vous pouvez utiliser Access pour convertir automatiquement des macros en VBA modules ou 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 qui ne sont pas attachées à un formulaire ou un état spécifique.

Convertir des macros jointes à un formulaire ou à un état

Ce processus convertit VBA en macros référencées ou incorporées dans un formulaire ou un état, ou l’un de ses contrôles, et ajoute le VBA code 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 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 qu’Access ajoute le code de gestion des erreurs aux fonctions qu’il génère. Si vos macros incluent des commentaires, indiquez également si vous souhaitez que ces commentaires soient inclus 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 d’événement du formulaire ou de l’état afin qu’elles exécutent les nouvelles VBA procédures au lieu des macros.

  4. Pour afficher et modifier le VBA code :

    1. Si le formulaire ou l’état est toujours ouvert en mode Création, si la feuille de propriétés n’est pas déjà affichée, appuyez sur F4 pour l’afficher.

    2. Sous l’onglet Événement de la feuille de propriétés, cliquez dans une zone de propriété qui affiche [Event Procedure], puis cliquez sur le bouton Générer . 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 VBA code :

    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 Converted Macro-<macro name> module. Visual Basic Editor ouvre le module.

Joindre une fonction VBA à une propriété de type événement

Lorsque vous convertissez une macro globale en VBA, le VBA code 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 VBA code dans un module de classe, puis l’associer à une propriété d’événement, ou vous pouvez effectuer un appel spécial de la propriété d’événement au module standard à l’aide de la procédure suivante.

  1. Dans Visual Basic Editor, notez le nom de fonction. Par exemple, si vous avez converti une macro nommée MyMacro, le nom de la fonction sera MyMacro().
  2. Fermez Visual Basic Editor.
  3. Dans le volet de navigation, cliquez avec le bouton droit sur le formulaire ou l’é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 déjà affichée, appuyez sur F4 pour l’afficher.
  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 VBA du code à votre base de données. Cet article décrit uniquement les principes de base de la prise en main. De nombreux excellents livres de référence et ressources en ligne 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