Für den Im- und Export von Daten in Textdateien, kann man entweder DoCmd.TransferText
verwenden oder man gestaltet diesen von Hand.
Dafür öffnet man eine Datei mit der Open-Methode und kann dann entweder
mit Line Input oder Print arbeiten. Hier 2 Beispiele, wie man Daten mit einem
Recordset lesen oder schreiben kann.
Import:
Dim rs As DAO.Recordset Dim sDatei As String Dim Zeile As String Dim varArray As Variant Dim i As Integer Dim strSQL As String sDatei = "C:\DeineDatei.txt" '//Existiert die Datei ? If Dir(sDatei) <> "" Then Close #1 '//Recordset öffnen strSQL = "SELECT * FROM Tabelle" Set rs = DBEngine(0)(0).OpenRecordset(strSQL, dbOpenDynaset) '//Datei zum Einlesen öffnen. Open sDatei For Input As #1 '//Schleife bis Dateiende. Do While Not EOF(1) 'Zeile einlesen Line Input #1, Zeile '//Zeile in ein Array zerlegen, '//hier sind die einzelnen Werte durch ein Semikolon getrennt varArray = Split(Zeile, ";") '//Array durchlaufen und Werte an den Recordset übergeben rs.AddNew For i = LBound(varArray) To UBound(varArray) rs.Fields(i) = varArray(i) Next i rs.Update Loop '//Datei schließen. Close #1 Else MsgBox "Datei nicht gefunden" End If rs.Close Set rs = Nothing
Export:
Dim rs As DAO.Recordset Dim strEx As String Dim Datei As String Dim i As Long Datei = "C:\DeineDatei.txt" Close #1 '//Recordset öffnen strSQL = "SELECT * FROM Tabelle" Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset) '//Datei zum Export öffnen. Open Datei For Output As #1 '//Recordset bis zum Ende durchlaufen While Not rs.EOF strEx = "" '//Alle Feldwerte in einen String schreiben For i = 0 To rs.Fields.Count - 1 strEx = strEx & ";" & rs.Fields(i) Next i '//Das 1. Semikolon löschen strEx = Mid(strEx, 2) '//String an Datei übergeben Print #1, strEx rs.MoveNext Wend Close #1 rs.Close Set rs = Nothing