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

Access Discussion :

Pb DoCmd.TransferText ne fontionne pas en VBA [AC-365]


Sujet :

Access

  1. #1
    Candidat au Club
    Homme Profil pro
    Conseil en assistance à maîtrise d'ouvrage
    Inscrit en
    Juin 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Conseil en assistance à maîtrise d'ouvrage
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Pb DoCmd.TransferText ne fontionne pas en VBA
    Bonjour,
    J'utilise le code suivant pour transférer une table ACCESS en fichier à longueur fixe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferText acExportFixed, "tbl_acExportFixed_ini", "tbl_acExportFixed", "C:\test_attrib\tbl_acExportFixed"
    Ce transfert se passe bien quant il est fait manuellement.


    Mais par VBA j'ai un PB :"La base de données est en lecture seule ou l'objet"

    Les attributs de la base indique case décochée "En lecture seule"

    J'ai appliqué la cmd suivante au répertoire
    C:\> attrib -r c:\test_attrib.
    Mais les attributs du répertoire montre qu'il est malgré la cmd toulors en lecture seule :

    Pourtant je peux créer un fichier en VBA avec ce bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MonTexte = "Ce texte sera sauvegardé. à " & Now
    MonFichier = "C:\test_attrib\MonFichierTexte.txt"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Open MonFichier For Output As #f
    Print #f, MonTexte
    Close #f
    J'ai aussi appliqué la méthode décrite :
    https://blog.itgs-solutions.ch/windo...t-de-dossiers/

    Voir PJ : BUG_VBA ACCESS 365 COMMANDE TransferText acExportFixed.docx

    Merci de votre aide !

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 411
    Points : 19 988
    Points
    19 988
    Billets dans le blog
    66
    Par défaut Contribution
    Bonjour,

    Pas mal de personnes ont eu des soucis avec cette commande. Il y a des paramétrages qui peuvent échapper

    A ce sujet, je propose une fonction toute simple pour exporter un CSV disponible à la fin de cette contribution (en annexe) :

    Import/export fichier CSV/Base Access

    Fonction que vous pourriez adapter à votre cas

  3. #3
    Candidat au Club
    Homme Profil pro
    Conseil en assistance à maîtrise d'ouvrage
    Inscrit en
    Juin 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Conseil en assistance à maîtrise d'ouvrage
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Pb DoCmd.TransferText ne fontionne pas en VBA + de descriptions
    Bonjour,
    Merci pour votre réponse, votre célérité me sidère 🤩
    J'avais déjà pensé à cette solution de contournement, mais je la trouve un peu "compliquée" surtout en longueur fixe. Mais c'est faisable.
    Je ne suis pas un pro du développement, mais j'ai souvent exporté des données avec cette commande sans aucun PB. Donc je persiste 😠

    De mon point de vue il s'agit d'un bogue (régression) de la commande DoCmd.TransferText qui ne fonctionne pas quelques soient les format d'export acExportDelim, acExportDelim et acExportHTML

    En pj j'ai placé deux fichiers :
    1. BUG_VBA ACCESS 365 COMMANDE developpez.net.docx
    2. for_developpez.net.accdb

    Le tout est zipper dans BUG_VBA_ACCESS_365_developpez.net.zip
    Cette base est centrée autour de ce "bogue" elle ne contient q'un seul module VBA : ze_test

    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
    Sub teste_TransferText()
     
        DoCmd.TransferText acImportFixed, "tbl_acExportFixed_ini", "tbl_acExportFixed", "C:\test_attrib\file_acExportFixed.txt"
     
    '    DoCmd.TransferText acExportDelim, , "tbl_acExportFixed", "C:\test_attrib\file_acExportDelim" & _
        DoCmd.TransferText acExportHTML, , "tbl_acExportFixed", "C:\test_attrib\file_acExportHTML" & _
        >>>>>  acExportDelim    ET   acExportHTML NE FONCTIONNENT PAS NON PLUS
     
     
    End Sub
    Sub create_fichier()
    ' par Excel-Malin.com ( <a href="https://excel-malin.com" target="_blank">https://excel-malin.com</a> )
    On Error GoTo Erreur
     
    Dim f As Integer
    Dim my_txt As String
    Dim my_file As String
     
        f = FreeFile
     
        'texte à sauvegarder
            my_txt = "Ce texte sera sauvegard dans C:\test_attrib\file_acExportFixed.txt à  " & Now
     
        'Chemin et nom du fichier
            my_file = "C:\test_attrib\file_acExportFixed.txt"
     
        'sauvegarde
        Open my_file For Output As #f
            Print #f, my_txt
        Close #f
     
       ' MsgBox "Le texte a été sauvegardé dans: " & my_file
        Exit Sub
     
    Erreur:
        MsgBox "Une erreur est survenue..."
    End Sub
    Et une seule table : tbl_acExportFixed

    Merci à toutes et tous !
    Fichiers attachés Fichiers attachés

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 411
    Points : 19 988
    Points
    19 988
    Billets dans le blog
    66
    Par défaut
    Bonjour,

    J'ai réenregistré la spécification d'exportation "tbl_acExportFixed_ini" en suivant la procédure d'export manuel.

    Pouvez-vous tester le fichier joint ?

    Dans la fenêtre d'exécution de la base :

    Fichiers attachés Fichiers attachés

  5. #5
    Candidat au Club
    Homme Profil pro
    Conseil en assistance à maîtrise d'ouvrage
    Inscrit en
    Juin 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Conseil en assistance à maîtrise d'ouvrage
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonsoir,
    Merci pour votre réponse 😀
    Je pense qu'il s'agit d'un bogue Access!

    J'ai recopié la table, le code et sauvegardé le format d'export dans l'outil d'export manuel, dans la base de l'application initiale.

    Donc 2 lignes de code :

    Procédure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub TransferText_kc()
     
        DoCmd.TransferText acImportFixed, "tbl_acExportFixed_ini", "tbl_acExportFixed", "C:\test_attrib\file_acExportFixed.txt"
     
    End Sub

    Fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function TransferText()
     
        DoCmd.TransferText acExportFixed, "tbl_acExportFixed_ini", "tbl_acExportFixed", "C:\test_attrib\file_acExportFixed.txt"
     
    End Function

    Les tests

    La fonction est valide et créer bien un fichier au bon format.
    La procédure renvoie les même erreurs déjà décrites avant.

    Puisque vous êtes calé sur le sujet, connaissez vous les spécification du fichier schema.ini telles que définies ici > https://docs.microsoft.com/fr-fr/sql...l-server-ver16
    Si vous aviez un exemple (acExportFixed si possible) se serait plus facile à réaliser.
    N'y passez pas trop de temps quand même 😎

    En tous cas mille mercis.

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 411
    Points : 19 988
    Points
    19 988
    Billets dans le blog
    66
    Par défaut
    Bonjour,

    Citation Envoyé par Patdhcp Voir le message
    La fonction est valide et créer bien un fichier au bon format.
    La procédure renvoie les même erreurs déjà décrites avant.
    La fonction utilise comme 1er paramètre acExportFixed, conformément à la spécification d'exportation, alors que la procédure utilise le paramètre acImportFixed.

  7. #7
    Candidat au Club
    Homme Profil pro
    Conseil en assistance à maîtrise d'ouvrage
    Inscrit en
    Juin 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Conseil en assistance à maîtrise d'ouvrage
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2017
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Pb DoCmd.TransferText ne fontionne pas en VBA
    Bonjour,
    Merci pour votre aide !
    A bientôt peut-être
    Patrick

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

Discussions similaires

  1. VBA - DoCmd.TransferText - Bug
    Par informer dans le forum VBA Access
    Réponses: 2
    Dernier message: 31/01/2020, 23h14
  2. Réponses: 4
    Dernier message: 22/08/2016, 17h10
  3. Macro TranférerTexte OK - VBA docmd.transfertext NOK
    Par franck.thibault dans le forum Access
    Réponses: 2
    Dernier message: 15/12/2006, 14h28
  4. HTACCESS qui ne fontionne pas...
    Par Raideman dans le forum Apache
    Réponses: 4
    Dernier message: 28/06/2005, 08h34
  5. [Javascript] ne fontionne pas ?
    Par MatMeuh dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 15/10/2004, 15h21

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