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

IHM Discussion :

Export table access vers csv


Sujet :

IHM

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 22
    Points : 17
    Points
    17
    Par défaut Export table access vers csv
    Bonjour,

    J'ai table sous Access, et j'aurais voulu savoir s'il y avait
    moyen, et comment (outre le simple copier / coller) d'exporter les données
    de ce table en csv.

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir
    Fonction que j'utilise.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
     
    ' exportation d'une requête SQL ou table vers un fichier
    ' format csv avec séparateur optionnel
    Public Function ExportCsv(SQL As String, File_name As String, Optional ByVal sep As _
                                                                  String = ",", Optional ByVal Quote As String = "", Optional ByVal WithFields As Boolean = False) As Boolean
     
        Dim line As String, I As Long
        Dim rst As Recordset, fld As Field
     
        On Error GoTo ExportCsv_Error
     
        ' connection pour un projet access ADP :
        'Set rst = CurrentProject.Connection.Execute(SQL)
        ' connection pour un projet access MDB :
        Set rst = CurrentDb.OpenRecordset(SQL)
        Open File_name For Output As #1
     
        If WithFields Then  ' les noms de champ si demandé
            line = ""
            For Each fld In rst.Fields
                line = line & sep & Quote & fld.Name & Quote
            Next
            Print #1, Mid(line, Len(sep) + 1)
        End If
     
        Do Until rst.EOF
            line = ""
            For I = 0 To rst.Fields.Count - 1
                line = line & sep & Quote & Nz(rst(I).Value) & Quote
            Next I
            Print #1, Mid(line, Len(sep) + 1)
            rst.MoveNext
        Loop
        rst.Close
        Close #1
     
        ExportCsv = True
        Exit Function
     
    ExportCsv_Error:
     
        MsgBox "Error " & err.Number & " (" & err.Description & _
               ") in Function ExportCsv of Module mdFunctions", vbCritical
    End Function
    Et après tu apelles ta fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        Call ExportCsv("SELECT *  From Matable", CurrentProject.Path & "\NomFichier.csv", , , True)
    A adapter en fonction de ta requête et de ton fichier de destination.

    Bon Courage
    Dernière modification par Invité ; 05/12/2012 à 10h42.

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 22
    Points : 17
    Points
    17
    Par défaut
    Un grand merci GAYOT , je vais la tester

  4. #4
    Membre régulier Avatar de neoboy
    Inscrit en
    Juillet 2007
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 200
    Points : 96
    Points
    96
    Par défaut
    Bonjour GAYOT,

    J'ai un souci avec la fonction.
    En effet , lors de l'exécution j'ai une message d'erreur : ERROR 3141 dans lintruction SELECT , un mot réservé ou un argument est mal orthographié ou absent !

    je ne comprends , connais -tu ce problème ?

    merci d'avance

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour
    Peux tu indiquer ta ligne de commande?

  6. #6
    Membre régulier Avatar de neoboy
    Inscrit en
    Juillet 2007
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 200
    Points : 96
    Points
    96
    Par défaut
    Bonjour,

    Sub extraction()
    Call ExportCsv("SELECT *,From load", CurrentProject.Path &
    "\alex.csv", , , True)
    End Sub

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    631
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2011
    Messages : 631
    Points : 360
    Points
    360
    Par défaut
    Il y a une virgule qui traine devant le From

  8. #8
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Salut,

    Citation Envoyé par neoboy Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub extraction()
    Call ExportCsv("SELECT *,From load", CurrentProject.Path &
    "\alex.csv", , , True)
    End Sub
    Il y a une virgule avant le FROM.

    Et par rapport à la fonction de GAYOT, attention sa fonction met une , comme séparateur, alors que beaucoup de fichiers CSV ont le séparateur ;, n'oubliez pas de le changer en fonction de vos besoins.

    @+.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  9. #9
    Membre régulier Avatar de neoboy
    Inscrit en
    Juillet 2007
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 200
    Points : 96
    Points
    96
    Par défaut
    OK la procédure me donne exactement le même résultat que le enregistrer sous.
    Je souhaiterai ne pas passer à la ligne à chaque fois et avoir des points virgule entre les lignes du fichier.

    Pourriez-vous me dire quoi changer la procédure pour avoir ce résultat ?
    merci bcp pour votre aide.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Zoom61 a raison, mais même le séparateur ";" pose problème quand il y a des champs avec des commentaires ou désignations longues. Il m'arrive régulièrement dans ce cas de mettre en séparateur le trait vertical "|". Celui là on a peu de chance de le retrouver dans un texte.

  11. #11
    Membre régulier Avatar de neoboy
    Inscrit en
    Juillet 2007
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 200
    Points : 96
    Points
    96
    Par défaut
    Si vous voulez j'ai maintenant un fichier qui ressemble à ça :

    sex; age ; nom
    F.23;alex

    et je souhaite avoir un fichier :
    sex; age ; nom;F.23;alex

  12. #12
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Citation Envoyé par neoboy Voir le message
    OK la procédure me donne exactement le même résultat que le enregistrer sous.
    Je souhaiterai ne pas passer à la ligne à chaque fois et avoir des points virgule entre les lignes du fichier.

    Pourriez-vous me dire quoi changer la procédure pour avoir ce résultat ?
    merci bcp pour votre aide.
    Tu peux procéder de la même façon qu'avec ton autre discussion, cela fonctionne avec une table ou une requête.

    @+.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  13. #13
    Membre régulier Avatar de neoboy
    Inscrit en
    Juillet 2007
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 200
    Points : 96
    Points
    96
    Par défaut
    @zoom61

    Honnêtement je n'ai pas pu faire tourner ta méthode , du coup je suis resté sur le premier code.

    Il me reste un souci , je souhaiterai avoir un fichier csv qui ne saute pas ligne , je avoir toutes les données du fichier concaténées et séparées avec un ;

    peux-tu me dire ce qu'il faut changer dans le code suivant pour abtenir ce résultat ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    If WithFields Then  ' les noms de champ si demandé
            line = ""
            For Each fld In rst.Fields
                line = line & sep & Quote & fld.Name & Quote
            Next
            Print #1, Mid(line, Len(sep) + 1)
        End If
     
        Do Until rst.EOF
            line = ""
            For I = 0 To rst.Fields.Count - 1
                line = line & sep & Quote & Nz(rst(I).Value) & Quote
            Next I
            Print #1, Mid(line, Len(sep) + 1)
            rst.MoveNext
        Loop
        rst.Close
        Close #1

  14. #14
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Vu que je n'ai pas tout le code, peut-être ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Print #1, Mid(line, Len(sep) + 1) & ";"
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  15. #15
    Membre régulier Avatar de neoboy
    Inscrit en
    Juillet 2007
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 200
    Points : 96
    Points
    96
    Par défaut
    oui oui , ça c'est déja fait , ça permet effectivement de mettre un ; à la fin de la ligne mais ne permet pas de rester sur la même ligne .

    ce qui me dérange c'est le saut de ligne à chaque fois.

  16. #16
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Remplace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Do Until rst.EOF
    line = ""
    For I = 0 To rst.Fields.Count - 1
       line = line & sep & Quote & Nz(rst(I).Value) & Quote
    Next I
    Print #1, Mid(line, Len(sep) + 1)
    rst.MoveNext
    Loop
    Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    line = ""
    Do Until rst.EOF
    For I = 0 To rst.Fields.Count - 1
       line = line & sep & Quote & Nz(rst(I).Value) & Quote
    Next I
    rst.MoveNext
    Loop
    Print #1, Mid(line, Len(sep) + 1)
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  17. #17
    Membre régulier Avatar de neoboy
    Inscrit en
    Juillet 2007
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 200
    Points : 96
    Points
    96
    Par défaut
    euuu ça ne marche pas trop , ça fait une boucle infinie .....

  18. #18
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Ce que j'ai changé n'a rien à voir avec la boucle... j'ai juste sorti l'initialisation de la variable avant la boucle et l'écriture du résultat après la boucle...
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  19. #19
    Membre régulier Avatar de neoboy
    Inscrit en
    Juillet 2007
    Messages
    200
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 200
    Points : 96
    Points
    96
    Par défaut
    ok , bon ça ne marche toujours pas malheureusement ! merci qd même

Discussions similaires

  1. export table access vers excel qui stoppe au niveau d'une table
    Par Dermochelys dans le forum VBA Access
    Réponses: 7
    Dernier message: 10/11/2009, 17h01
  2. [AC-2000] exporter table access vers l'as/400
    Par bmorvan dans le forum VBA Access
    Réponses: 2
    Dernier message: 06/04/2009, 10h47
  3. Export table Access vers plusieurs fichiers Excel
    Par entrepreneur dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 07/01/2008, 09h18
  4. [VBA] Export table access vers fichier.txt
    Par fabiolous dans le forum VBA Access
    Réponses: 2
    Dernier message: 23/04/2007, 17h55
  5. Export table Access vers dBase III
    Par djo.alpha dans le forum Access
    Réponses: 2
    Dernier message: 27/04/2006, 13h53

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