VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access...

27
Editions ENI VBA Access 2013 Programmer sous Access Collection Ressources Informatiques Table des matières

Transcript of VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access...

Page 1: VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access Collection Ressources Informatiques Table des matières

Editions ENI

VBA Access 2013 Programmer sous Access

CollectionRessources Informatiques

Table des matières

Page 2: VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access Collection Ressources Informatiques Table des matières

1Table des matières

Avant-propos1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2. Objectifs du livre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Chapitre 1Généralités

1. Rappels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2. Principes fondamentaux de VBA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3. Passage des macros à VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.1 Conversion de macros dans un formulaire ou un état . . . . . . . . 223.2 Conversion de macros globales . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4. Sécurité des bases de données Access . . . . . . . . . . . . . . . . . . . . . . . . . 234.1 Modification des paramètres de sécurité d'une base Access . . . 234.2 Modification des paramètres de sécurité par défaut . . . . . . . . . 254.3 Description des différentes options de sécurité . . . . . . . . . . . . . 254.4 Documents approuvés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.5 Emplacements approuvés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.6 Éditeurs approuvés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

5. Diffuser une base de données Access au moyen d'un package signé. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295.1 Obtenir un certificat numérique . . . . . . . . . . . . . . . . . . . . . . . . . 305.2 Créer et signer un package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Les éléments à télécharger sont disponibles à l'adresse suivante :http://www.editions-eni.fr

Saisissez la référence ENI de l'ouvrage RI13ACCV dans la zone de recherche et validez. Cliquez sur le titre du livre puis sur le bouton de téléchargement.

Page 3: VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access Collection Ressources Informatiques Table des matières

2Programmer sous Access

VBA Access 2013

6. L'environnement de développement IDE . . . . . . . . . . . . . . . . . . . . . . 316.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316.2 Fenêtres de l'environnement IDE . . . . . . . . . . . . . . . . . . . . . . . . 32

7. Configuration de l'éditeur VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357.1 Paramétrage des couleurs de l'éditeur . . . . . . . . . . . . . . . . . . . . . 357.2 Paramétrage de la présentation du code . . . . . . . . . . . . . . . . . . . 36

8. Référence aux objets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

9. Création d'une procédure en VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

10. Recommandations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

Chapitre 2Le langage Visual Basic

1. Les modules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

2. Les procédures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442.1 Les procédures Sub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452.2 Les procédures Function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472.3 Déclaration des procédures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472.4 Portée des procédures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482.5 Arguments des procédures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492.6 Les arguments nommés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502.7 Appel d'une procédure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512.8 Exemples de procédures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512.9 La fonction MsgBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

3. Les variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563.1 Les types de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563.2 Les déclarations de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593.3 La portée des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613.4 Les tableaux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613.5 Les constantes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

Page 4: VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access Collection Ressources Informatiques Table des matières

3Table des matières

4. Les structures de décision. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674.1 L'instruction IF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674.2 L'instruction Select Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694.3 La fonction Iif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

5. Les structures en boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715.1 L'instruction Do...Loop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715.2 L'instruction While...Wend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725.3 L'instruction For...Next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735.4 L'instruction For Each...Next . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

6. Les opérateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756.1 Les opérateurs arithmétiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766.2 Les opérateurs de comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . 766.3 Les opérateurs logiques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776.4 L'opérateur de concaténation. . . . . . . . . . . . . . . . . . . . . . . . . . . . 786.5 Priorité des opérateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

7. Les règles d'écriture du code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797.1 Les commentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797.2 Le caractère de continuation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807.3 L'indentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807.4 Les noms des procédures, variables et constantes . . . . . . . . . . . 81

8. Les conventions d'appellation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 818.1 Convention d'appellation des variables. . . . . . . . . . . . . . . . . . . . 818.2 Convention d'appellation des contrôles . . . . . . . . . . . . . . . . . . . 828.3 Convention d'appellation des objets . . . . . . . . . . . . . . . . . . . . . . 83

Page 5: VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access Collection Ressources Informatiques Table des matières

4Programmer sous Access

VBA Access 2013

Chapitre 3Objets et collections

1. Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

2. Le modèle objet d'Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 872.1 Principales collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 882.2 Objets du Modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

3. Principes d'utilisation des objets et des collections . . . . . . . . . . . . . . 903.1 Les propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903.2 Propriétés représentant des objets . . . . . . . . . . . . . . . . . . . . . . . . 903.3 Les méthodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 923.4 Les événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 933.5 Les collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 943.6 Affichage automatique d'instructions. . . . . . . . . . . . . . . . . . . . . 96

4. Instructions utilisées avec les objets . . . . . . . . . . . . . . . . . . . . . . . . . . 994.1 L'instruction With . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 994.2 L'instruction For each...Next . . . . . . . . . . . . . . . . . . . . . . . . . . . 1004.3 L'instruction If TypeOf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014.4 L'instruction Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

5. Les classes d'objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1075.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1075.2 Les modules de classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1075.3 Exemple de modules de classe . . . . . . . . . . . . . . . . . . . . . . . . . . 108

6. L'explorateur d'objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1126.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1126.2 Recherche dans l'explorateur d'objets . . . . . . . . . . . . . . . . . . . . 114

7. Propriétés et méthodes d'objets Access . . . . . . . . . . . . . . . . . . . . . . . 1157.1 L'objet Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1157.2 L'objet DoCmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1247.3 L'objet Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1317.4 La collection References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1327.5 La collection Printers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

Page 6: VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access Collection Ressources Informatiques Table des matières

5Table des matières

Chapitre 4Objets d'accès aux données

1. Objets d'accès aux données DAO et ADO . . . . . . . . . . . . . . . . . . . . 137

2. Le modèle d'accès aux données DAO . . . . . . . . . . . . . . . . . . . . . . . . 1382.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1382.2 Hiérarchie des objets DAO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1392.3 Description des collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1402.4 L'objet DBEngine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1422.5 Les objets Workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1432.6 Les objets Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1452.7 Les objets Recordset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1472.8 Les objets Tabledef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1542.9 Les objets Field et Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

2.9.1 Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1552.9.2 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

2.10 Les objets QueryDef et Parameter . . . . . . . . . . . . . . . . . . . . . . . 1592.10.1QueryDef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1592.10.2Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

2.11 Les objets Relation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1612.12 Les objets Container et Document . . . . . . . . . . . . . . . . . . . . . . 163

2.12.1Container . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1632.12.2Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

2.13 Les objets Group et User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1662.13.1User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1662.13.2Group. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

2.14 L'objet Error. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1682.15 Les objets Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

3. Le modèle d'accès aux données ADO . . . . . . . . . . . . . . . . . . . . . . . . 1703.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1703.2 ADO et OLE DB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1713.3 Hiérarchie des objets ADO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1723.4 Modèle de base de programmation ADO . . . . . . . . . . . . . . . . . 173

Page 7: VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access Collection Ressources Informatiques Table des matières

6Programmer sous Access

VBA Access 2013

3.5 Description des objets ADO . . . . . . . . . . . . . . . . . . . . . . . . . . . 1743.6 Les collections ADO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1753.7 Les objets Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1753.8 Les objets Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1783.9 Les objets Recordset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1793.10 La collection Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1853.11 Les objets Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1853.12 La collection Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1863.13 Les objets Parameter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1873.14 La collection Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1883.15 Les objets Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1883.16 La collection Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1883.17 Les objets Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

Chapitre 5Le langage SQL

1. Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191

2. Langage SQL et VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

3. Description du langage SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1943.1 L'instruction SELECT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1943.2 La clause FROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1953.3 La clause WHERE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1973.4 La clause GROUP BY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1973.5 La clause HAVING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1983.6 La clause ORDER BY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1993.7 L'instruction UPDATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1993.8 L'instruction DELETE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2003.9 L'instruction INSERT INTO . . . . . . . . . . . . . . . . . . . . . . . . . . . 2013.10 Autres instructions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202

Page 8: VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access Collection Ressources Informatiques Table des matières

7Table des matières

4. Exemples d'utilisation de requêtes SQL . . . . . . . . . . . . . . . . . . . . . . 2034.1 Mise à jour d'enregistrements . . . . . . . . . . . . . . . . . . . . . . . . . . 2034.2 Chargement d'une liste déroulante . . . . . . . . . . . . . . . . . . . . . . 204

Chapitre 6Gestion des événements

1. Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2071.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2071.2 Association de code VBA à un événement . . . . . . . . . . . . . . . . 208

2. Catégories d'événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2092.1 Événements de type Fenêtre . . . . . . . . . . . . . . . . . . . . . . . . . . . 2102.2 Événements de type Focus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2102.3 Événements de type Données . . . . . . . . . . . . . . . . . . . . . . . . . . 2122.4 Événements de type Souris . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2142.5 Événements de type Clavier. . . . . . . . . . . . . . . . . . . . . . . . . . . . 2152.6 Événements de type Impression . . . . . . . . . . . . . . . . . . . . . . . . 2162.7 Événements de type Filtre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2172.8 Événements de type Erreur et Minuterie . . . . . . . . . . . . . . . . . 217

3. Annulation d'un événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218

4. Séquences types d'événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

5. Les événements de mise à jour. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

Chapitre 7Débogage et gestion des erreurs

1. Les différents types d'erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2211.1 Les erreurs de syntaxe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2211.2 Les erreurs de compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2221.3 Les erreurs d'exécution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2231.4 Les erreurs de logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

Page 9: VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access Collection Ressources Informatiques Table des matières

8Programmer sous Access

VBA Access 2013

2. Débogage avec VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2252.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2252.2 La barre d'outils Débogage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2252.3 L'objet Debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227

3. Gestion des erreurs par VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2273.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2273.2 La procédure événementielle Error . . . . . . . . . . . . . . . . . . . . . . 2283.3 L'instruction On Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2293.4 L'objet Err . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

Chapitre 8Personnalisation des formulaires et états

1. Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

2. Personnalisation des formulaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2342.1 Syntaxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2342.2 Propriétés disponibles en mode Création . . . . . . . . . . . . . . . . . 235

2.2.1 Propriétés de l'onglet Format . . . . . . . . . . . . . . . . . . . . . . 2362.2.2 Propriétés de l'onglet Données. . . . . . . . . . . . . . . . . . . . . 2392.2.3 Propriétés de l'onglet Événement. . . . . . . . . . . . . . . . . . . 2412.2.4 Propriétés de l'onglet Autres . . . . . . . . . . . . . . . . . . . . . . 245

2.3 Propriétés non disponibles en mode Création . . . . . . . . . . . . . 2462.3.1 Propriétés se rapportant au mode d'affichage

du formulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2462.3.2 Propriétés se rapportant aux enregistrements

et à leur mise à jour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2462.3.3 Propriétés se rapportant à la présentation

du formulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2472.3.4 Propriétés renvoyant un objet . . . . . . . . . . . . . . . . . . . . . 2492.3.5 Propriétés relatives à l'impression du formulaire . . . . . . 249

2.4 Méthodes des objets Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250

Page 10: VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access Collection Ressources Informatiques Table des matières

9Table des matières

3. Personnalisation des états . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2513.1 Syntaxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2513.2 Propriétés disponibles en mode Création . . . . . . . . . . . . . . . . . 252

3.2.1 Propriétés de l'onglet Format . . . . . . . . . . . . . . . . . . . . . . 2523.2.2 Propriétés de l'onglet Données. . . . . . . . . . . . . . . . . . . . . 2553.2.3 Propriétés de l'onglet Événement. . . . . . . . . . . . . . . . . . . 2563.2.4 Propriétés de l'onglet Autres . . . . . . . . . . . . . . . . . . . . . . 258

3.3 Propriétés non disponibles en mode création . . . . . . . . . . . . . . 2593.3.1 Propriétés se rapportant au mode d'affichage de l'état. . 2593.3.2 Propriétés se rapportant aux enregistrements

et à leur mise à jour. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2593.3.3 Propriétés se rapportant à la présentation de l'état . . . . 2603.3.4 Propriétés renvoyant un objet . . . . . . . . . . . . . . . . . . . . . 2613.3.5 Propriétés relatives à l'impression de l'état . . . . . . . . . . . 2623.3.6 Autres propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262

3.4 Méthodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263

4. Les objets Control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2644.1 Syntaxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2644.2 Propriétés communes à la plupart des contrôles . . . . . . . . . . . 265

4.2.1 Propriétés renvoyant des objets . . . . . . . . . . . . . . . . . . . . 2654.2.2 Autres propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265

4.3 Méthodes communes à la plupart des contrôles . . . . . . . . . . . 2654.4 La méthode Move . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266

5. Les contrôles d'Access. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2665.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2665.2 Liste des contrôles Access. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

Page 11: VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access Collection Ressources Informatiques Table des matières

10Programmer sous Access

VBA Access 2013

Chapitre 9Amélioration de l'interface utilisateur

1. Les options de démarrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269

2. Personnalisation du ruban . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2722.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2722.2 Configuration d'Access pour la personnalisation du ruban . . . 272

2.2.1 Affichage des tables systèmes dans le volet de navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272

2.2.2 Affichage des messages d'erreurs contenus dans le code XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273

2.3 Création d'une table système USysRibbons . . . . . . . . . . . . . . . 2742.4 Ajout du code XML de personnalisation

à la table USysRibbons. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2742.5 Association du ruban à l'application active . . . . . . . . . . . . . . . 2752.6 Association du ruban à un formulaire ou un état . . . . . . . . . . 276

3. Présentation du langage XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2773.1 Le langage XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2773.2 Éléments XML utilisés pour personnaliser le ruban. . . . . . . . . 278

3.2.1 Les principales balises XML utilisées dans le code XML d'un ruban . . . . . . . . . . . . . . . . . . . . . 278

3.2.2 Les propriétés associées aux objets du ruban . . . . . . . . . 278

4. Exemple de ruban personnalisé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2804.1 Code XML du ruban personnalisé . . . . . . . . . . . . . . . . . . . . . . . 2804.2 Code VBA appelé par les commandes du ruban personnalisé . 284

5. Images de la galerie des icônes Microsoft Office . . . . . . . . . . . . . . . 285

Page 12: VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access Collection Ressources Informatiques Table des matières

11Table des matières

Chapitre 10Communication avec les applications Office 2013

1. La technologie Automation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2871.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2871.2 Utilisation de la technologie Automation. . . . . . . . . . . . . . . . . 289

2. Piloter Word depuis Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2902.1 Le modèle objet Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2902.2 Principales collections du modèle objet Word . . . . . . . . . . . . . 2912.3 Principaux objets du modèle objet de Word . . . . . . . . . . . . . . . 2922.4 La collection Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2932.5 Les objets Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294

3. Piloter Excel depuis Access. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2983.1 Le modèle Objet Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2983.2 Principales collections de l'application Excel. . . . . . . . . . . . . . . 2993.3 La collection Workbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3003.4 Les objets Workbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300

3.4.1 Principales méthodes de l'objet Workbook . . . . . . . . . . . 3003.4.2 Principales collections associées à l'objet Workbook . . . 301

3.5 Écriture de données dans des cellules Excel . . . . . . . . . . . . . . . 302

4. Piloter Outlook depuis Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3044.1 Le modèle Objet Outlook. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3044.2 Exemple : affichage des contacts Outlook . . . . . . . . . . . . . . . . 305

Chapitre 11Programmation Internet

1. Import et export de données au format XML . . . . . . . . . . . . . . . . . 3071.1 La méthode ExportXML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3081.2 La méthode ImportXML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3101.3 Exemple d'import/export XML . . . . . . . . . . . . . . . . . . . . . . . . . 310

2. Exemple de création d'un fichier HTML . . . . . . . . . . . . . . . . . . . . . . 314

Page 13: VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access Collection Ressources Informatiques Table des matières

12Programmer sous Access

VBA Access 2013

Chapitre 12Programmation Windows

1. Présentation des API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317

2. Appel d'une fonction de l'API Windows . . . . . . . . . . . . . . . . . . . . . . 3182.1 Syntaxe de l'instruction Declare . . . . . . . . . . . . . . . . . . . . . . . . 3182.2 Passage des arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319

3. Liste de fonctions API Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321

4. Exemples d'utilisation de fonctions API Windows . . . . . . . . . . . . . 3224.1 Récupération du répertoire Windows . . . . . . . . . . . . . . . . . . . . 3224.2 Lancement de l'application Excel si non active. . . . . . . . . . . . . 3234.3 Récupération d'une valeur dans un fichier .ini . . . . . . . . . . . . . 324

5. L'objet FileSystemObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3265.1 Méthodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3265.2 Propriétés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3275.3 Exemple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327

Chapitre 13Code d'une mini-application

1. Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3291.1 Énoncé du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3291.2 Base de données Formations . . . . . . . . . . . . . . . . . . . . . . . . . . . 3301.3 Modèle relationnel de la base. . . . . . . . . . . . . . . . . . . . . . . . . . . 330

2. Formulaire "Formations" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3312.1 Liste des contrôles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3322.2 Code VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3332.3 Sous-formulaire "SF Participants" . . . . . . . . . . . . . . . . . . . . . . . 3372.4 Code VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338

Page 14: VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access Collection Ressources Informatiques Table des matières

13Table des matières

3. Formulaire "Recherche" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3393.1 Liste des contrôles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3403.2 Code VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3403.3 Sous-formulaire "SF Formations". . . . . . . . . . . . . . . . . . . . . . . . 3433.4 Etat "Formations" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344

Annexes1. Fonctions et instructions VBA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347

1.1 Manipulation de chaînes de caractères . . . . . . . . . . . . . . . . . . . 3471.2 Contrôle du déroulement du programme . . . . . . . . . . . . . . . . . 3481.3 Conversion de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3491.4 Date et heure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3511.5 Déclaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3521.6 Domaine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3531.7 Échange dynamique de données . . . . . . . . . . . . . . . . . . . . . . . . 3531.8 Entrées/sorties fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3541.9 Finance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3561.10 Gestion d'erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3571.11 Graphiques dans les états imprimés . . . . . . . . . . . . . . . . . . . . . 3571.12 Liaisons et incorporation d'objets . . . . . . . . . . . . . . . . . . . . . . . 3581.13 Manipulation d'objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3581.14 Mathématiques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3581.15 SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3591.16 Tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3601.17 Vérification de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3611.18 Fonctions et instructions diverses . . . . . . . . . . . . . . . . . . . . . . . 3611.19 Codes erreurs récupérables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362

Page 15: VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access Collection Ressources Informatiques Table des matières

14Programmer sous Access

VBA Access 2013

2. Constantes VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3682.1 Constantes de couleur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3682.2 Constantes de date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3682.3 Constantes des touches clavier lettres et chiffres. . . . . . . . . . . 3692.4 Constantes de touches de fonction . . . . . . . . . . . . . . . . . . . . . . 3692.5 Constantes de touches diverses . . . . . . . . . . . . . . . . . . . . . . . . . 370

3. Raccourcis-clavier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373

Page 16: VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access Collection Ressources Informatiques Table des matières

Editions ENI

VBA Access 2013 Apprenez à créer

des applications professionnelles Exercices et corrigés

CollectionLes TP Informatiques

Table des matières

Page 17: VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access Collection Ressources Informatiques Table des matières

IntroductionPublic du livre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Objectif du livre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Utilisation du livre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Aide à la réalisation des travaux pratiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

ÉnoncésChapitre 1 : Créer des procédures et des fonctionsÉnoncé 1.1 Créer et lancer une procédure publique. . . . . . . . . . . . . . . . . . . . . . . . . . 43Énoncé 1.2 Créer et lancer une procédure privée . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Énoncé 1.3 Appeler une procédure à partir d’une autre procédure. . . . . . . . . . . . . . . . 44Énoncé 1.4 Modifier la portée d’une procédure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45Énoncé 1.5 Dialoguer avec l’utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46Énoncé 1.6 Utiliser une fonction dans une procédure . . . . . . . . . . . . . . . . . . . . . . . . 46Énoncé 1.7 Utiliser des procédures événementielles . . . . . . . . . . . . . . . . . . . . . . . . . 47

Chapitre 2 : Créer des variables et des constantesPré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Énoncé 2.1 Déclarer et utiliser des variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Énoncé 2.2 Déclarer et utiliser des constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56Énoncé 2.3 Utiliser un type défini par l'utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . 58Énoncé 2.4 Manipuler les données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59Énoncé 2.5 Utiliser un tableau à une dimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

Chapitre 3 : Utiliser des opérateursPré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61Énoncé 3.1 Diviser deux nombres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63Énoncé 3.2 Obtenir le reste d'une division entière . . . . . . . . . . . . . . . . . . . . . . . . . . . 64Énoncé 3.3 Trouver le plus petit entre deux nombres . . . . . . . . . . . . . . . . . . . . . . . . 65Énoncé 3.4 Donner le résultat d'un nombre élevé à la puissance N . . . . . . . . . . . . . . . 66Énoncé 3.5 Générer des nombres aléatoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66Énoncé 3.6 Calculer le pourcentage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67Énoncé 3.7 Calculer la commission. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68Énoncé 3.8 Calculer l’annuité constante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69Énoncé 3.9 Compter le nombre de caractères. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

Page 18: VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access Collection Ressources Informatiques Table des matières

2

Énoncé 3.10 Comparer deux chaînes de caractères . . . . . . . . . . . . . . . . . . . . . . . . . . 70Énoncé 3.11 Formater un mot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70Énoncé 3.12 Rechercher un mot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71Énoncé 3.13 Extraire une information d’une chaîne de caractères . . . . . . . . . . . . . . . . 72

Chapitre 4 : Structures de contrôlePré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Énoncé 4.1 Contrôler la saisie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75Énoncé 4.2 Dire au revoir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76Énoncé 4.3 Identifier une consonne ou une voyelle . . . . . . . . . . . . . . . . . . . . . . . . . 78Énoncé 4.4 Répondre en fonction de l’âge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79Énoncé 4.5 Dire bonjour N fois . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80Énoncé 4.6 Compter de N en N jusqu'à M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81Énoncé 4.7 Rendre obligatoire une saisie et contrôler la sortie. . . . . . . . . . . . . . . . . . 83Énoncé 4.8 Écrire des mots à l’envers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84Énoncé 4.9 Trouver les nombres premiers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85Énoncé 4.10 Compter le nombre d’occurrences d’un nombre . . . . . . . . . . . . . . . . . . . 85

Chapitre 5 : Les tableauxPré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87Énoncé 5.1 Déclarer et utiliser un tableau accessible

par toutes les procédures du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89Énoncé 5.2 Déclarer et utiliser un tableau accessible

seulement par les procédures du module . . . . . . . . . . . . . . . . . . . . . . . . 89Énoncé 5.3 Afficher les limites d'un tableau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90Énoncé 5.4 Utiliser un tableau de niveau module. . . . . . . . . . . . . . . . . . . . . . . . . . . 90Énoncé 5.5 Initialiser un tableau avec des valeurs aléatoires . . . . . . . . . . . . . . . . . . . 91Énoncé 5.6 Déclarer et utiliser un tableau à deux dimensions . . . . . . . . . . . . . . . . . . 92Énoncé 5.7 Utiliser un tableau à plus de deux dimensions . . . . . . . . . . . . . . . . . . . . 92Énoncé 5.8 Déclarer et utiliser un tableau dynamique . . . . . . . . . . . . . . . . . . . . . . . 93Énoncé 5.9 Agrandir un tableau dynamique en préservant les valeurs initiales. . . . . . . 93Énoncé 5.10 Afficher les tables de multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95Énoncé 5.11 Afficher un tableau dans des zones de liste . . . . . . . . . . . . . . . . . . . . . . 95

Page 19: VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access Collection Ressources Informatiques Table des matières

3

Chapitre 6 : Langage ObjetPré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97Énoncé 6.1 Accéder à un objet et modifier ses propriétés . . . . . . . . . . . . . . . . . . . . 100Énoncé 6.2 Gérer des collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103Énoncé 6.3 Créer une classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105Énoncé 6.4 Utiliser la classe créée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106Énoncé 6.5 Créer et utiliser ses collections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106Énoncé 6.6 Utiliser une méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

Chapitre 7 : Les boîtes de dialoguePré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109Énoncé 7.1 Afficher un message simple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111Énoncé 7.2 Demander une saisie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112Énoncé 7.3 Contrôler la saisie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113Énoncé 7.4 Choisir les boutons pour les boîtes de dialogue . . . . . . . . . . . . . . . . . . . 113Énoncé 7.5 Effectuer une action selon le choix de l'utilisateur. . . . . . . . . . . . . . . . . . 114Énoncé 7.6 Effectuer un traitement tant que l'utilisateur a réalisé la saisie demandée . 115

Chapitre 8 : Les formulaires de donnéesPré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117Énoncé 8.1 Ouvrir et fermer un formulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119Énoncé 8.2 Afficher un formulaire en mode lecture seule . . . . . . . . . . . . . . . . . . . . . 122Énoncé 8.3 Identifier le contenu d'un formulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . 122Énoncé 8.4 Agir sur un sous-formulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123Énoncé 8.5 Afficher une image de fond . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123Énoncé 8.6 Dupliquer un formulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124Énoncé 8.7 Gérer le déplacement de la souris sur le formulaire . . . . . . . . . . . . . . . . 125Énoncé 8.8 Gérer le double clic de la souris sur le formulaire . . . . . . . . . . . . . . . . . . 126

Page 20: VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access Collection Ressources Informatiques Table des matières

4

Chapitre 9 : Les contrôlesPré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127Énoncé 9.1 Sélectionner un contrôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130Énoncé 9.2 Masquer puis réafficher des contrôles . . . . . . . . . . . . . . . . . . . . . . . . . 131Énoncé 9.3 Rendre un contrôle dépendant d'un autre. . . . . . . . . . . . . . . . . . . . . . . 131Énoncé 9.4 Faire réagir les contrôles à la souris. . . . . . . . . . . . . . . . . . . . . . . . . . . 132Énoncé 9.5 Faire réagir les contrôles à la frappe clavier . . . . . . . . . . . . . . . . . . . . . 132Énoncé 9.6 Changer l’image des boutons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133Énoncé 9.7 Calculer une commission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133Énoncé 9.8 Gérer une zone de liste simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135Énoncé 9.9 Ajouter une valeur dans une zone de liste modifiable. . . . . . . . . . . . . . . 141Énoncé 9.10 Relier les zones de liste aux tables . . . . . . . . . . . . . . . . . . . . . . . . . . . 142Énoncé 9.11 Utiliser des boutons d'option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144Énoncé 9.12 Utiliser des cases à cocher associées à des images . . . . . . . . . . . . . . . . 144Énoncé 9.13 Gérer des images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

Chapitre 10 : Les requêtesPré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147Énoncé 10.1 Afficher tous les enregistrements d’une table . . . . . . . . . . . . . . . . . . . . 150Énoncé 10.2 Afficher certains champs d’une table . . . . . . . . . . . . . . . . . . . . . . . . . . 150Énoncé 10.3 Sélectionner et imprimer des enregistrements . . . . . . . . . . . . . . . . . . . . 151Énoncé 10.4 Effectuer une recherche paramétrée . . . . . . . . . . . . . . . . . . . . . . . . . . 152Énoncé 10.5 Effectuer une recherche à partir d’une zone

de liste déroulante. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153Énoncé 10.6 Affiner les valeurs d'une zone de liste . . . . . . . . . . . . . . . . . . . . . . . . . 153Énoncé 10.7 Effectuer une recherche multicritère . . . . . . . . . . . . . . . . . . . . . . . . . . 154Énoncé 10.8 Mettre à jour des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155Énoncé 10.9 Supprimer un enregistrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156Énoncé 10.10 Utiliser une requête Union . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157Énoncé 10.11 Créer un top des ventes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

Page 21: VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access Collection Ressources Informatiques Table des matières

5

Chapitre 11 : Les objets de donnéesPré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159Énoncé 11.1 Créer une référence sur la base de données courante . . . . . . . . . . . . . . . 163Énoncé 11.2 Réaliser une requête action sur la base courante . . . . . . . . . . . . . . . . . . 163Énoncé 11.3 Interroger la base courante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164Énoncé 11.4 Remplir une table temporaire liée . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164Énoncé 11.5 Rechercher un enregistrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165Énoncé 11.6 Créer une référence sur une base de données externe Access . . . . . . . . . 165Énoncé 11.7 Agir sur une base de données externe Access . . . . . . . . . . . . . . . . . . . . 166Énoncé 11.8 Configurer une passerelle ODBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167Énoncé 11.9 Créer une référence sur une base de données

externe via une passerelle ODBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169Énoncé 11.10 Agir sur une base de données externe via une passerelle ODBC . . . . . . . . 169Énoncé 11.11 Créer un tableau de bord . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

Chapitre 12 : Les étatsPré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173Énoncé 12.1 Ouvrir un état en mode aperçu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175Énoncé 12.2 Imprimer directement un état . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175Énoncé 12.3 Lister tous les produits en fonction d'une saisie utilisateur. . . . . . . . . . . . 176Énoncé 12.4 Éditer tous les produits en rupture de stock. . . . . . . . . . . . . . . . . . . . . . 177Énoncé 12.5 Effectuer une mise en forme conditionnelle dynamique. . . . . . . . . . . . . . 178Énoncé 12.6 Imprimer un état paramétré . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179Énoncé 12.7 Extraire les données d'un état . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179Énoncé 12.8 Choisir les options d'imprimante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

Chapitre 13 : Interactions avec le Pack Office/API WindowsPré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183Énoncé 13.1 Lancer une application Microsoft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186Énoncé 13.2 Ouvrir un classeur Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188Énoncé 13.3 Copier des données Access vers des applications Microsoft . . . . . . . . . . . 188Énoncé 13.4 Effectuer un publipostage avec Word . . . . . . . . . . . . . . . . . . . . . . . . . . 189Énoncé 13.5 Exporter une requête vers Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190Énoncé 13.6 Générer une présentation PowerPoint . . . . . . . . . . . . . . . . . . . . . . . . . . 191Énoncé 13.7 Envoyer un mail avec Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192Énoncé 13.8 Lancer la calculatrice sous Windows Vista/Windows 7 . . . . . . . . . . . . . . 194Énoncé 13.9 Utiliser des fonctions Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

Page 22: VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access Collection Ressources Informatiques Table des matières

6

Énoncé 13.10 Importer dans une table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

Chapitre 14 : Optimiser l'application VBA AccessPré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199Énoncé 14.1 Modifier les options de démarrage. . . . . . . . . . . . . . . . . . . . . . . . . . . . 201Énoncé 14.2 Compacter une base de données Access . . . . . . . . . . . . . . . . . . . . . . . 202Énoncé 14.3 Personnaliser les barres d'outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203Énoncé 14.4 Accélérer l’utilisation des formulaires et des listes . . . . . . . . . . . . . . . . . 205Énoncé 14.5 Générer le matricule des employés . . . . . . . . . . . . . . . . . . . . . . . . . . . 205Énoncé 14.6 Exécuter des instructions VBA simultanément . . . . . . . . . . . . . . . . . . . 206

Chapitre 15 : Sécuriser l'application VBA AccessPré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207Énoncé 15.1 Suivre les actions de l’utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210Énoncé 15.2 Créer une messagerie interne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211Énoncé 15.3 Utiliser les droits d’accès de l’utilisateur. . . . . . . . . . . . . . . . . . . . . . . . 212Énoncé 15.4 Créer une base de données de sauvegarde . . . . . . . . . . . . . . . . . . . . . . 214

Page 23: VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access Collection Ressources Informatiques Table des matières

7

CorrigésChapitre 1 : Créer des procédures et des fonctionsPré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217Corrigé 1.1 Créer et lancer une procédure publique. . . . . . . . . . . . . . . . . . . . . . . . . 218Corrigé 1.2 Créer et lancer une procédure privée . . . . . . . . . . . . . . . . . . . . . . . . . . 219Corrigé 1.3 Appeler une procédure à partir d’une autre procédure. . . . . . . . . . . . . . . 219Corrigé 1.4 Modifier la portée d’une procédure . . . . . . . . . . . . . . . . . . . . . . . . . . . 220Corrigé 1.5 Dialoguer avec l’utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221Corrigé 1.6 Utiliser une fonction dans une procédure . . . . . . . . . . . . . . . . . . . . . . . 221Corrigé 1.7 Utiliser des procédures événementielles . . . . . . . . . . . . . . . . . . . . . . . . 222

Chapitre 2 : Créer des variables et des constantesPré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225Corrigé 2.1 Déclarer et utiliser une variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227Corrigé 2.2 Déclarer et utiliser des constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228Corrigé 2.3 Utiliser un type défini par l'utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . 229Corrigé 2.4 Manipuler les données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230Corrigé 2.5 Utiliser un tableau à 1 dimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231

Chapitre 3 : Utiliser des opérateursPré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233Corrigé 3.1 Diviser deux nombres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234Corrigé 3.2 Obtenir le reste d'une division entière . . . . . . . . . . . . . . . . . . . . . . . . . . 234Corrigé 3.3 Trouver le plus petit entre deux nombres . . . . . . . . . . . . . . . . . . . . . . . 235Corrigé 3.4 Donner le résultat d'un nombre élevé à la puissance N . . . . . . . . . . . . . . 235Corrigé 3.5 Générer des nombres aléatoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236Corrigé 3.6 Calculer le pourcentage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236Corrigé 3.7 Calculer la commission. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237Corrigé 3.8 Calculer l’annuité constante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237Corrigé 3.9 Compter le nombre de caractères. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238Corrigé 3.10 Comparer deux chaînes de caractères. . . . . . . . . . . . . . . . . . . . . . . . . . 239Corrigé 3.11 Formater un mot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239Corrigé 3.12 Rechercher un mot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240Corrigé 3.13 Extraire une information d’une chaîne de caractères . . . . . . . . . . . . . . . . 240

Page 24: VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access Collection Ressources Informatiques Table des matières

8

Chapitre 4 : Structures de contrôlePré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241Corrigé 4.1 Contrôler la saisie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242Corrigé 4.2 Dire au revoir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244Corrigé 4.3 Identifier une consonne ou une voyelle . . . . . . . . . . . . . . . . . . . . . . . . 244Corrigé 4.4 Répondre en fonction de l’âge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245Corrigé 4.5 Dire bonjour N fois . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246Corrigé 4.6 Compter de N en N jusqu'à M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248Corrigé 4.7 Rendre obligatoire une saisie et contrôler la sortie. . . . . . . . . . . . . . . . . 249Corrigé 4.8 Écrire des mots à l’envers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250Corrigé 4.9 Trouver les nombres premiers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251Corrigé 4.10 Compter le nombre d’occurrences d’un nombre . . . . . . . . . . . . . . . . . . 252

Chapitre 5 : Les tableauxPré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253Corrigé 5.1 Déclarer et utiliser un tableau accessible

par toutes les procédures du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . 254Corrigé 5.2 Déclarer et utiliser un tableau accessible seulement

par les procédures du module. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255Corrigé 5.3 Afficher les limites d'un tableau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255Corrigé 5.4 Utiliser un tableau de niveau module. . . . . . . . . . . . . . . . . . . . . . . . . . 256Corrigé 5.5 Initialiser un tableau avec des valeurs aléatoires . . . . . . . . . . . . . . . . . . 257Corrigé 5.6 Déclarer et utiliser un tableau à deux dimensions . . . . . . . . . . . . . . . . . 257Corrigé 5.7 Utiliser un tableau à plus de deux dimensions . . . . . . . . . . . . . . . . . . . 258Corrigé 5.8 Déclarer et utiliser un tableau dynamique . . . . . . . . . . . . . . . . . . . . . . 259Corrigé 5.9 Agrandir un tableau dynamique en préservant les valeurs initiales. . . . . . 260Corrigé 5.10 Afficher des tables de multiplication . . . . . . . . . . . . . . . . . . . . . . . . . . 261Corrigé 5.11 Afficher un tableau dans des zones de liste . . . . . . . . . . . . . . . . . . . . . 261

Chapitre 6 : Langage ObjetPré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263Corrigé 6.1 Accéder à un objet et modifier ses propriétés . . . . . . . . . . . . . . . . . . . . 264Corrigé 6.2 Gérer des collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268Corrigé 6.3 Créer une classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269Corrigé 6.4 Utiliser la classe créée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271Corrigé 6.5 Créer et utiliser ses collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271Corrigé 6.6 Utiliser une méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272

Page 25: VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access Collection Ressources Informatiques Table des matières

9

Chapitre 7 : Les boîtes de dialoguePré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273Corrigé 7.1 Afficher un message simple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274Corrigé 7.2 Demander une saisie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274Corrigé 7.3 Contrôler la saisie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275Corrigé 7.4 Choisir les boutons pour les boîtes de dialogue . . . . . . . . . . . . . . . . . . . 275Corrigé 7.5 Effectuer une action selon le choix de l'utilisateur. . . . . . . . . . . . . . . . . . 276Corrigé 7.6 Effectuer un traitement tant que l'utilisateur a réalisé la saisie demandée . 277

Chapitre 8 : Les formulaires de donnéesPré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279Corrigé 8.1 Ouvrir un formulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281Corrigé 8.2 Afficher un formulaire en mode lecture seule . . . . . . . . . . . . . . . . . . . . . 283Corrigé 8.3 Identifier le contenu d'un formulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . 283Corrigé 8.4 Agir sur un sous-formulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284Corrigé 8.5 Afficher une image de fond . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284Corrigé 8.6 Dupliquer un formulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285Corrigé 8.7 Gérer le déplacement de la souris sur le formulaire . . . . . . . . . . . . . . . . 286Corrigé 8.8 Gérer le double clic de la souris sur le formulaire . . . . . . . . . . . . . . . . . . 286

Chapitre 9 : Les contrôlesPré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287Corrigé 9.1 Sélectionner un contrôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288Corrigé 9.2 Masquer puis réafficher des contrôles. . . . . . . . . . . . . . . . . . . . . . . . . . 289Corrigé 9.3 Rendre un contrôle dépendant d'un autre . . . . . . . . . . . . . . . . . . . . . . . 289Corrigé 9.4 Faire réagir les contrôles à la souris . . . . . . . . . . . . . . . . . . . . . . . . . . . 290Corrigé 9.5 Faire réagir les contrôles à la frappe clavier. . . . . . . . . . . . . . . . . . . . . . 290Corrigé 9.6 Changer l’image des boutons. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291Corrigé 9.7 Calculer une commission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291Corrigé 9.8 Gérer une zone de liste simple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293Corrigé 9.9 Ajouter une valeur dans une zone de liste modifiable . . . . . . . . . . . . . . . 297Corrigé 9.10 Relier les zones de liste aux tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297Corrigé 9.11 Utiliser des boutons d'option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298Corrigé 9.12 Utiliser des cases à cocher associées à des images . . . . . . . . . . . . . . . . 299Corrigé 9.13 Gérer des images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300

Page 26: VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access Collection Ressources Informatiques Table des matières

10

Chapitre 10 : Les requêtesPré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301Corrigé 10.1 Afficher tous les enregistrements d’une table . . . . . . . . . . . . . . . . . . . . 302Corrigé 10.2 Afficher certains champs d’une table . . . . . . . . . . . . . . . . . . . . . . . . . . 302Corrigé 10.3 Sélectionner et imprimer des enregistrements . . . . . . . . . . . . . . . . . . . . 302Corrigé 10.4 Effectuer une recherche paramétrée . . . . . . . . . . . . . . . . . . . . . . . . . . 303Corrigé 10.5 Effectuer une recherche à partir d’une zone de liste déroulante . . . . . . . . 303Corrigé 10.6 Affiner les valeurs d'une zone de liste . . . . . . . . . . . . . . . . . . . . . . . . . 304Corrigé 10.7 Effectuer une recherche multicritère . . . . . . . . . . . . . . . . . . . . . . . . . . 305Corrigé 10.8 Mettre à jour des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307Corrigé 10.9 Supprimer un enregistrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309Corrigé 10.10 Utiliser une requête Union . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310Corrigé 10.11 Créer un top des ventes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311

Chapitre 11 : Les objets de donnéesPré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313Corrigé 11.1 Créer une référence sur la base de données courante. . . . . . . . . . . . . . . 314Corrigé 11.2 Réaliser une requête action sur la base courante. . . . . . . . . . . . . . . . . . 314Corrigé 11.3 Interroger la base courante. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315Corrigé 11.4 Remplir une table temporaire liée . . . . . . . . . . . . . . . . . . . . . . . . . . . 315Corrigé 11.5 Rechercher un enregistrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317Corrigé 11.6 Créer une référence sur une base de données Access . . . . . . . . . . . . . . 319Corrigé 11.7 Agir sur une base de données externe Access . . . . . . . . . . . . . . . . . . . . 319Corrigé 11.8 Configurer une passerelle ODBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321Corrigé 11.9 Créer une référence sur une base de données

externe via une passerelle ODBC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322Corrigé 11.10 Gérer une base de données externe via une passerelle ODBC . . . . . . . . . 322Corrigé 11.11 Créer un tableau de bord . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324

Chapitre 12 : Les étatsPré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327Corrigé 12.1 Ouvrir un état en mode aperçu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328Corrigé 12.2 Imprimer directement un état . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328Corrigé 12.3 Lister tous les produits en fonction d'une saisie utilisateur . . . . . . . . . . . 328Corrigé 12.4 Éditer tous les produits en rupture de stock . . . . . . . . . . . . . . . . . . . . . 329Corrigé 12.5 Effectuer une mise en forme conditionnelle dynamique . . . . . . . . . . . . . 329Corrigé 12.6 Imprimer un état paramétré . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330

Page 27: VBA Access 2013 - m.editions-eni.fr · Editions ENI VBA Access 2013 Programmer sous Access Collection Ressources Informatiques Table des matières

11

Corrigé 12.7 Extraire les données d'un état . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330Corrigé 12.8 Choisir les options d'imprimante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331

Chapitre 13 : Interactions avec le Pack Office/API WindowsPré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333Corrigé 13.1 Lancer une application Microsoft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335Corrigé 13.2 Ouvrir un classeur Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336Corrigé 13.3 Copier des données Access vers des applications Microsoft . . . . . . . . . . . 336Corrigé 13.4 Effectuer un publipostage avec Word . . . . . . . . . . . . . . . . . . . . . . . . . . 337Corrigé 13.5 Exporter une requête vers Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338Corrigé 13.6 Générer une présentation PowerPoint . . . . . . . . . . . . . . . . . . . . . . . . . . 338Corrigé 13.7 Envoyer un mail avec Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339Corrigé 13.8 Lancer la calculatrice sous Windows Vista/Windows 7 . . . . . . . . . . . . . . 340Corrigé 13.9 Utiliser des fonctions Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341Corrigé 13.10 Importer dans une table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342

Chapitre 14 : Optimiser l'application VBA AccessPré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343Corrigé 14.1 Modifier les options de démarrage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344Corrigé 14.2 Compacter une base de données Access. . . . . . . . . . . . . . . . . . . . . . . . 345Corrigé 14.3 Personnaliser les barres d'outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346Corrigé 14.4 Accélérer l’utilisation des formulaires et des listes . . . . . . . . . . . . . . . . . 347Corrigé 14.5 Générer le matricule des employés. . . . . . . . . . . . . . . . . . . . . . . . . . . . 348Corrigé 14.6 Exécuter des instructions VBA simultanément . . . . . . . . . . . . . . . . . . . . 349

Chapitre 15 : Sécuriser l'application VBA AccessPré-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351Corrigé 15.1 Suivre les actions de l’utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352Corrigé 15.2 Créer une messagerie interne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354Corrigé 15.3 Utiliser les droits d’accès de l’utilisateur . . . . . . . . . . . . . . . . . . . . . . . . 355Corrigé 15.4 Créer une base de données de sauvegarde . . . . . . . . . . . . . . . . . . . . . . 356