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 :

Classe CSVExport

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 :

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 :

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 :

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

Vous aimerez aussi...

4 réponses

  1. Hervé Inisan dit :

    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.

  2. Nicolas_54 dit :

    Dans le cadre de l’exportation CSV.

  3. Hervé Inisan dit :

    Nicolas_54 > Dans le cadre de l’exportation CSV (cet article), ou en général ?

  4. Nicolas_54 dit :

    Bonjour,
    Savez-vous s’il possible d’appliquer des tris (sur plusieur colonnes) directement dans la requête VBA ?? (je pense que oui).
    Merci

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *