Text-Datei als Auftragsblatt erzeugen
Herausforderung:
In einem Projekt werden Bestellungen in eine Zusatztabelle "Warenkorb" abgelegt. Der Auftrag soll als TEXT-Datei in einem vordefinierten Ordner abgelegt werden. Stammdaten sind als erste Zeile in die Textdatei zu schreiben.
Lösung:
Man baut ein Hilfsmittel. Im Reiter "Hilfsmittel Vorlage" wird der Zielpfad und gewünschte Dateinamen für die immer neu zu erzeugenden TEXT-Dateien hinterlegt.
Im Reiter "Makros" wird der Modus "Kein Programm starten, keine Verbindung herstellen gewählt".
Als MAKRO wird nachfolgender Text geschrieben:
' Version 1.00.001 MR 16.04.2010
Option Explicit
Dim csvfile
'Definition des CSV-Dateinamen sofern nicht im Hilfsmitteldialog festgelegt csvfile = "C:\temp\UDtest.csv".
csvfile=ActiveTool.Filename
'Hier wird die erste Zeile mit den Kopf-Daten erzeigt
Dim Text
text =""""& ActiveAddress.Fields("Name1").value & """" & ";" & """" & ActiveAddress.Fields("city").value & """" & ";"
' Das schließen wir mit einer Zeilenachaltung ab
Text = Text + vbcrlf
' Hier schleifen wir über die Zusatztabelle "Warenkorb" und erzeugen je Zeile eine neue Zeile in der TEXT-Datei.
'For Each oRelation In ActiveAddress.relations
Dim oRelation
Set oRelation = ActiveAddress.Relations("Warenkorb")
Dim oEntry
For Each oEntry In oRelation
Dim oField
For Each oField in oEntry.Fields
Text = Text + CStr(oField.value) + ";"
Next
' Nach jeder Zeile aus dem Warenkorb auch abschließen
Text = Text + vbcrlf
next
' Test um den Inhalt zu prüfen
' MsgBox Text
'Schreiben in die Datei
Dim fso ' als Scripting.FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
Dim oTX ' als Scripting.TextStream
Set oTX = fso.OpenTextFile(csvfile, 2, True) ' Datei erzeugen
oTX.Write Text
oTX.Close
Siehe auch KB-Artikel "Datensatz per Hilfsmittel an eine CSV-Datei anhängen"