<!--
  canonical-url: https://www.avonture.be/fr/blog/vba-access-export
  published:     2025-06-27
  This is a static plain-Markdown mirror generated at build time.
  Visit the canonical URL above for the fully rendered page, with images and interactive components.
-->

# Exporter les objets MS Access

> Versionnez facilement votre base de données MS Access ! Exportez tout le code VBA, les formulaires, modules, requêtes et rapports vers des fichiers plats grâce à un simple script VBS, prêt pour GitHub.

---
![Exporter les objets MS Access](/img/v2/msaccess.webp)

**TL;DR**

Cet article présente un script VBS qui exporte tous les objets — formulaires, modules, requêtes, rapports et macros — d'une base de données Microsoft Access vers des fichiers texte individuels. Les développeurs peuvent ainsi versionner facilement le code source de leur application Access avec des outils comme Git et GitHub. Le script organise automatiquement les fichiers exportés dans un dossier `src` structuré, en créant un fichier distinct par objet. Suivre les changements et conserver un historique de la conception et de la logique de la base devient simple.

Il y a longtemps, dans une vie antérieure, j'ai développé beaucoup de bases de données MS Access et, contrairement aux outils modernes, il n'était pas possible de versionner le code (modules, macros, requêtes, etc.) dans un outil comme GitHub.

Ces objets font partie intégrante de la base de données, au même titre que les tables et leurs données. Tout est stocké dans le format `.mdb` (ou `.mda` ou `.accdb`). Si vous voulez les versionner, vous devez d'abord les extraire.

*Deux autres articles MS Access sur ce blog : [VBS - Retrieve the list of fields in a MS Access Database](/blog/vbs-msaccess-get-fields) pour auditer la structure, et [How to optimize an existing MS Access database](/blog/msaccess-optimize) pour agir sur les résultats.*

Voyons comment faire.

## Exemple {#sample}

En lançant `cscript vbs_access_export.vbs C:\Christophe\db1.mdb` dans une console DOS, vous obtiendrez ceci :

```bash
Process database C:\Christophe\db1.mdb

Exporting sources to C:\Christophe\src\db1.mdb\

Export all forms
        Export form 1/2 - frmCustomers to Forms\frmCustomers.frm
        Export form 2/2 - frmInvoices to Forms\frmInvoices.frm

Export all macros
        Export macro 1/15 - mcrPrint to Macros\mcrPrint.txt
        [...]

Export all modules
        Export module 1/2 - Helper to Modules\Helper.bas
        Export module 2/2 - SQL_Server to Modules\SQL_Server.bas

Export all queries
        Export query 1/23 - qryCustomers to Queries\qryCustomers.sql
        Export query 2/23 - qryInvoices to Queries\qryInvoices.sql
        [...]

Export all reports
        Export report 1/8 - Invoice to Reports\Invoice.txt
        [...]
```

Une fois terminé, vous aurez un sous-dossier `src` avec un fichier par objet : indirectement, vous disposez donc d'une sauvegarde de votre code 👌.

## Description {#description}

Mon script VBS <https://github.com/cavo789/vbs_access_export> exporte tous les objets de code (formulaires, macros, modules, requêtes et rapports) d'une base de données / application MS Access vers des fichiers plats sur votre disque.

Vous obtenez ainsi une sauvegarde rapide de votre code et vous pouvez le synchroniser sur une plateforme de versioning comme GitHub.

Le script démarre MS Access (en mode caché), ouvre la base spécifiée, traite chaque objet de code et les exporte un par un dans un dossier `\src\your_database.mdb`.

Le dossier `src` est créé automatiquement si nécessaire et vous y trouverez un sous-dossier portant le même nom que votre fichier (vous pouvez donc avoir plusieurs fichiers exportés dans le même dossier `src`).

## Installation {#install}

Récupérez simplement une copie du script VBS <https://github.com/cavo789/vbs_access_export>, et éventuellement le `.cmd` aussi (pour vous faciliter la vie), puis enregistrez-les dans le même dossier que votre base de données.

## Utilisation {#usage}

Éditez le fichier `.cmd` et vous verrez comment ça fonctionne : il suffit de lancer le `.vbs` avec un seul paramètre, le nom de votre base de données — la même commande que celle montrée en début d'article.

## Conclusion {#conclusion}

Un seul script VBS transforme formulaires, modules, requêtes, rapports et macros — tout ce qui vivait uniquement dans le fichier `.mdb`/`.accdb` — en fichiers plats que vous pouvez committer sur GitHub, comparer et suivre comme n'importe quelle autre base de code. Vous travaillez souvent avec des fichiers bourrés de VBA ? Voyez aussi [MS Excel - Get the list of references used in your modules](/blog/vba-excel-list-references), [How to optimize an existing MS Access database](/blog/msaccess-optimize) et [VBS - Retrieve the list of fields in a MS Access Database](/blog/vbs-msaccess-get-fields).
