Bonjour,
j'ai un besoin urgent d'exporter plusieurs tables dans un même fichier texte.
Avec docmd.transfertext le fichier généré s'écrase obligatoirement si j'utilise le même nom de fichier. Comment faire ?
Bonjour,
j'ai un besoin urgent d'exporter plusieurs tables dans un même fichier texte.
Avec docmd.transfertext le fichier généré s'écrase obligatoirement si j'utilise le même nom de fichier. Comment faire ?
Une solution serait de mettres toutes ces tables dans une seule table cumulative puis d'exporter cette table cumulative.
J'ai envisagé cette solution mais le problème est que je n'ai pas le nombre identique de champ dans les différentes tables.
Ou alors s'il y a une autre solution je suis preneur.
Le résultat que je dois obtenir ressemble à cela :
DATE
DEPOT
FLAG
CODE ARTICLE QTE PU
CODE ARTICLE QTE PU provient de l'export d'une table avec séparateur tabulation
DATE est fixe
DEPOT aussi
FLAG aussi
Connais-tu les instructions Write ou Print ? Cela permet de composer un fichier texte ligne par ligne.
C'est aussi une solution possible mais c'est assez fastidieux.
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 Function Test() Dim iFileNbr As Integer Dim strMonTexte As String 'Freefile sert à utiliser le premier numero de fichier disponible iFileNbr = FreeFile Open "C:\Temp\test.txt" For Output As #iFileNbr 'Ouvrir une boucle Do...Loop pour parcourir toutes les tables 'Ouvrir une 2ième boucle pour parcourir tous les champs.... strMonTexte = strMonTexte & ";" & Table![Champ] 'Unlike the Print # statement, the Write # statement inserts commas between items and quotation marks around strings as they are written to the file 'Write #iFileNbr, strMonTexte Print #iFileNbr, strMonTexte 'Fermer Boucle 'Fermer boucle Close #iFileNbr End Function
J'ai aussi regardé OutputTo mais j'obtiens le même résultat que toi.
Merci, je vais lire mais dans mon cas j'utilise un fichier texte et pas excel.
J'ai réussi à écrire le début grace à ce code :
Private Sub Commande4_Click()
Dim a As String
b = Me.choix_depot.Column(0)
fname = "C:\" & b & ".txt"
Set fs = CreateObject("Scripting.FileSystemObject")
Set tf = fs.CreateTextFile(fname)
Enr1 = "#FLG 001"
Enr2 = "#VER 6"
Enr3 = "1"
Enr4 = "#INV"
Enr5 = b
Enr6 = "300913"
tf.WriteLine (Enr1)
tf.WriteLine (Enr2)
tf.WriteLine (Enr3)
tf.WriteLine (Enr4)
tf.WriteLine (Enr5)
tf.WriteLine (Enr6)
tf.Close
End Sub
Mais du coup je ne sais pas comment écrire à la suite ma table avec séparateur tabulation sans passer par DoCmd.TransferText.
En y repensant, je me dis que mettre toutes les données dans une table cumulative avant de l'exporter est sans doute plus simple. Il n'est pas indispensable que les tables de depart aient toutes le même nombre de champs.
Je suppose que tu connais le format de tes tables et qui celui-ci est fixe.
Etape 1.
Creer manuellement une table cumulative contenant tous tes champs : Depot, QTY, Date et Flag
Etape 2
Creer une query qui met les données de Table1 dans la Table cumulative
Comme il y moins de champs dans Table1 que dans la table cumulative, cette query n'utilise pas tous les champs de la table cumulative.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 INSERT INTO Tbl_Cumul ( Depot, QTY ) SELECT Table1.Depot, Table1.qty FROM Table1;
Etape 3
Créer une query qui met les données de la Table2 dans la table cumulative
Etape 4
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 INSERT INTO Tbl_Cumul ( Depot, QTY, [date], Flag ) SELECT Table2.Depot, Table2.QTY, Table2.date, Table2.Flag FROM Table2;
exporter la table cumulative comme tu le fais avec ton docmd.transfertext
Je vais essayer mais le problème est qu'après les premières s'il y a des tabulations, j'ai peur que ce fichier que je dois importer dans un logiciel ne fonctionne pas.
J'ai résolu mon problème grace à un copier coller par vba.
Exportez simplement une requête UNION de toutes ces tables en ne sélectionnant que les champs désirés.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager