VBA Access 2007 Programmer sous Access Michèle AMELOT Résumé A la fois simple, pratique et complet, ce livre s’adresse aux développeurs et aux utilisateurs avertis souhaitant créer des applications professionnelles conviviales, fiables et performantes sous Access. Outre les éléments de base du langage VBA vous permettant de créer vos propres procédures et fonctions, vous apprendrez à manipuler vos données en utilisant les objets DAO ou ADO et le langage SQL, à personnaliser vos formulaires et états, à concevoir un ruban Access spécifique à votre application, à piloter les autres applications Office 2007 via la technologie Automation, à exporter des informations sur Internet (au format XML ou HTML) et à utiliser les API Windows. En plus des nombreux exemples fournis dans cet ouvrage - en téléchargement sur notre espace Livres (www.eni-livres.com) - le dernier chapitre vous guide dans la création d’une mini-application Access. L'auteur Consultante et formatrice, Michèle Amelot est spécialisée dans la création de logiciels spécifiques autour des technologies Microsoft. Elle accompagne des équipes de développement dans la conduite de leurs projets. C’est, entre autres, cette connaissance approfondie des besoins des utilisateurs et des développeurs, qui lui permet dans ses ouvrages de faciliter l’apprentissage et la pratique de la programmation en langage VBA. Ce livre numérique a été conçu et est diffusé dans le respect des droits d’auteur. Toutes les marques citées ont été déposées par leur éditeur respectif. La loi du 11 Mars 1957 n’autorisant aux termes des alinéas 2 et 3 de l’article 41, d’une part, que les “copies ou reproductions strictement réservées à l’usage privé du copiste et non destinées à une utilisation collective”, et, d’autre part, que les analyses et les courtes citations dans un but d’exemple et d’illustration, “toute représentation ou reproduction intégrale, ou partielle, faite sans le consentement de l’auteur ou de ses ayants droit ou ayant cause, est illicite” (alinéa 1er de l’article 40). Cette représentation ou reproduction, par quelque procédé que ce soit, constituerait donc une contrefaçon sanctionnée par les articles 425 et suivants du Code Pénal. Copyright Editions ENI © ENI Editions - All rigths reserved - 1 - Introduction Access 2007 dispose du langage de programmation Visual Basic Edition Application (VBA) qui lui permet d'étendre ses fonctionnalités pour vous offrir le meilleur de ses performances. C'est un langage puissant, qui ne présente aucune difficulté pour être compris par les débutants. Les fonctions de VBA sont dérivées en grande partie de Visual Basic auxquelles s'ajoutent des instructions (objets, méthodes, fonctions...) spécifiques, nécessaires à la manipulation des objets d'Access. Pour bien exploiter le contenu de ce manuel, il est impératif d'avoir manipulé Access 2007 en tant qu'utilisateur, c'estàdire savoir gérer (créer, modifier, supprimer, manipuler) les tables, les requêtes, les formulaires, les pages d'accès aux données et les états. Des connaissances générales en programmation sont également prérequises. © ENI Editions - All rigths reserved - 1 - Rappels Une base Access est constituée d'un unique fichier portant l'extension .ACCDB et contenant les différents objets de l'application. Ces objets sont : Les tables Elles contiennent les données de la base et peuvent être en liaison les unes avec les autres. Les requêtes Elles permettent d'effectuer : - des sélections et des tris sur les tables, - des calculs simples et des analyses croisées, - des actions (ajout, suppression, mise à jour d'enregistrements, création de tables), - des opérations SQL. Les formulaires Ils sont utilisés pour consulter ou mettre à jour les données. Les états Ils sont utilisés pour imprimer des rapports, depuis la simple liste d'une table jusqu'à des rapports plus complexes comprenant des regroupements d'enregistrements et des calculs. Les macros Elles permettent l'automatisation de plusieurs tâches avec un langage particulier mais ne permettent pas d'atteindre la puissance de développement de VBA. Les modules Ils contiennent une partie du code VBA de l'application, à savoir des déclarations, des fonctions, des procédures... © ENI Editions - All rigths reserved - 1 - Principes fondamentaux de VBA VBA présente un environnement de programmation orienté objet. Un objet est une entité autonome possédant des caractéristiques (propriétés : taille, couleur, valeur...) et des comportements (méthodes) qui lui sont propres. Certains objets possèdent une représentation visuelle (Formulaire, Etats...), tandis que d'autres ne sont accessibles qu'en code VBA (DBEngine, Container...). La plupart des objets visuels ont la possibilité de réagir à des événements (sur ouverture, après mise à jour...). La programmation VBA permet d'induire, en fonction des événements, des comportements particuliers sur les objets par le code : méthodes, procédures et fonctions. Par ce biais, elle facilite l'écriture de code car elle repose sur une conception modulaire. Elle permet ainsi une grande souplesse de fonctionnement et une maintenance plus aisée. Structure d'un objet Événement : Action utilisateur ou système agissant sur un objet et déclenchant le code correspondant. Méthode : Code prédéfini se rapportant à un type d'objet. Procédure : Séquence d'instructions ne renvoyant pas de valeur. Fonction : Séquence d'instructions renvoyant une valeur. © ENI Editions - All rigths reserved - 1 - Les nouveautés d'Access 2007 Access 2007 fait partie de la suite logicielle Microsoft Office 2007 (également appelée Office 12) et bénéficie par conséquent de la plupart des améliorations de cette version : - Nouvelle interface utilisateur : ruban et onglets regroupant toutes les commandes et remplaçant les menus et barres d'outils. - Partage efficace des informations entre applications Office (notamment échange d'informations entre Access et Outlook et Access et SharePoint). - Thèmes Office permettant de personnaliser aisément la présentation des documents. - Enregistrement des fichiers au format pdf et xps... D'autres nouveautés ont été apportées à Access 2007 : - Nouveaux modèles d'applications complètes ; - Volet de navigation ; - Tris et filtrages optimisés ; - Dispositions permettant de personnaliser la présentation des formulaires et états ; - Nouveaux types de champs : champs à plusieurs valeurs, type de données "Pièce jointe" permettant de stocker des informations provenant de tout type de fichier, texte enrichi dans les champs mémo... Contrairement à l'interface d'Access, l'environnement de développement a conservé ses menus et barres d'outils. Toutefois, la documentation en ligne a été considérablement améliorée : aspect de Visual Studio, exemples de code de tâche et modèle objet enrichi (informations sur les changements par rapport aux versions précédentes). © ENI Editions - All rigths reserved - 1 - Passage des macros à VBA Les macros représentent une manière facile de gérer des enchaînements d'actions simples, tels que l'ouverture et la fermeture de formulaires. Toutefois VBA présente bien d'autres avantages : - il facilite la maintenance des bases de données car les procédures événementielles Visual Basic sont intégrées dans la définition du formulaire ou de l'état, - il conforte et améliore la gestion des erreurs, - il permet d'accomplir des actions au niveau du système, - il autorise la manipulation d'un seul enregistrement à la fois, - il accepte le passage d'arguments au code en cours d'exécution. » Toute macro peut être convertie automatiquement en code VBA. Conversion de macros dans un formulaire ou un état n Dans le volet de navigation, cliquez avec le bouton droit de la souris sur le formulaire ou l'état, puis cliquez sur Mode création. n Activez l'onglet Outils de base de données du ruban. n Cliquez sur l'icône Convertir les macros de formulaire en Visual Basic ou Convertir les macros d'état en Visual Basic située en bas à droite du groupe Macros : La boîte de dialogue suivante s'affiche alors : n Désactivez si vous le souhaitez les options proposées par défaut. Il est toutefois recommandé de conserver la gestion des erreurs pour la fiabilité de l'application, et les commentaires pour simplifier la lecture du code. n Cliquez sur Convertir pour continuer. Conversion de macros globales n Dans le volet de navigation, sélectionnez la macro que vous souhaitez convertir. n Activez l'onglet Outils de base de données du ruban. n Cliquez sur l'icône Convertir les macros en Visual Basic située en bas à droite du groupe Macros. © ENI Editions - All rigths reserved - 1 - n Dans la boîte de dialogue, sélectionnez les options souhaitées. n Cliquez sur Convertir pour continuer : la macro est convertie en code VBA dans un module intitulé "Macro convertie" suivi du nom de la macro. Les macros et la sécurité Les paramètres de sécurité des macros permettent de contrôler ce qui se produit lorsque vous ouvrez une base de données Access contenant une macro. Modification des paramètres de sécurité Par défaut, lorsque vous installez Access, les macros sont désactivées. Si vous ouvrez un classeur contenant des macros, l'avertissement suivant est affiché dans la barre des messages : Si vous cliquez sur Options, une boîte de dialogue de sécurité s'affiche pour vous permettre d'activer les macros contenues dans votre base Access. Vous pouvez alors sélectionner l'option Activer ce contenu et cliquer sur le bouton OK : les macros sont alors activées et l'alerte de sécurité disparaît. Vous pouvez également modifier les paramètres de sécurité pour toutes les bases de données Access de la façon suivante : n Cliquez sur le bouton Microsoft Office , puis sur le bouton (situé en bas de la boîte de dialogue). n Sélectionnez la catégorie Centre de gestion de la confidentialité dans le menu de gauche. n Cliquez sur le bouton de commande Paramètres du Centre de gestion de la confidentialité. n Sélectionnez la catégorie Paramètres des macros dans le menu de gauche. » En cas de changement des paramètres de sécurité, la nouvelle option choisie s'appliquera à toutes les bases de données Access à l'exclusion de la base actuellement active. Pour l'appliquer à cette base, vous devez la fermer puis l'ouvrir à nouveau. Description des différentes options de sécurité Désactiver toutes les macros sans notification Toutes les macros et toutes les alertes de sécurité sont désactivées. Désactiver toutes les macros avec notification Option par défaut. Les macros sont désactivées mais l'alerte de sécurité est affichée. Désactiver toutes les macros à l'exception des macros signées numériquement Si les macros d'un classeur sont signées numériquement par un émetteur approuvé, les macros peuvent être exécutées. Si l'émetteur n'a pas été approuvé, une notification est affichée : il est alors possible d'activer les macros signées ou d'approuver l'émetteur. Les macros non signées numériquement ne pourront pas être activées. Activer toutes les macros Si cette option est sélectionnée, toutes les macros sont activées. Il n'est pas recommandé d'utiliser ce paramètre en permanence. » Quelle que soit l'option choisie, si un logiciel antivirus fonctionnant avec Microsoft Office System 2007 est installé, les classeurs - 2 - © ENI Editions - All rigths reserved contenant des macros sont analysés avant d'être ouverts. Editeurs approuvés Les applications Access développées par des éditeurs approuvés se caractérisent par les critères suivants : - Le code est signé par le développeur à l'aide d'une signature numérique ; - La signature numérique est valide ; - La signature numérique est effective (non expirée) ; - Le certificat associé à la signature numérique a été émis par une autorité de certification reconnue. Pour ajouter un éditeur à la liste Editeurs approuvés : n Activez l'option Désactiver toutes les macros avec notification dans les paramètres de sécurité (cf. Généralités ‐ Passage des macros à VBA ‐ Les macros et la sécurité ‐ Modification des paramètres de sécurité ci‐dessus). n Ouvrez une base de données Access dont le code est signé par un Editeur approuvé. n Cliquez sur le bouton de commande Approuver tous à partir de l'éditeur. Vous pouvez à tout moment connaître la liste des éditeurs approuvés de la façon suivante : n Cliquez sur le bouton Microsoft Office , puis sur le bouton (situé en bas de la boîte de dialogue). n Sélectionnez la catégorie Centre de gestion de la confidentialité dans le menu de gauche. n Cliquez sur le bouton de commande Paramètres du Centre de gestion de la confidentialité. n Sélectionnez la catégorie Editeurs approuvés dans le menu de gauche. Il est également possible de désactiver un éditeur approuvé en cliquant sur le bouton Supprimer. Emplacements approuvés Tout fichier enregistré dans un emplacement approuvé peut être ouvert sans l'intervention du Centre de gestion de la confidentialité. Vous pouvez à tout moment ajouter un dossier dans la liste des Emplacements approuvés de la façon suivante : © ENI Editions - All rigths reserved - 3 - n Cliquez sur le bouton Microsoft Office , puis sur le bouton (situé en bas de la boîte de dialogue). n Sélectionnez la catégorie Centre de gestion de la confidentialité dans le menu de gauche. n Cliquez sur le bouton de commande Paramètres du Centre de gestion de la confidentialité. n Sélectionnez la catégorie Emplacements approuvés dans le menu de gauche. n Cliquez sur Ajouter un nouvel enregistrement. n Complétez les informations de la boîte de dialogue Emplacement de Microsoft Office approuvé. n Cliquez sur le bouton OK pour ajouter l'emplacement. - 4 - © ENI Editions - All rigths reserved
Description: