Export CSV personnalisé – Episode 3
Si vous avez manqué le début : cette série montre comment exporter des données Access au format CSV. Dans cet article, on va explorer quelques propriétés qui permettent de personnaliser le format exporté.
Pour la mise en place, vous pouvez relire les articles précédents : Export CSV personnalisé, et Export CSV personnalisé – Episode 2.
Ne pas créer de ligne d’en-tête
La classe CSVExport
fournit un certain nombre de propriétés, que vous retrouvez dans le code, ou dans l’Explorateur d’objets :
Parmi les réglages possibles, vous pouvez ne pas exporter les en-têtes de colonnes. Il suffit de paramétrer la propriété Headers
sur False
. Par exemple :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Sub TestExportCSV2() ' Variables Dim ce As New CSVExport ' Initialisations générales With ce .Source = "tbl Clients" .Target = "C:\Users\Hervé\Desktop\clients.csv" .ExportAllFields = True .Headers = False End With ' Exportation If ce.Export() Then MsgBox "Exportation terminée !", vbInformation End If End Sub |
Vous obtenez par exemple ceci :
1;"Madame";"KUNTZ";"Anne";"Impasse des Jambettes";;13;"03 11 12 13 14";;"03 12 13 14 15";"mailto:anne.kuntz@orange.fr";;"";14/05/2007 12:25:40;14/05/2007 12:29:57;Vrai 2;"Mademoiselle";"DELISLE";"Marie";"Résidence les Goélettes";;12;"01 07 08 09 10";;;"mailto:marie.delisle@sfr.fr";;"";14/05/2007 12:30:34;13/07/2007 19:29:40;Faux 3;"Monsieur";"LAMARK";"Paul";"4, rue Bouchain";;1;"02 10 11 12 13";"06 70 71 72 73";;"mailto:paul.lamark@free.fr";;"";14/05/2007 13:01:19;14/05/2007 13:04:10;Faux 4;"Monsieur et Madame";"MARTIN";"Yves";"109, avenue de Galbord";;2;"05 11 12 13 14";;;"mailto:yves.martin@free.fr";;"";14/05/2007 13:04:13;14/05/2007 13:05:59;Faux 5;"Monsieur et Madame";"KELLER";"Maxime";"8, boulevard Virures";;3;;"06 80 81 82 83";;"mailto:maxime.keller@free.fr";;"";14/05/2007 13:06:02;14/05/2007 13:08:20;Faux 6;"Monsieur et Madame";"HERMAND";"Marc";"Traverse Les Barrots";;4;"04 08 09 10 11";;"04 09 10 11 12";"mailto:marc.hermand@sfr.fr";;"";14/05/2007 13:08:23;14/05/2007 14:29:09;Faux 7;"Monsieur et Madame";"EOLE";"Rémi";"9, rue du Pont";;5;"05 12 13 14 15";"06 90 91 92 93";;"mailto:remi.eole@free.fr";;"";14/05/2007 13:10:26;14/05/2007 13:37:20;Faux
Personnaliser les délimiteurs
Par défaut, le délimiteur de champs (FieldDelimiter
) est le point-virgule, et le délimiteur de valeurs Texte (TextDelimiter
) est le guillemet. Vous pouvez les modifier si nécessaire. Exemple :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Sub TestExportCSV3() ' Variables Dim ce As New CSVExport ' Initialisations générales With ce .Source = "tbl Clients" .Target = "C:\Users\Hervé\Desktop\clients.csv" .ExportAllFields = True .FieldDelimiter = "," .TextDelimiter = "#" End With ' Exportation If ce.Export() Then MsgBox "Exportation terminée !", vbInformation End If End Sub |
Vous obtenez ceci :
#Numéro Client#,#Titre#,#Nom Client#,#Prénom Client#,#Adresse 1#,#Adresse 2#,#Code Ville#,#Téléphone personnel#,#Téléphone mobile#,#Téléphone bureau#,#Email#,#Site web#,#Remarques#,#Date de création#,#Date de modification#,#Archiver# 1,#Madame#,#KUNTZ#,#Anne#,#Impasse des Jambettes#,,13,#03 11 12 13 14#,,#03 12 13 14 15#,#mailto:anne.kuntz@orange.fr#,,##,14/05/2007 12:25:40,14/05/2007 12:29:57,Vrai 2,#Mademoiselle#,#DELISLE#,#Marie#,#Résidence les Goélettes#,,12,#01 07 08 09 10#,,,#mailto:marie.delisle@sfr.fr#,,##,14/05/2007 12:30:34,13/07/2007 19:29:40,Faux 3,#Monsieur#,#LAMARK#,#Paul#,#4, rue Bouchain#,,1,#02 10 11 12 13#,#06 70 71 72 73#,,#mailto:paul.lamark@free.fr#,,##,14/05/2007 13:01:19,14/05/2007 13:04:10,Faux 4,#Monsieur et Madame#,#MARTIN#,#Yves#,#109, avenue de Galbord#,,2,#05 11 12 13 14#,,,#mailto:yves.martin@free.fr#,,##,14/05/2007 13:04:13,14/05/2007 13:05:59,Faux 5,#Monsieur et Madame#,#KELLER#,#Maxime#,#8, boulevard Virures#,,3,,#06 80 81 82 83#,,#mailto:maxime.keller@free.fr#,,##,14/05/2007 13:06:02,14/05/2007 13:08:20,Faux 6,#Monsieur et Madame#,#HERMAND#,#Marc#,#Traverse Les Barrots#,,4,#04 08 09 10 11#,,#04 09 10 11 12#,#mailto:marc.hermand@sfr.fr#,,##,14/05/2007 13:08:23,14/05/2007 14:29:09,Faux 7,#Monsieur et Madame#,#EOLE#,#Rémi#,#9, rue du Pont#,,5,#05 12 13 14 15#,#06 90 91 92 93#,,#mailto:remi.eole@free.fr#,,##,14/05/2007 13:10:26,14/05/2007 13:37:20,Faux
Retraiter les valeurs Oui/Non
Les champs Oui/Non sont restitués avec leur valeur standard (Vrai
ou Faux
). Mais vous pouvez également changer ce comportement grâce aux propriétés BooleanTrue
et BooleanFalse
. Par exemple, pour remplacer les Vrai/Faux par des 1/0, vous écrivez :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Sub TestExportCSV4() ' Variables Dim ce As New CSVExport ' Initialisations générales With ce .Source = "tbl Clients" .Target = "C:\Users\Hervé\Desktop\clients.csv" .ExportAllFields = True .BooleanTrue = "1" .BooleanFalse = "0" End With ' Exportation If ce.Export() Then MsgBox "Exportation terminée !", vbInformation End If End Sub |
Et vous obtenez ce qui suit (faites défiler l’aperçu vers la droite, pour voir les valeurs booléennes transformées en 1 et 0) :
"Numéro Client";"Titre";"Nom Client";"Prénom Client";"Adresse 1";"Adresse 2";"Code Ville";"Téléphone personnel";"Téléphone mobile";"Téléphone bureau";"Email";"Site web";"Remarques";"Date de création";"Date de modification";"Archiver" 1;"Madame";"KUNTZ";"Anne";"Impasse des Jambettes";;13;"03 11 12 13 14";;"03 12 13 14 15";"mailto:anne.kuntz@orange.fr";;"";14/05/2007 12:25:40;14/05/2007 12:29:57;1 2;"Mademoiselle";"DELISLE";"Marie";"Résidence les Goélettes";;12;"01 07 08 09 10";;;"mailto:marie.delisle@sfr.fr";;"";14/05/2007 12:30:34;13/07/2007 19:29:40;0 3;"Monsieur";"LAMARK";"Paul";"4, rue Bouchain";;1;"02 10 11 12 13";"06 70 71 72 73";;"mailto:paul.lamark@free.fr";;"";14/05/2007 13:01:19;14/05/2007 13:04:10;0 4;"Monsieur et Madame";"MARTIN";"Yves";"109, avenue de Galbord";;2;"05 11 12 13 14";;;"mailto:yves.martin@free.fr";;"";14/05/2007 13:04:13;14/05/2007 13:05:59;0 5;"Monsieur et Madame";"KELLER";"Maxime";"8, boulevard Virures";;3;;"06 80 81 82 83";;"mailto:maxime.keller@free.fr";;"";14/05/2007 13:06:02;14/05/2007 13:08:20;0 6;"Monsieur et Madame";"HERMAND";"Marc";"Traverse Les Barrots";;4;"04 08 09 10 11";;"04 09 10 11 12";"mailto:marc.hermand@sfr.fr";;"";14/05/2007 13:08:23;14/05/2007 14:29:09;0 7;"Monsieur et Madame";"EOLE";"Rémi";"9, rue du Pont";;5;"05 12 13 14 15";"06 90 91 92 93";;"mailto:remi.eole@free.fr";;"";14/05/2007 13:10:26;14/05/2007 13:37:20;0
Nicolas_54 > A priori, c’est possible, en paramétrant la propriété
Source
. Ça donnerait quelque chose comme :ou
J’ai prévu d’écrire un article plus détaillé pour compléter cette série. Par contre, en voulant faire trop bien 😉 j’ai mis un test d’existence de table dans CSVExport (le bloc « Est-ce que la table existe ? »), qu’il faudrait enlever pour autoriser une requête graphique ou une requête SQL.
Dans le cadre de l’exportation CSV.
Nicolas_54 > Dans le cadre de l’exportation CSV (cet article), ou en général ?
Bonjour,
Savez-vous s’il possible d’appliquer des tris (sur plusieur colonnes) directement dans la requête VBA ?? (je pense que oui).
Merci