Ce support sur VBA Access 2016 s'adresse aussi bien aux apprentis développeurs qu'aux développeurs plus aguerris. Chacun y trouvera les informations dont il a besoin pour transformer son outil « fait maison » en une application robuste, ou pour personnaliser et optimiser graphiquement des solutions existantes. Connaître le fonctionnement d'Access et l'utiliser régulièrement est un prérequis indispensable pour tirer le meilleur...
Ce support sur VBA Access 2016 s'adresse aussi bien aux apprentis développeurs qu'aux développeurs plus aguerris. Chacun y trouvera les informations dont il a besoin pour transformer son outil « fait maison » en une application robuste, ou pour personnaliser et optimiser graphiquement des solutions existantes. Connaître le fonctionnement d'Access et l'utiliser régulièrement est un prérequis indispensable pour tirer le meilleur profit de ce livre.
En partant des bases du VBA jusqu'à l'utilisation d'API externes, l'auteur balaie les différents aspects de la programmation en Visual Basic. Ce déroulement, de difficulté progressive, permet au lecteur de se rendre compte de la nécessité d'utiliser le langage pour délivrer des solutions puissantes et efficaces. Après la syntaxe de base sous VBA, l'auteur traite la notion de programmation objet puis les modèles d'accès aux données DAO et ADO, le langage SQL appliqué à Access, les évènements Access, les interfaces utilisateurs et comment les optimiser avec le ruban Access, le pilotage des autres applications Office avec l'automation, les interactions avec Internet, la programmation avec Windows. À la fin du livre une mini-application exemple est proposée.
Les bases de données exemples pour mettre en application les sujets traités dans le livre sont disponibles en téléchargement sur le site www.editions-eni.com.
Les chapitres du livre :
Introduction et objectifs – Microsoft Access et VBA – VBE et la sécurité Access 2016 – Le langage VBA – Les objets et collections en VBA – Les objets d'accès aux données DAO et ADO – Le langage SQL appliqué à Access – Les événements Access – Formulaires et états : interfaces utilisateur – Optimiser les interfaces Access – Piloter les autres applications Office 2016 – Microsoft Access 2016 et Internet – Les interactions Windows – Mini-application – Annexes
4.2.3 Comment accéder à la liste des éditeurs approuvés ?
4.2.4 Comment supprimer un éditeur approuvé ?
4.3 Emplacements approuvés
4.3.1 Qu'est-ce qu'un emplacement approuvé ?
4.3.2 Comment ajouter un emplacement approuvé ?
4.3.3 Comment retirer un emplacement approuvé ?
4.4 Documents approuvés
4.4.1 Qu'est-ce qu'un document approuvé ?
4.4.2 Comment approuver un document ?
4.5 Compléments
4.6 Paramètres ActiveX
4.7 Paramètres des macros
4.8 Barre des messages
4.9 Options de confidentialité
4.10 Microsoft Access et le package signé
4.10.1 Comment créer un certificat ?
4.10.2 Comment créer un package sous Access ?
Le langage VBA
1. Une programmation impérative
2. Syntaxes possibles
3. Structure d’un programme
4. Les variables
4.1 La syntaxe de déclaration
4.2 Les types de données
4.2.1 Les types numériques
4.2.2 Les autres types de données
4.3 Les déclarations multiples de variables
4.4 Affectation d’une valeur à une variable
5. Les constantes
5.1 Les constantes utilisateurs
5.2 Les constantes Office
6. Les tableaux
6.1 Les tableaux de taille fixe
6.2 Les tableaux dynamiques
6.3 Les tableaux multidimensionnels
7. Les opérateurs
7.1 Les opérateurs numériques
7.2 Les opérateurs de chaînes de caractères
7.3 Les opérateurs de dates
7.4 Les opérateurs de booléens, opérateurs logiques
7.5 Les opérateurs de comparaison
7.6 Ordre de priorité des opérateurs
8. Les procédures
8.1 Déclaration d'une procédure
8.2 Appel d'une procédure
8.3 Macro
9. Les fonctions
9.1 Déclaration d'une fonction
9.2 Appel d'une fonction
10. Le passage des paramètres par valeur et par référence
10.1 Passage des paramètres
10.1.1 Les paramètres obligatoires
10.1.2 Les paramètres facultatifs
10.1.3 Passage par référence
10.1.4 Passage par valeur
10.1.5 Les valeurs par défaut
10.1.6 Les paramètres nommés
10.1.7 ParamArray
10.1.8 Calcul et retour de plusieurs valeurs
11. Portée et durée de vie des variables
11.1 La portée
11.2 La durée de vie
12. Conventions de nommage et typographies du code VBA
12.1 Règle générale
12.2 Convention de nommage des objets
12.3 Convention de nommage des objets Access
12.4 Convention de nommage des variables
12.5 Convention de nommage des constantes
12.6 Convention de nommage des paramètres
12.7 L'obfuscation
12.8 L'indentation
13. Les structures de décision conditionnelle
13.1 La structure de test If ... Then ... End If
13.1.1 Conditionnelle unique
13.1.2 Conditionnelle multiple
13.2 Structure de test Select ... Case ... End Select
13.3 Structure de test IIf
14. Les boucles
14.1 La boucle Do Loop
14.1.1 Do While Loop
14.1.2 Do Loop While
14.1.3 Do Until Loop
14.1.4 Do Loop Until
14.1.5 Exemples
14.2 La boucle For Next
14.3 La boucle While Wend
15. Les entrées-sorties en VBA
15.1 La fonction InputBox
15.2 La fonction MsgBox
15.2.1 Combinaisons de boutons
15.2.2 Les icônes
15.2.3 Un bouton Aide supplémentaire
15.2.4 Bouton sélectionné par défaut
15.2.5 Autres spécificités
15.2.6 Valeurs de retour
16. Les sorties anticipées : instruction Exit
16.1 Sortie de fonction : Exit Function
16.2 Sortie de procédure : Exit Sub
16.3 Sortie de boucle : Exit For et Exit Do
17. La gestion d'erreur en VBA
17.1 Les types d'erreurs possibles
17.1.1 Les erreurs de syntaxe
17.1.2 Les erreurs de nommage (erreurs de compilation)
17.1.3 Les erreurs d'exécution
17.1.4 Les erreurs de raisonnement et de logique
17.2 La gestion des erreurs
17.2.1 Les Option
17.2.2 La compilation
17.2.3 L'objet Err
17.3 Le comportement VBA en cas d'erreur
17.3.1 La survenance d'une erreu r
17.3.2 On Error Resume Next
17.3.3 On Error Goto 0
17.3.4 On Error Goto Etiquette
17.3.5 L'événement Error
Les objets et collections en VBA
1. Notion d'objet
1.1 Propriétés
1.2 Méthodes
1.3 Événements
1.4 Les collections
2. Modèle objet Access
3. Collections Access
4. Objets Access
4.1 L'objet Application
4.1.1 Propriétés
4.1.2 Méthodes opérant sur les bases de données Access
4.1.3 Méthodes opérant sur les projets Access (fichiers .adp)
4.1.4 Méthodes opérant sur les objets Access (formulaires, états, etc.)
4.1.5 Méthodes opérant sur l'interface d'Access
4.1.6 Méthodes exécutant un traitement
4.1.7 Méthodes liées aux fichiers XML
4.1.8 Méthodes liées aux liens hypertextes
4.1.9 Méthodes liées aux utilisateurs
4.1.10 Méthodes opérant sur les fichiers Application XML (AXL)
4.1.11 Les fonctions de domaine
4.1.12 Exemples
4.2 L’objet DoCmd
4.2.1 Les actions sur l’application Access
4.2.2 Actions sur les objets Access
4.2.3 Méthodes sur les enregistrements
4.2.4 Import et export de données
4.2.5 Manipulation de la fenêtre active
4.2.6 Modification de l’interface Access
4.2.7 Divers
4.2.8 Les actions non prises en compte par l’objet DoCmd
4.2.9 Exemples
4.3 L'objet Screen
4.4 La collection References
4.4.1 Propriétés
4.4.2 Méthodes
4.5 L'objet Reference
4.5.1 Propriétés
4.5.2 Exemple
4.6 La collection Printers
4.6.1 Propriétés de l'objet Printer
4.6.2 Exemple
5. Manipuler des objets en VBA
5.1 Instruction Set
5.2 Instruction With/End With
5.3 La boucle For Each
5.4 Instruction TypeOf
6. Les classes d'objets
6.1 Les modules de classes
6.2 Les propriétés
6.3 Les méthodes
6.4 Les événements
6.5 Les erreurs
6.6 Exemple de classe personnalisée
6.6.1 La classe cParticipant
6.6.2 La collection Participants
6.6.3 La classe cFormation
Les objets d'accès aux données DAO et ADO
1. Introduction
2. DAO
2.1 Introduction
2.2 Modèle des données DAO
2.3 Description des collections DAO
2.3.1 Propriétés
2.3.2 Méthodes
2.4 L’objet Workspace
2.4.1 Propriétés
2.4.2 Méthodes
2.4.3 Collections
2.5 L’objet Database
2.5.1 Propriétés
2.5.2 Méthodes
2.5.3 Collections
2.6 L’objet TableDef
2.6.1 Propriétés
2.6.2 Méthodes
2.6.3 Collections
2.6.4 Exemples
2.7 L’objet QueryDef
2.7.1 Propriétés
2.7.2 Méthodes
2.7.3 Collections
2.7.4 Exemple
2.8 L’objet Recordset
2.8.1 Propriétés
2.8.2 Méthodes
2.8.3 Ouvrir
2.8.4 Parcourir
2.8.5 Mettre à jour
2.8.6 Supprimer
2.8.7 Exemple
2.9 La collection Relations
2.9.1 Propriétés
2.9.2 Méthodes
2.9.3 Collections
2.10 La collection Containers
2.10.1 Propriétés
2.10.2 Document
2.11 Les collections Groups et Users
2.11.1 Group
2.11.2 User
3. ADO
3.1 Introduction
3.2 ADO et OLE DB
3.3 Modèle de données ADO
3.4 Description des objets ADO
3.5 Description des collections ADO
3.6 Se connecter - l’objet Connection
3.6.1 Propriétés
3.6.2 Méthodes
3.6.3 Exemples
3.7 Réaliser une requête SQL - l’objet Command
3.7.1 Propriétés
3.7.2 Méthodes
3.7.3 Exemples
3.8 Récupérer le résultat d’une requête - l’objet Recordset
3.8.1 Propriétés
3.8.2 Méthodes
3.8.3 Exemples
3.9 Les champs - objet Field
3.9.1 Propriétés
3.9.2 Méthodes
3.10 Les paramètres - objet Parameter
3.10.1 Propriétés
3.10.2 Méthodes
3.11 Les erreurs - objet Error
Le langage SQL appliqué à Access
1. Le langage SQL
2. La commande SELECT
3. La source FROM
3.1 Syntaxe générale
3.2 Les jointures
3.2.1 Jointure interne INNER JOIN
3.2.2 Jointure externe LEFT JOIN
3.2.3 Jointure externe RIGHT JOIN
3.2.4 Les conditions de jointures
4. La clause WHERE
4.1 Les différents critères existants
4.2 Quelques exemples
5. Les calculs dans les requêtes
6. La clause GROUP BY
7. La clause HAVING
8. La clause ORDER BY
9. Les alias, l'opérateur AS
10. La commande INSERT INTO
10.1 L'ajout d'un enregistrement
10.2 L'ajout issu d'une requête
11. La commande SELECT INTO
12. La commande UPDATE
13. La commande DELETE
14. Les autres commandes
14.1 Requête d'analyse croisée
14.2 Requête d'union
14.3 Création/gestion de table
14.4 Création/gestion des utilisateurs et groupes
Les événements Access
1. Définition
2. Types d'événements
2.1 Les événements à l'ouverture
2.2 Les événements à la fermeture
2.3 Les événements d'ajout, suppression ou modification d'enregistrement
2.4 Les événements de détection d'erreur, de modification et d'annulation
2.5 Les événements liés au focus
2.6 Les événements des périphériques souris et clavier
2.7 Les événements de filtre de données
2.8 Les événements autonomes
2.9 Les événements spécifiques aux états
2.10 Les autres événements
3. Annulation d'un événement
4. Ordre de réalisation des événements
4.1 À l'ouverture d'un formulaire
4.2 À la fermeture d'un formulaire
4.3 À l'activation d'un formulaire déjà ouvert
4.4 À la mise à jour d'un contrôle
4.5 À la mise à jour d'un enregistrement
4.6 À la suppression d'un enregistrement
4.7 Sur l'appui de touche
5. Ordre des événements lors d'une mise à jour
5.1 Au niveau du contrôle
5.2 Au niveau d'un enregistrement
Formulaires et états : interfaces utilisateur
1. Introduction
2. L'objet Form
2.1 Syntaxe
2.2 Équivalence mode Création/VBA
2.2.1 Onglet Format
2.2.2 Onglet Données
2.2.3 Onglet Événement
2.2.4 Onglet Autres
2.3 Autres propriétés disponibles en VBA
2.3.1 Propriétés liées aux enregistrements
2.3.2 Propriétés liées à l'affichage
2.3.3 Propriétés liées à la présentation du formulaire
2.3.4 Propriétés liées à l'impression
2.3.5 Propriétés retournant un objet
2.4 Méthodes des formulaires
2.5 Exemple
3. L'objet Report
3.1 Syntaxe
3.2 Équivalence mode Création/VBA
3.2.1 Onglet Format
3.2.2 Onglet Données
3.2.3 Onglet Événement
3.2.4 Onglet Autres
3.3 Autres méthodes disponibles en VBA
3.3.1 Propriétés liées aux enregistrements
3.3.2 Propriétés liées à l'affichage
3.3.3 Propriétés liées à la présentation de l'état
3.3.4 Propriétés liées à l'impression
3.3.5 Propriétés retournant un objet
3.4 Méthodes des états
4. L'objet Control
4.1 Syntaxe
4.2 Propriétés génériques à la majorité des contrôles
4.2.1 Propriétés liées aux dimensions
4.2.2 Propriétés retournant un objet
4.2.3 Autres propriétés
4.3 Méthodes génériques à la majorité des contrôles
4.4 Exemple
5. Les contrôles Access
Optimiser les interfaces Access
1. Personnaliser les options Access
1.1 Options de l'application
1.2 Options de navigation
1.3 Options de la barre d'outils et du ruban
1.4 Options de correction automatique de nom
1.5 Options de recherche
1.6 Options de mise en cache
1.7 Autres options
1.8 Exemple
2. Personnaliser les rubans
2.1 Le ruban Access
2.1.1 Les onglets sous Access
2.1.2 Nouveauté Access 2016
2.1.3 Association du ruban
2.2 La structure XML du ruban
2.2.1 Structure élémentaire du ruban
2.2.2 Les contrôles du ruban
2.2.3 Les attributs des contrôles
2.2.4 Les séparateurs
2.2.5 Les commentaires
2.3 Les événements
2.3.1 Les procédures CallBack
2.3.2 Événement OnLoad du ruban
2.3.3 Événements communs à tous les contrôles
2.3.4 Événements spécifiques au bouton
2.3.5 Événements spécifiques à la case à cocher
2.3.6 Événements spécifiques à la zone de liste déroulante
2.3.7 Événements spécifiques au menu déroulant
2.3.8 Événements spécifiques à la zone de texte
2.3.9 Événements spécifiques à la galerie
2.3.10 Événements spécifiques au bouton bascule
2.4 Gestion dynamique du ruban
2.4.1 Code lors du chargement
2.4.2 Gestion ultérieure des mises à jour
2.5 Chargement d'un ruban à partir d'un fichier XML
2.5.1 L'écriture du fichier XML
2.5.2 La méthode LoadCustomUI
2.5.3 Inconvénient du chargement
2.6 Utilisation de la table système USysRibbons
2.6.1 Affichage des tables système
2.6.2 Création de la table
2.6.3 Alimentation de la table
2.6.4 Chargement des rubans
2.6.5 Association des rubans avec les formulaires et états
2.7 Exemple de ruban personnalisé
2.7.1 Réalisation du contenu XML du ruban
2.7.2 Association avec le formulaire
2.7.3 Rédaction des callbacks
Piloter les autres applications Office
1. Automation
1.1 Liaison tardive et liaison anticipée
1.1.1 Liaison anticipée ou Early Binding
1.1.2 Liaison tardive ou Late Binding
1.2 La fonction CreateObject
1.3 La fonction GetObject
1.3.1 Seul l'emplacement fichier est renseigné
1.3.2 L'emplacement fichier et la classe sont renseignés
1.3.3 Seule la classe est renseignée
1.4 Automation
2. Pilotage d'Excel
2.1 Hiérarchie des objets Excel
2.2 Les formats Excel
2.2.1 Avant Excel 2007 - .xls
2.2.2 Depuis Excel 2007
2.3 Liste des principaux objets et collections Excel
2.3.1 L'application
2.3.2 Le classeur Workbook
2.3.3 La feuille Worksheet
2.3.4 Les cellules Range et Cells
2.3.5 Les graphiques Chart
2.3.6 Les tableaux croisés dynamiques PivotTable
2.3.7 Autres possibilités
3. Pilotage de Word
3.1 Hiérarchie des objets Word
3.2 Liste des principaux objets et collections Word
3.2.1 L'application
3.2.2 Le document Document
3.2.3 Le tableau Table
3.2.4 Autres possibilités
4. Pilotage d'Outlook
4.1 Hiérarchie des objets Outlook
4.2 Liste des principaux objets et collections Outlook
4.2.1 L'application
4.2.2 Les mails MailItem
4.2.3 Les contacts ContactItem
4.2.4 Les réunions AppointmentItem
4.2.5 Autres possibilités
Microsoft Access 2016 et Internet
1. Introduction
2. Access 2016 et la navigation web
2.1 Les contrôles Internet
2.1.1 Contrôle interne à l'application : WebBrowser
2.1.2 Contrôle externe à l'application : exemple d'Internet Explorer
2.1.3 Les événements des contrôles
2.2 Les librairies VBA utilisables
2.2.1 Microsoft XML
2.2.2 Microsoft HTML Object Library
2.3 Les requêtes HTTP
2.3.1 Ouvrir une connexion HTTP
2.3.2 Télécharger un fichier
3. Access 2016 et le format XML
3.1 Le format XML et les données
3.1.1 Le format XML
3.1.2 Le format XSD
3.1.3 Le format XSL
3.1.4 Rendu global du fichier
3.2 Access et les données XML
3.2.1 Importer les données dans l'interface
3.2.2 Exporter les données dans l'interface
4. VBA et le format XML
4.1 L'importation de données XML
4.2 L'exportation de données XML
5. VBA et le format HTML
5.1 L'importation de données HMTL
5.1.1 Importer les données dans l'interface
5.1.2 Exporter les données dans l'interface
6. VBA et le format HTML
6.1 L'importation de données HTML
6.2 L'exportation de données HTML
Les interactions Windows
1. Les API Windows
1.1 Définition
1.2 Déclaration d'une API
1.2.1 Syntaxe générale
1.2.2 Exemples
1.3 Paramètres et pointeurs
1.4 Exemples
1.4.1 Ouvrir un fichier avec l'application par défaut
1.4.2 Accéder à la base de registre
1.4.3 Créer un dossier
1.4.4 Récupérer le nom de la machine ou le modifier
1.4.5 Les API liées au presse-papiers Windows
2. L’objet FileSystemObject
2.1 Introduction
2.2 Hiérarchie de l'objet
2.3 Gestion des disques
2.3.1 Propriétés de l'objet Drive
2.3.2 Exemple
2.4 Gestion des répertoires
2.4.1 Propriétés de l'objet Folder
2.4.2 La propriété Attributes d'un répertoire
2.4.3 Méthodes de l'objet Folder
2.4.4 Exemples
2.5 Gestion des fichiers
2.5.1 Propriétés de l'objet File
2.5.2 Méthodes de l'objet File
2.5.3 Exemples
2.6 Méthodes de l'objet FileSystemObject
3. Les fichiers texte
3.1 Accès séquentiel
3.1.1 Syntaxe générale
3.1.2 Lecture
3.1.3 Écriture
3.2 Accès direct
3.2.1 Lecture
3.2.2 Écriture
Mini-application
1. Problématique
1.1 Contexte
1.2 Objectifs
1.3 Architecture de la base
1.4 Formulaire Accueil
1.4.1 Interface
1.4.2 Code VBA
1.5 Formulaire Liste Entreprises
1.5.1 Interface
1.5.2 Code VBA
1.6 Formulaire Détail de l’Entreprise
1.6.1 Interface
1.6.2 Code VBA
1.7 Sous-formulaire Contact
Annexes
1. Fonctions et instructions VBA
1.1 Déclaration
1.2 Fonctions logiques
1.3 Fonctions de chaîne
1.4 Fonctions de date
1.5 Fonctions mathématiques
1.6 Fonctions financières
1.7 Fonctions de fichier
1.8 Fonctions de conversion
1.9 Fonctions système
1.10 Fonctions de tableau
1.11 Fonctions de gestion d'objets
1.12 Fonctions et instructions de gestion d'erreur
1.13 Fonctions de formatage
1.14 Fonctions d'interface utilisateur
2. Fonctions et procédures VBA Access
2.1 Fonctions SQL
2.2 Méthodes Docmd
2.3 Fonctions de domaines
2.4 Fonctions et instructions d'échange dynamique de données
3. Constantes
3.1 Constantes VBA - constantes vb
3.1.1 Constantes de textes
3.1.2 Constantes de dates
3.1.3 Constantes de couleurs
3.1.4 Constantes de boutons
3.1.5 Constantes de touches clavier
3.2 Constantes Access - constantes ac
3.2.1 AcCloseSave - constantes de sauvegarde lors de la fermeture
3.2.2 AcColorIndex - constantes de couleurs
3.2.3 AcCommand - constantes de commandes
3.2.4 AcControlType - constantes de types de contrôles
3.2.5 AcCurrentView - constantes de vues courantes
3.2.6 AcDataObjectType - constantes de types d'objets Access
3.2.7 acExportXMLObjectType - constantes des types d'objets à exporter
3.2.8 acExportXMLOtherFlags - constantes post exportation XML
3.2.9 AcFileFormat - constantes de formats de fichier Microsoft Access
3.2.10 AcObjectType - constantes de types d'objets
3.2.11 AcProperty - constantes de propriétés
3.2.12 AcWindowMode - constantes d'affichage de fenêtre
3.3 Constantes DAO - constantes db
3.3.1 CollatingOrderEnum - constantes ordres de collation
3.3.2 DataTypeEnum - constantes types de données
3.3.3 LockTypeEnum - constantes modes de verrouillage
3.3.4 QueryDefTypeEnum - constantes de types de requêtes
3.3.5 RecordsetTypeEnum - constantes de types de jeux d'enregistrements
3.4 Constantes ADO - constantes ad
3.4.1 DataTypeEnum - constantes types de données
3.4.2 LockTypeEnum - constantes modes de verrouillage
3.5 Constantes Microsoft - constantes mso
3.5.1 msoAutomationSecurity - constantes sécurité lors de l'ouverture par automation
4. Liste des erreurs
5. Raccourcis-clavier
Index
Jean-Philippe ANDRÉ
Développeur, consultant autour des technologies Microsoft depuis de nombreuses années, Jean-Philippe ANDRÉ, aujourd’hui architecte Power Platform, intervient en soutien aux développeurs au Québec. Enseignant pendant près de 10 ans en écoles d’ingénieurs et à l’université, il a rédigé de nombreux livres sur la programmation VBA ou la prise en main de Dynamics 365 dans lesquels il aime à transmettre toute son expérience technique et pédagogique.