Rejouer une exportation enregistrée en VBA
Dans l’article Exporter manuellement une table Access vers Excel, vous avez pu voir comment créer un fichier Excel à partir de données Access, le tout manuellement. Un utilisateur du forum a souhaité savoir comment automatiser cette opération, donc rejouer une exportation enregistrée en VBA.
Pour reprendre sa question : « Comment exécuter une exportation depuis un bouton mis sur mon tableau de bord et donc ne pas passer par le menu ? »
Avant de démarrer
Il y a d’autres façon de créer un fichier Excel, comme l’export CSV, ou comme l’instruction DoCmd.TransferSpreadSheet
, qui est plus « brute », mais peut-être aussi plus facile à maintenir. Recherchez les mots « exporter excel » sur ce blog, vous allez trouver plein d’articles ! 🙂
Je suppose aussi que vous avez enregistré au moins une exportation type. Reportez-vous à l’article précédent pour savoir comment le faire ou le vérifier. Dans mon scénario, l’exportation s’appelle « Exportation de la table Documents » ; ce nom est utile pour la suite.
Le code
Je suppose que vous avez un bouton, que ce bouton s’appelle btnExport
.
- Faites apparaître les propriétés de ce bouton, onglet Evénement.
- Cliquez sur les points de suspension à droite de l’événement
Sur clic
. - Vous retrouvez dans une procédure VBA (entre un
Sub
et unEnd Sub
). Adaptez le code pour obtenir ce qui suit, en reprenant bien sûr le nom de votre propre exportation.
1 2 3 |
Private Sub btnExport_Click() DoCmd.RunSavedImportExport "Exportation de la table Documents" End Sub |
C’est tout ! 🙂 Votre bouton devrait maintenant jouer le même rôle que l’icône standard du ruban Access.
Bonjour,
Code très intéressant.
Qu’elle est la façon d’exécuter ce code mais a l’ouverture du fichier, et dans qu’elle emplacement ?
Merci d’avance.
Pour exécuter le code à l’ouverture de la base, il faut d’abord qu’il soit public, et à l’intérieur d’un module standard, pour pouvoir l’appeler d’une macro (voir l’article cet article). Ensuite, il faut écrire la macro en l’appelant
AutoExec
(voir l’article ).Ouala !
Bonjour,
Pensez vous qu’il est possible d’utiliser le même principe sur les importations enregistrées?
J’ai un message d’erreur m’indiquant que l’index est introuvable.
Merci beaucoup pour votre aide
A priori oui (mais je n’ai pas testé récemment). Est-ce que le nom de l’importation est strictement identique dans le code VBA ?
Est-ce que le fichier existe et a la forme attendue ?