IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Exporter une requête en CSV


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2014
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur environnement
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2014
    Messages : 73
    Points : 20
    Points
    20
    Par défaut Exporter une requête en CSV
    Bonjour,

    Je sais que cette question a été maintes fois posée mais je ne trouve pas la solution à mon problème.

    Je souhaite simplement faire un bouton sur un formulaire avec comme action l'exportation d'une requête au format CSV sous VBA.

    Premier souci, j'ai eu la fameuse erreur « Erreur d’exécution 3441.
    Le séparateur du champ de spécification du fichier texte est identique au séparateur décimal ou au délimiteur de texte. »

    Je lis à droite et à gauche que pour corriger ce bug sur Access 2010, il est nécessaire de créer une premier exportation manuelle via l'assistant, de l'enregistrer et ensuite de la nommer en tant que spécification pour la ligne VBA.
    Je m'exécute, je fais mon exportation via l'assistant et j'enregistre l'étape d'exportation sous le nom Export.

    Je retourne à mon bouton de formulaire et lui indique le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     DoCmd.TransferText acExportDelim, "Export", "R_gen_stat", "C:\Users\MonNom\Documents\R_gen_stat.txt"
    Et la c'est l'autre fameuse erreur : "Erreur d'execution 3625: La spécification du fichier texte "Export" n'existe pas. Vous ne pouvez pas exporter, ..."
    Je lis ici (https://support2.microsoft.com/defau...;EN-US;2581495) que cette erreur peut survenir si on utilise l'outil macro plutot que le VBA (et qu'un des moyens de la contourner et justement de privilégier la commande TransfertTtext en VBA), hors ce n'est pas mon cas.

    Pourriez vous svp m'apporter votre aide sur ce point ?

    Cordialement

  2. #2
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Bonsoir,

    Parfois les erreur d'exécution sont du à des noms réservés, mais pas bloquant.
    en premier lieu je referai mon format d'export du fichier texte et je ne l’appellerai pas "Export" qui pourrait bien etre un mot clé réservé.
    Je l’appellerai par exemple "Export_gen_Stat" car a priori, il n'y a pas de raison que cela ne fonctionne pas.
    je l'utilise souvent et cela marche très bien

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2014
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur environnement
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2014
    Messages : 73
    Points : 20
    Points
    20
    Par défaut
    Bonjour,

    A vrai dire, ma première tentative était avec un nom de spec "exp_csv" et j'ai eu la même erreur. Du coup j'avais refait toutes les étapes en choisissant "Export" en me disant, on ne sait jamais, peut être que le nom lui déplait.


    Vous faites bien ça sous Access 2010 ou supérieur en VBA ?

    Cordialement

  4. #4
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Bonjour,

    Je le faisait dans les versions antérieur Access.
    je n'en ai pas eu besoin dans mes nouvelles base en 2010 mais pourrai le tester.
    Quelle est votre version d'Access ?
    Vous serait-il possible de m'envoyer votre base ou une partie légère avec seulement les tables, la requête et le format d'export que je puisse tester si j'ai la même erreur et essayer de trouver la solution ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2014
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur environnement
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2014
    Messages : 73
    Points : 20
    Points
    20
    Par défaut
    Le pb est que justement ce genre d'erreur est apparue dans les version d'access > 2003

    J'utilise Access 2010. Ma base est trop "lourde" et comprend des données confidentielles. Je ne peux pas vraiment la découper dans le sens ou ma requête fait appelle à des champs réparties sur mes 3 bases principales.

    Pouvez vous directement faire le test sur une de vos bases Access 2010 ? Sinon, je créerai une base exemple mais je pense vraiment que mon pb est lié à la version d'Access d'après ce que j'ai pu lire..

    Ce qui est étrange c'est que, contrairement à ce que j'ai pu lire, si j'utilise l'outil Macro plutot que le VBA je n'ai pas ce problème. En revanche le format d'export txt ne me plait pas du tout et je n'ai pas la possibilité de lui préciser la spécification d'export.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2014
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur environnement
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2014
    Messages : 73
    Points : 20
    Points
    20
    Par défaut
    Ne vous embêtez pas Didier, je viens de tomber sur une page ou je retrouve mon problème mot pour mot et il semblerait qu'il y ait une erreur/explication. Je teste et vous informe

  7. #7
    Membre à l'essai
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2014
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur environnement
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2014
    Messages : 73
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par Fontaine_CLB Voir le message
    Ne vous embêtez pas Didier, je viens de tomber sur une page ou je retrouve mon problème mot pour mot et il semblerait qu'il y ait une erreur/explication. Je teste et vous informe
    Alors le problème est que j'ai (bêtement ?) cru que sauvegarder les étapes d'exportation correspondait au fichier de spécification. Hors ce n'est pas le cas, il faut aller dans "Avancé" lors de l'export manuel et Sauvegarder la spécification.

    Est-ce que ca marche maintenant ? Non
    3eme erreur pour une seule ligne de code je deviens fou. La j'ai "Erreur d'exécution '3001', Argument non valide".

    Mon code est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Commande20_Click()
    DoCmd.TransferText acExportDelim, "exp_csv", "R_gen_stat", "Destination_a_rallonge\R_gen_stat.txt", True
    End Sub
    exp_csv est le nom de ma spec d'export en .txt créer manuellement.
    R_gen_stat est ma requête que je je souhaite exporter (et sur laquelle a été faite ma spec en manuelle)
    Destination_a_rallonge et mon chemin de fichier ou je souhaite faire l'enregistrement (il est identique à celui fait lors de la spec). J'ai essayé d'en faire des plus simple directement sur le bureau et le problème est le même.

    D'ou peut bien venir mon erreur cette fois ci ?

  8. #8
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    SI le chemin est bon, si le nom de la requête et le nom de la spécification sont bons, le seul paramètre qui peut être erroné serait AcExportDelim.
    cela voudrait dire que lorsque tu as enregistré ta spécification, tu ne l'aurais pas enregistré en délimité, mais peut-être en fixe ou autre ?

    Je viens de faire un test sur une base en 2010 et cela fonctionne très bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub test()
        DoCmd.TransferText acExportDelim, "SPE_T_USERS", "T_USERS", "C:\Users\dla\Desktop\T_USERS.txt", True
    End Sub

  9. #9
    Membre à l'essai
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2014
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur environnement
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2014
    Messages : 73
    Points : 20
    Points
    20
    Par défaut
    Non je suis bien en délim. J'ai voulu tester sur une base de données vierge, j'ai créé deux tables, 1 requete, un formulaire vierge avec 1 bouton pour lancer l'export. Et la ca marche sans problème, il y 'a vraiment de quoi s'arracher les cheveux. Il y a forcement une erreur dans l'écriture d'un de mes arguments du code pour ma base mais je ne vois vraiment pas ou.

    Je réessaierai une dernière fois demain, l'esprit reposé mais je n'y crois pas.

    Merci tout de même pour votre aide

  10. #10
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Bonjour Fontaine_CLB et Didier L,

    Je crois que l'erreur vient de l'argument de nom de fichier destination.
    "Destination_a_rallonge\R_gen_stat.txt" n'indique pas un nom de fichier. Il n'y a pas le nom de la racine du disque.


    Cordialement,

  11. #11
    Membre à l'essai
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2014
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur environnement
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2014
    Messages : 73
    Points : 20
    Points
    20
    Par défaut
    Sisi il y a bien la racine du disque etc, j'ai juste masqué les informations dans mon quote

  12. #12
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    As tu bien vérifié le format d'export enregistré en le rappelant ?
    Car je ne vois pas d'erreur dans le code
    Une seule ligne et pas d'argument en trop ou mauvais !
    A moins que tu es un chemin avec des espaces ?
    Mais même la normalement il sait gérer ???

  13. #13
    Membre à l'essai
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2014
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur environnement
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2014
    Messages : 73
    Points : 20
    Points
    20
    Par défaut
    Qu'entends tu par rappeler le format d'export ? Comment fais tu ça ?

    Je ne comprends pas d'ou vient le pb sincèrement : j'ai essayé avec différent chemin, différentes tables, différents spécifications d'export et le pb est le même. Il doit se situer à ailleurs mais comme e l'ai dit j'ai essayé de le faire sur une base vierge pour l'exemple et j'y arrivais parfaitement

    Peut on etre limité par la taille de l'export ? J'ai lu que l'erreur pouvait survenir quand la base était trop "lourde" et qu'il suffisait de la compacter (ce que j'ai essayé) ...

    Je vais essayé sur une table petite pour voir.

  14. #14
    Membre à l'essai
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Septembre 2014
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur environnement
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2014
    Messages : 73
    Points : 20
    Points
    20
    Par défaut
    Ca marche sur une petite table insignifiante (de ma vraie base de données)

    Pour info, lla requete que je souhaite exporter comporte actuellement 750 enregistrements avec une vingtaines de champs.

  15. #15
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Bonjour,
    ce que je ne comprends pas c'est que si la taille de ta requête était trop importante et que nous étions limités pour la création du fichier, l'export manuel ne marcherai pas non plus !
    De plus le message d'erreur ne serait pas sur un argument non valide !
    Quand je dis de rappeler ton format d'export pour le tester, quand tu fais ton export manuel, dans avancé, tu clique sur "paramètres" afin de choisir ton format précédemment enregistré. Ensuite tu clique sur "Ok" et ainsi tu verra bien s'il est en format "délimité" ou "longueur fixe"

    Bon courage
    Il y a forcement une explication

Discussions similaires

  1. [MySQL] Exporter le résultat d'une requête en CSV
    Par soukatsoui dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/02/2014, 17h31
  2. [ODBC] [PostGreSQL] exporter une requête vers un fichier xls ou csv
    Par sage74 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 04/02/2011, 15h00
  3. Exporter une requête en csv
    Par EIDER dans le forum VBA Access
    Réponses: 2
    Dernier message: 21/04/2008, 18h27
  4. erreur d'export d'une requête en CSV
    Par mouaa dans le forum VBA Access
    Réponses: 5
    Dernier message: 02/08/2007, 14h45
  5. [phpMyAdmin] Exporter une requête au format CSV
    Par nicoaix dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 07/02/2006, 19h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo