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 :

Exporter toutes mes Tables Access en Txt (tabulation). [AC-2016]


Sujet :

IHM

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2013
    Messages : 8
    Points : 12
    Points
    12
    Par défaut Exporter toutes mes Tables Access en Txt (tabulation).
    Bonjour à toutes et tous,

    Après une dizaine de jours de recherche, j'ai fini par trouver ce code, le comprendre à peu près et il fonctionne :

    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
    46
    47
    48
     
    Private Sub BtnSauveTable_Click()
    Dim rst As DAO.Recordset
    Dim db As DAO.Database
    Dim fld As DAO.Field
    Dim strDelimeter As String
    Dim strText As String
    Dim blnColumnHeaders As Boolean
    Dim FilePartOne As String
    Dim mdbpath As String
     
    Set db = CurrentDb
     
    'Avec les Entêtes de colonnes et format Tab
    blnColumnHeaders = -1
    strDelimeter = Chr(9)
    'Ouvre la Table
    Set rst = db.OpenRecordset("select * from 02Auteurs")
    'Ouvre le fichier txt vide
    Open "C:\BOUQUIN\Originaux\02Auteurs.txt" For Output As #1
    'Récupère les titres des colonnes
    If blnColumnHeaders = True Then
    For Each fld In rst.Fields
    strText = strText & fld.Name & strDelimeter
    Next fld
     
    'Enlève le dernier Délimiteur (Tab)
    strText = Left(strText, Len(strText) - Len(strDelimeter))
    strText = strText & vbNewLine
    End If
     
    Do While Not rst.EOF
    For Each fld In rst.Fields
    strText = strText & fld.Value & strDelimeter
    Next
     
    'Enlève le Délimiteur supplémentaire(Tab)
    strText = Left(strText, Len(strText) - Len(strDelimeter))
    strText = strText & vbNewLine
    rst.MoveNext
    Loop
     
    'Supprime la dernière ligne
    strText = Left(strText, Len(strText) - Len(vbNewLine))
    Print #1, strText
    Close #1
     
    End Sub
    Inconvénient :
    Je dois répéter ce code 36 fois (36 tables).
    Je dois d'abord créer 36 fichiers Texte vide au nom des tables, au moins une première fois (les sauvegardes suivantes écraseront les précédentes)

    J'aimerais bien pouvoir automatiser ceci en une fois, création des fichiers texte et sauvegarde,
    car je compte sauver l'ensemble de mes tables une fois par mois.

    Comptant sur votre savoir pour m'aider à franchir ce cap.
    Christophe (les fautes de grammaires et de syntaxes restent l'entière propriété de leur Hauteur)

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 769
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 769
    Points : 14 810
    Points
    14 810
    Par défaut
    bonsoir,
    tu as fait 98% du travail, il suffit de transformer la Private Sub actuelle en Sub ou en Function avec déclaration de paramètre (nom de la table) et de modifier les instructions 18 et 20 pour prendre en compte ce paramètre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub SauveTable(pNomtable As String)
    Set rst = db.OpenRecordset(pNomtable, dbopensnapshot)    'instruction 18
    Open "C:\BOUQUIN\Originaux\" & pNomtable & ".txt" For Output As #1  'instruction 20
    et pour appeler le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub BtnSauveTable_Click()
    call SauveTable("02Auteurs")
    End Sub

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2013
    Messages : 8
    Points : 12
    Points
    12
    Par défaut Un Grand Merci
    Bonjour Tee_GrandBois

    C'est absolument parfait. Même les champs mémo ne sont pas coupés.
    Merci pour les 98 %, mais c'est plutôt un modérateur de Microsoft qui a donné cette solution en réponse à une demande.
    Cela date de 2006, et avec ceci "Dim mdbPath as string", j'avais donc hésité à l'utiliser. Je n'ai fait qu'un copier/coller, une lecture approfondie, une adaptation et des essais. Je n'ai donc que 10 % à mon actif. (Rendons à César....)
    Il ne me reste plus que quelques bricoles (code) à faire pour terminer ce logiciel.
    Je vous remercie grandement pour votre aide.
    Ainsi que l'ensemble des modérateurs car 50% du code que j'utilise provient de ce site (30 % M. Isnisian et 20 % Bombach)
    Je vous souhaite un excellent weekend sous le soleil. Christophe

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Macro ou VBA pour exporter toutes mes feuilles au format *txt
    Par jakadam dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/08/2011, 01h58
  2. Export de toutes les tables Access vers PostGres
    Par gege22mars dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 05/09/2007, 11h30
  3. Réponses: 2
    Dernier message: 25/06/2006, 20h06
  4. exportation enregistrement entre tables access
    Par Mickey_Mouse dans le forum Access
    Réponses: 1
    Dernier message: 15/12/2005, 21h52

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