Export CSV personnalisé – Episode 6

C’est la saga de l’été, dans le Grenier Self-Access 🙂 : comment exporter des données CSV personnalisées. Dans les épisodes précédents, il était question d’exporter les données d’une table. Mais on peut aussi exporter les données d’une requête… ou d’une instruction SQL brute. Voici comment faire…

Résumé des épisodes précédents

Avant de lire la suite, pensez à consulter ces articles du Grenier :

Quelques retouches

Croyant bien faire, j’ai en fait ajouté trop de vérifications dans la classe CSVExport. 😉 Il y a notamment une partie de code qui vérifie si la table existe bien dans la base de données. Mais on veut maintenant exporter autre chose qu’une table ! Par conséquent, pour assouplir le système :

  1. Rouvrez la classe CSVExport.
  2. Supprimez (ou mettez en commentaires) cette portion du code, que vous trouvez dans la fonction Export() :

Exporter une requête enregistrée

Maintenant, pour exporter une requête de la base de données, il suffit de la donner comme source, à savoir :

Exporter une requête SQL brute

De la même manière, vous pouvez définir la source comme étant une instruction SQL brute. Par exemple :

Vous aimerez aussi...

10 réponses

  1. Benjamin dit :

    Bonjour,

    l’export fonctionne bien mais j’aimerais exporter directement au format utf8.
    C’est possible ?

    • Hervé Inisan dit :

      Pour ne pas charger le code, j’utilise les fonctions natives VBA pour la gestion des fichiers (open/print/close). De mémoire – mais je n’ai pas d’Access sous la main pour vérifier -, ces fonctions ne gèrent pas l’UTF8. Une solution serait sans doute de remplacer les commandes natives par des instructions du Scripting Runtime, qui doit gérer UTF8.

  2. Alain dit :

    Salut,

    Est-il possible d’utiliser ton concept avec des états ?

    • Hervé Inisan dit :

      Quelle serait l’idée ?

      • Alain dit :

        L’idée est d’utiliser exactement le même principe mais au lieu de prendre en entrée une table ou une requête, on prends les champs d’un état.

        Pour ma part c’est que je manipule beaucoup de données et les états sont la sortie finale avec un export txt que je souhaiterai avoir.

        Actuellement l’export txt d’un état se fait uniquement avec la mise en page (la coche est grisé) .

        • Hervé Inisan dit :

          Je raisonnerais autrement : un état est lui-même basé sur une source de données (table ou requête). Ce sont ces données qui sont importantes (mais pas la mise en forme de l’état). Ce sont donc elles que j’exporterais directement.

          • Alain dit :

            Je suis ok avec le raisonnement, seulement que pour ma part, j’utilise des fonction d’access (test logique, concaténation textuelle,, calcul mathématique …) couplé avec des union pour données un état avancé à partir des données brutes.

            Voila pourquoi je cherche à faire un export de l’état en format CSV pour l’utiliser par la suite.

          • Hervé Inisan dit :

            Pas facile à traiter à distance, mais si le fichier CSV est un CSV classique (données pures, lignes + colonnes), on doit pouvoir produire la requête qui va bien (donc des données pures aussi) pour l’exporter. Une requête peut a priori (sauf quelques cas particuliers) fait des tests logiques, des concaténations, des calculs, etc.
            L’export d’un état au contraire risque de chercher à préserver la mise en forme, ce qui n’en fera pas forcément un « bon » CSV.
            Est-ce que les opérations faites sur l’état sont très spécifiques (et ne peuvent pas se faire au niveau inférieur) ?

  3. Trouve dit :

    tout fonctionne bien, si ce n’est que mes champs sont coupés a 255 caracteres !! comment faire pour contourner ce probleme?

Laisser un commentaire

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