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

Post on 10-Sep-2018

292 views 5 download

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

Editions ENI

VBA Access 2013 Programmer sous Access

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Editions ENI

VBA Access 2013 Apprenez à créer

des applications professionnelles Exercices et corrigés

CollectionLes TP 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

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

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

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

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

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

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

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

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

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

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