PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Word, VBA, CSV Datenquelle: Datensatz ist nicht vorhanden


Gast
2007-07-24, 17:03:09
Ich verwende Word und VBA, um ein Word Dokument mit einer CSV Datei zusammenzuführen.

Hier ist der relevante Schnipsel VBA, csvFile wird weiter oben auf den Pfad zur CSV Datei gesetzt.


With ActiveDocument.MailMerge
.OpenDataSource (csvFile)
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.firstRecord = wdDefaultFirstRecord
.lastRecord = wdDefaultLastRecord
End With
If .State = wdMainAndDataSource Then
.Execute
End If
End With


Jetzt habe ich ein Problem. Nehmen wir mal an, meine CSV Datei hat 5 Zeilen. Die erste Zeile enthält die Feldnamen, und die 4 weiteren Daten.
Jetzt wird Word beim Ausführen des Makros zwar die ersten 4 Seiten korrekt erstellen, aber auch ein neues Dokument öffnen, in dem nur folgender Text steht:

Datensatz 5 ist nicht vorhanden.


Bei einer CSV Datei mit 6 Datensätzen ist es entsprechend der Datensatz 7 der nicht gefunden wird, und so weiter.

Die Datei hat das folgende format:

"feldname1";"feldname2"
"wert1";"wert2"
"wert3";"wert4"

Als Zeilenendezeichen benutze ich lediglich ein LF, in der letzten Zeile ist kein Zeilenendezeichen.

wdDefaultLastRecord scheint demnach nicht zu stimmen. Ich kann es auch nicht einfach -1 rechnen, das ändert komischerweise nichts.

Ich habe mir jetzt ein kleines Sub geschrieben, dass die Anzahl der Zeilen im Dokument herausfindet, und benutze dieses statt wdDefaultLastDocument. Bizarrerweise funktioniert es hiermit.

Aber da das den code verdoppelt, würde ich wirklich gerne einen besseren Weg finden. Fällt jemandem hier etwas ein?

Gast
2007-07-25, 12:55:34
Okay, ich hab es geschafft.

Ich musste die Zeilenende Zeichen nach CR konvertieren, mit LF kommt Word wohl einfach nicht anständig klar. Seltsam.