In Access funktionierts mit VBA so
Code:
Sub Datei_schreiben(stDatei As String, strInhalt As String)
'Übergabe-Parameter
'Dim stDatei As String, strInhalt As String
Dim dateinummer As Integer
If stDatei = "" Then Exit Sub
If funcDateiTest(stDatei) = "nein" Then Exit Sub
dateinummer = FreeFile ' neue Datei-Nr.
Open stDatei For Output As #dateinummer ' Datei zur Ausgabe öffnen.
Print #dateinummer, strInhalt
Close #dateinummer ' Datei schließen.
End Sub
Code:
Function funcDateiTest(stDatei)
Dim Antwort
If Dir$(stDatei) <> "" Then ' Meldung anzeigen.
Antwort = MsgBox("Soll die Datei überschrieben werden?" & Chr(13) & Chr(13) & stDatei, 20, "Überschreib-Warnung " & Chr(187) & stDatei & Chr(171)) ' Meldung anzeigen.
If Antwort = vbYes Then ' Benutzer hat auf "Ja" geklickt
funcDateiTest = "ja"
Else
funcDateiTest = "nein" ' Benutzer hat auf "Nein" geklickt
End If
End If
End Function
Dabei wird der Prozedur
Datei_schreiben der Dateiname
stDatei mit dem kompletten Pfad und der zu schreibende Dateiinhalt
strInhalt übergeben.
Der Dateiname kann gleich auf .dat enden.
Die Function
funcDateiTest prüft, ob die Datei bereits existiert und fragt ggf nach, ob sie Überschrieben werden soll.
Den Dateiinhalt kannst Du folgendermaßen zusammensetzen
Code:
Dim strDatInhalt As String
strDatInhalt = "# " & rst.Fields("text_name") & Chr$(10)
strDatInhalt = strDatInhalt & "obj=" & rst.Fields("obj") & Chr$(10)
rst.Fields("text_name") liest hier das Namensfeld aus einer Datenbanktabelle aus
rst.Fields("obj") liest das obj-Feld aus der Datenbanktabelle
Statt der Datenbanktabellenfelder musst Du die entsprechenden Felder der Exel-Tabellen angeben.
Für jeden weiteren Parametereintrag fügst Du die untere Zeile noch mal an.
Das
Chr$(10) setzt den Zeilenumbruch.
Notedad zeigt zwar alles in einer Zeile an, aber WordPad und ander Editoren zeigens richtig an.
Wenn Dich das stört, kannst Du noch ein
& CHR$(13) an die Zeilen anhängen.
Eine so exportierte Dat-Datei häng ich mal an.