26-03-2007, Monday-23:44:10
In Access funktionierts mit VBA so
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
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.
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.