viking
Goto Top

Aus Access Tabelle oder Abfrage direkt als Textdatei mit Semikolon als Feldtrenner exportieren

Habe eine kleine Frage an Access Experten.

Ich möchte aus Access 2003 eine Tabelle oder eine Abfrage direkt als txt Datei exportieren.

Dabei soll für jeden Zeilensatz (250) Spalten eine Zeile in der TXT Datei erstellt werden.
Der Trenner der Felder soll ein Semikolon sein.
Ich verwende kein Formular und auch keinen Bericht.

Das ganze würde ich gerne mit einem Makro durchführen.

Wie kann ich das machen?

verkürzetes Beispiel:
Meine Access Tabelle hat den Namen xyz, mit 10 Spalten Feld1,Feld2, ..., Feld10
Alle Felder sind Textfelder
Der Export der soll als TXT Datei den Namen xyz.txt haben und auf C:\temp gespeichert werden.

Wie geht das?

Gruß viking

Content-Key: 152854

Url: https://administrator.de/contentid/152854

Printed on: May 7, 2024 at 09:05 o'clock

Member: thaenhusen
thaenhusen Oct 12, 2010 at 11:59:23 (UTC)
Goto Top
Moin.

Schau Dir mal

DoCmd.TransferText acExportDelim,,"DeineTabelle/Abfrage","C:\Test.csv"

an. Da kannst Du auch festlegen, welches Trennzeichen verwendet werden soll...

HTH
MK
Member: NetWolf
NetWolf Oct 12, 2010 at 12:12:35 (UTC)
Goto Top
Hallo,

wenn du das nur ab und zu machen willst:

Datei - > Export
bzw.
Rechtsklick auf die Tabelle oder Abfrage in der Liste

In dem dann erscheinenden Dialog, deine Wünsche definieren.

Grüße aus Rostock
Wolfgang
(Netwolf)
Member: viking
viking Oct 12, 2010 at 12:54:57 (UTC)
Goto Top
Hallo Wolfgang,

das hatte ich auch schon probiert, allerdings kommt dabei die Fehlermeldung mit der maximal zugelassenen Startposition 32767, ...
Textexport-Assisten:
Das Feld 'Feld131' enthält die Startposition '32963'. Die maximale zugelassene Startposition ist 32767.

Was kann man da machen?

Gruß viking
Member: viking
viking Oct 12, 2010 at 12:56:42 (UTC)
Goto Top
Zitat von @thaenhusen:
Moin.

Schau Dir mal

DoCmd.TransferText acExportDelim,,"DeineTabelle/Abfrage","C:\Test.csv"

an. Da kannst Du auch festlegen, welches Trennzeichen verwendet werden soll...

HTH
MK

Hallo HTM, kannst Du das Bitte kurz genauer beschreiben?
Find ich nicht.


gruß viking
Member: thaenhusen
thaenhusen Oct 12, 2010 at 13:38:05 (UTC)
Goto Top
Moin.

Mit google.de wärst Du auch in 5 Sekunden am Ziel gewesen...

DoCmd.TransferText acExportDelim, "SemicolonCSV", "DeineTabelle/Abfrage","C:\Test.csv"

Das macht die Trennung mittels Simikolon. Die Version oben wählt das Komma (,).

PS: Ich dachte mit dem ersten Denkanstoss kommst Du zum Ziel...

HTH
MK
Member: Role999
Role999 Jul 28, 2022 at 21:30:58 (UTC)
Goto Top
Hallo zusammen,

ich bin neu im Forum und hoffe, es ist in Ordnung, dass ich keinen neuen Thread aufmache, sondern meine Fragen an diesen bestehenden, ähnlichen Thread anhänge. Ich lese bereits einige Zeit still mit und habe auch schon einige Antworten zur Lösung von einiger meiner Aufgaben hier im Forum gefunden.

Ich arbeite im Einkauf eines kleinen Maschinenbauunternehmens und nutze Access, um Daten über eine ODBC-Datenverbindung von der MS-SQL-Datenbank des ERP-Systems auszuwerten.

Ich benötige die Zeichnungsnummern für die Zusammenstellung von Zeichnungen zu einer Bestellung in einer .txt-Datei und bitte um Eure Unterstützung. Die folgenden Schritte habe ich bereits gemacht.

Die folgende einfache Access-Abfrage gibt die Zeichnungsnummern von Bestellpositionen einer bestimmten Bestellung zurück:
SELECT dbo_BESTELLUNGPOS.ZEICHNUNG
FROM dbo_BESTELLUNGPOS
WHERE (((dbo_BESTELLUNGPOS.BESTELLUNG) Like [Bitte Bestellnummer eingeben:]))
ORDER BY dbo_BESTELLUNGPOS.ZEICHNUNG;

Ein Beispiel des Ergebnisses meiner Access-Abfrage zeigt der folgende Screenshot:
2022-07-28_23h05_48

Dieses Abfrageergebnis soll ohne die Spaltenüberschrift "Zeichnung" in eine .txt-Datei exportiert werden. Dazu habe ich in Access ein Makro mit Hilfe des Makro-Assistenten erstellt:
2022-07-28_23h12_21

Die Funktion "Exportieren mit Formatierung" gibt folgendes Ergebnis zurück:
2022-07-28_23h17_25

Die Datei darf aber weder die "Striche" noch die "Überschrift Zeichnung" enthalten. Das Ergebnis muss wie folgt aussehen:
2022-07-28_23h21_46

Wer kann einem Anfänger Tipps geben, wie ich das gewünschte Ergebnis erzielen kann? VBA-Kenntnisse sind leider 0 vorhanden.
Vielen Dank.

Role
Mitglied: 3479126418
3479126418 Jul 28, 2022, updated at Aug 01, 2022 at 12:15:23 (UTC)
Goto Top
ich bin neu im Forum und hoffe, es ist in Ordnung, dass ich keinen neuen Thread aufmache,
Oh oh
Keine Takeovers. Versuche nicht, Beiträge anderer Autoren mit Ihren Fragen zu anderen Themen zu übernehmen. Eröffne lieber einen neuen eigenen Beitrag.

DoCmd.TransferText Transfertype:=acExportDelim, TableName:="MyQueryTable", SpecificationName:="MyExportSpec", FileName:="C:\export.txt",HasFieldNames:=False  
https://docs.microsoft.com/de-de/office/vba/api/access.docmd.transfertex ...
Member: viking
viking Aug 01, 2022 at 11:55:03 (UTC)
Goto Top
Ja Role999 vor dem Problem stehe ich auch.
das DoCmd hat mir nicht weitergeholfen, weil "Table name" bei mir sofort bemängelt wurde.

Bin da wohl zu unerfahren.
Hab die Tabellen und alles angepasst, aber bin leider nicht weiter gekommen.

Na ja hab's dann aufgegeben, in den Weiten von Microsoft Erklärungen oder Hilfen bin ich eh zumeist verloren.
Mitglied: 3479126418
3479126418 Aug 01, 2022 updated at 11:56:31 (UTC)
Goto Top
"Table name"
Schreibfehler. Gehört zusammengeschrieben.
Member: Role999
Role999 Aug 01, 2022 at 12:12:15 (UTC)
Goto Top
Hallo zusammen,

@ Bangalore: Vielen Dank für die Anmerkungen zu meinem Post und die Unterstützung.

Mir ist leider nicht klar, wo ich die Anweisung
DoCmd.TransferText Transfertype:=acExportDelim, TableName:="MyQueryTable", FileName:="C:\export.txt",HasFieldNames:=False  
eintragen muss.

Habe mein Makro in Visual Basic konvertiert und die Befehlszeile wie folgt eingefügt:
Option Compare Database

'------------------------------------------------------------  
' m_Zeichnungen_Bestellung  
'  
'------------------------------------------------------------  
Function m_Zeichnungen_Bestellung()
On Error GoTo m_Zeichnungen_Bestellung_Err

    DoCmd.TransferText Transfertype:=acExportDelim, TableName:="qry Zeichnungen_Bestellung", FileName:="c:\Users\slro\!slro\miro\Zeichnungen\Source.txt", HasFieldNames:=False  

m_Zeichnungen_Bestellung_Exit:
    Exit Function

m_Zeichnungen_Bestellung_Err:
    MsgBox Error$
    Resume m_Zeichnungen_Bestellung_Exit

End Function
Nach dem Speichern wurde unter Access-Objekte "Module" der Eintrag "Konvertiertes Makro -m_Zeichnungen_Bestellung" angelegt.
Dieses in der Entwurfsansicht geöffnet und mit "F5" ausgeführt erzeugt die Meldung "Das Feldtrennzeichen für die angegebene Textdatei entspricht dem Dezimaltrennzeichen oder Texttrennzeichen."

Bin leider komplett planlos.....
Mitglied: 3479126418
3479126418 Aug 01, 2022 updated at 12:32:31 (UTC)
Goto Top
Export einmalig über die GUI ausführen unter Tab > Externe Daten > Textdatei. Am Ende dann diese Spezifikation unter einem Namen speichern z.B. "MyExportSpec". Das dann in der DoCMD Zeile zusätzlich mit angeben mit SpecificationName:="MyExportSpec"

DoCmd.TransferText Transfertype:=acExportDelim, TableName:="qry Zeichnungen_Bestellung", FileName:="c:\Users\slro\!slro\miro\Zeichnungen\Source.txt", SpecificationName:="MyExportSpec"  
Will mans manuell ohne die o.g. Funktion machen geht das natürlich auch, Tabelle, Dateiname und Spaltenname einfach nach Bedarf anpassen.
Sub Export()
    Dim rec As Recordset, fso as Object, objFile as Object
    Set rec = CurrentDb.OpenRecordset("qry Zeichnungen_Bestellung")  
    Set fso = CreateObject("Scripting.FileSystemObject")  
    Set objFile = fso.OpenTextFile("D:\export.csv", 2, True)  
    rec.MoveFirst
    While Not rec.EOF
        objFile.WriteLine rec.Fields("Zeichnung").Value  
        rec.MoveNext
    Wend
    objFile.Close
End Sub

Bin leider komplett planlos.....
Oha, sehr schlechte Grundvoraussetzung! Dann solltest du die Aufgabe wohl jemandem übertragen der Ahnung davon hat oder dich besser einarbeiten.
Member: Role999
Role999 Aug 01, 2022 at 13:32:39 (UTC)
Goto Top
Was muss ich über den Tab > Externe Daten > Textdatei exportieren?

Wenn ich meine Abfrage "qry Zeichnungen_Bestellung" exportiere, bekomme ich das Ergebnis meiner Abfrage in einem Format, das beim Export nicht funktioniert:

| ZEICHNUNG |
| 05.11.00.10-42 |
| 06.31.12.02-22 |
| 10.26.00.08-30 |
| 12.00.00.18-2A |
| 12.00.00.34-43 |
| 12.00.00.36-40 |
| 12.00.00.53-32 |
| 12.00.00.A8-40 |

Exportiere ich das VBA-Modul -m_Zeichnungen_Bestellung sieht das Ergebnis folgendermaßen aus:

Attribute VB_Name = "Konvertiertes Makro- m_Zeichnungen_Bestellung"
Option Compare Database

'------------------------------------------------------------
' m_Zeichnungen_Bestellung
'
'------------------------------------------------------------
Function m_Zeichnungen_Bestellung()
On Error GoTo m_Zeichnungen_Bestellung_Err

DoCmd.TransferText Transfertype:=acExportDelim, TableName:="qry Zeichnungen_Bestellung", FileName:="c:\Users\slro\!slro\miro\Zeichnungen\Source.txt", SpecificationName:="MyExportSpec"

m_Zeichnungen_Bestellung_Exit:
Exit Function

m_Zeichnungen_Bestellung_Err:
MsgBox Error$
Resume m_Zeichnungen_Bestellung_Exit

End Function

Das kann auch nicht die Information sein, die in der Datei "MyExportSpec" stehen muss.
Mitglied: 3479126418
3479126418 Aug 01, 2022 updated at 13:48:10 (UTC)
Goto Top
Was muss ich über den Tab > Externe Daten > Textdatei exportieren?
Deine Abfrage! Am Ende des Vorgangs kommt ein Button "Erweitert" indem man einen Namen für diesen Export vergeben kann! Dieser Name ist der Name der Export-Spezifikation und kommt dann in die o.g. Codezeile! Ist das so schwierig zu verstehen? Muss ich wieder Bildchen posten?

screenshot

screenshot

Wenn man sich dann auch mal die Systemtabellen anzeigen lässt kann man sich die angelegte Spezifikation auch in einer Tabelle anzeigen lassen:

screenshot

So wenn's jetzt nicht klar ist dann wes ich auch ned was ich mit dir noch machen soll.

Bis denne, tschö mit ö...
Member: viking
viking Aug 03, 2022 at 12:25:34 (UTC)
Goto Top
Hallo Bangalore,
das scheint eine super hilfreiche Erklärung!
Vielen Dank!, das werde ich später mal austesten.

Ein Frage, bzw. 3 Fragen noch zum Export als CSV Datei noch zum Abschluss, zumindest für mich.

1 Ich gebe einen Zielpfad mit Dateinamen an.
=> Gibt es einen Parameter, der eine am Zielpfad bereits existierende Datei überschreibt?


2 Kann ich es so steuern, dass der Dateiname im Zielpfad den Inhalt eines festgelegten Feldes (mit der Endung .csv) enthält.
Beispiel: In der Abfrage enthält Feld3 enthält den Wert "ABC123".
=> Dateiname dann: ABC123.csv
(Ich will in dem Beispiel ja nur einen Datensatz auswählen und ausgeben)

3 Zahlen werde öfter mal mit _,00 exportiert, oder ein Datum mit der angehängten Uhrzeit
Frage: Kann ich das auch irgendwie unterbinden?


Besten Dank, und kühle Grüße bei der derzeitigen Hitze.
Member: Role999
Role999 Aug 03, 2022 at 14:14:37 (UTC)
Goto Top
Hallo Bangalore,
vielen Dank für Deine Rückmeldung. Leider helfen mir die Bildchen nicht weiter.

Du schreibst auf meine Frage Was muss ich über den Tab > Externe Daten > Textdatei exportieren?
Deine Abfrage
. Deine Screenshots zeigen aber Tabelle1, keine Abfrage.

Ist meine Annahme richtig, dass meine Abfrage eine Tabellenerstellungsabfrage sein muss, deren Ergebnis in eine Tabelle geschrieben werden muss? Wenn ich die erstellte Tabelle dann über Externe Daten - Textdatei exportieren möchte, öffnet sich folgendes Dialogfenster:
2022-08-03_15h48_18
In diesem Dialogfeld gibt es bei mir leider keine Schaltfläche Erweitert.

Vielen Dank!
Mitglied: 3479126418
3479126418 Aug 03, 2022 updated at 20:06:38 (UTC)
Goto Top
Beitrag noch mal ganz langsam lesen dann findest auch du die Schaltfläche!
Am Ende des Vorgangs kommt ein Button "Erweitert"
Echt krass hier, noch nicht mal die Beiträge vollständig lesen. Hier muss man echt den Löffel bis ans Zäpfchen schieben ....🙈💊.