Text-Datei als Auftragsblatt erzeugen

~ 0 min
21.10.2010 15:05
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"

Durchschnittliche Bewertung 0 (0 Abstimmungen)

Kommentieren nicht möglich