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 :

Une question sur TransferText [AC-2000]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 34
    Par défaut Une question sur TransferText
    Bonjour à tous,

    j'utilise ACCESS 2000
    Je souhaîte insérer le résultat de deux requetes dans un même fichier.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Set fs = New Scripting.FileSystemObject
    If fs.FileExists(strFichierExport1) Then
    MsgBox "Le Fichier a déjà été envoyé."
    Exit Function
    Else
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set a = fs.CreateTextFile(strFichierExport)
    a.Close
    DoCmd.TransferText acExportFixed, "Param_V1", "Req1", strFichierExport, False
    DoCmd.TransferText acExportFixed, "Param_V2", "Req2", strFichierExport, False
    Les param V1 et V2 donnent la même structure aux données.

    Mon problème est le suivant :

    Dans le fichier, je n'ai que les données de la req2.
    j'imagine qu'il écrase les données de la req1.

    Comment faire pour mettre les données de req2 à la suite de celles de la req1?

    Merci bcp pour votre aide.

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2007
    Messages : 184
    Par défaut
    bonjour,

    Une piste que j'utilise...

    Exporter dans 2 fichiers texte
    Les concatener par une commande système..
    (à mettre dans un .bat) ou avec un shell execute
    dans l'exemple ci-dessous concaténation de 3 fichiers en 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    c:
    cd\
    cd c:\base97
    copy Etbac03.txt+Etbac06.txt+etbac08.txt Etbac.txt
    pause
    exit
    bonne journée

    fevec

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 34
    Par défaut
    Merci Fevec.
    En fait j'ai pris ton idée de faire deux fichiers et en cherchant dans la faq et forum j'ai réussi à faire ce que je souhaitais.
    Voci le 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
    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    Function Export()
    Dim fs As Scripting.FileSystemObject
    Dim a As Scripting.TextStream
    Dim strFichierExport As String
    Dim strFichierExport1 As String
    Dim strFichierExport2 As String
    Dim fso     As FileSystemObject
    Dim fFile   As File
    Dim ts      As TextStream
    Dim str As String
    Dim today As String
     
    today = Format(Now, "yymmdd")
    strFichierExport = "C:\NomFichier.txt"
    strFichierExport1 = "C:\NomFichier1.txt"
    strFichierExport2 = "C:\NomFichier2." & today & ".msg"
     
     
    Set fs = New Scripting.FileSystemObject
    If fs.FileExists(strFichierExport2) Then
    MsgBox "Le Fichier a déjà été envoyé."
    Exit Function
    Else
    'création du fichier NomFichier.txt
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set a = fs.CreateTextFile(strFichierExport)
    a.Close
    'export de la requête1 dans le fichier NomFichier.txt
    DoCmd.TransferText acExportFixed, "Param_V1", "Req1", strFichierExport, False
     
    'création du fichier NomFichier1.txt
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set a = fs.CreateTextFile(strFichierExport1)
    a.Close
    'export de la requête2 dans le fichier NomFichier1.txt
    DoCmd.TransferText acExportFixed, "Param_V2", "Req2", strFichierExport1, False
     
     
    Set fso = New FileSystemObject
    'ouvre le fichier NomFichier1.txt
    Set ts = fso.OpenTextFile(strFichierExport1)
    'met tout le contenu du fichier NomFichier1.txt dans une variable
    str = ts.ReadAll
    ts.Close
     
     
    Set fFile = fso.GetFile(strFichierExport)
    'ouvre le fichier NomFichier.txt en mode ajout
    Set ts = fFile.OpenAsTextStream(ForAppending)
    'écrit le contenu de la variable str dans le fichier NomFichier.txt
    ts.WriteLine str
    ts.Close
     
    'renomme le fichier NomFichier.txt
    Name "C:\NomFichier.txt" As "C:\NomFichier2." & today & ".msg"
     
    'supprime le fichier NomFichier1.txt
    Kill (strFichierExport1)
     
    'libère la mémoire
        Set ts = Nothing
        Set fFile = Nothing
        Set fso = Nothing
        Set fs = Nothing
     
    End If
     
    End Function
    Qu'en pensez vous?

    Merci encore à ce forum qui est trés utile.

  4. #4
    Membre Expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Par défaut
    Bonjour,


    Pourquoi ne pas avoir fait une requête UNION des 2 sources avant export ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 34
    Par défaut
    Citation Envoyé par mout1234 Voir le message
    Bonjour,


    Pourquoi ne pas avoir fait une requête UNION des 2 sources avant export ?
    Oui en effet tu as tout à fait raison et c'est beaucoup plus simple.
    Je n'y ai pas pensé du tout.
    Desfois on cherche à faire compliquer alors que la solution est sous nos yeux.
    Merci encore.

  6. #6
    Membre Expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Par défaut
    De rien

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/04/2006, 18h18
  2. une question sur les includes comportement bizard
    Par e-m.guillaume dans le forum Langage
    Réponses: 2
    Dernier message: 24/02/2006, 21h12
  3. une question sur le code ASP-Nuke
    Par ghita269 dans le forum ASP
    Réponses: 1
    Dernier message: 14/01/2006, 09h41
  4. Une question sur le wap
    Par fabiofabio dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 19/11/2005, 16h24
  5. Encore une question sur malloc
    Par IG88 dans le forum C
    Réponses: 5
    Dernier message: 23/06/2004, 15h35

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