Hallo!
Dann bist Du ja schon relativ weit mit dem Code.
Zunächst einige Hinweise zu den noch offenen Fragen:
Warnungen und Meldungen die während der Ausführung von Code ausgegeben werden, kann man mit
Application.DisplayAlerts=wdAltersNone
ausblenden. (Verhalten analog Standardbutton klicken).
Nicht vergessen, die Anzeige der Warnmeldungen zum Schluss des Codes wieder einzuschalten
Application.DisplayAlerts=wdAlertsAll
Die SQL-Warnmeldung wird durch den Befehl zwar ausgeblendet aber leider wird als Standardaktion die Schaltfläche „Nein“ verwendet (also unbrauchbar).Hier gibt es noch die Möglichkeit die Registrierungseinstellungen zu ändern (sh.: http://mypage.bluewin.ch/reprobst/WordFAQ/MMData.htm… oder http://support.microsoft.com/kb/825765/de ), so dass die Meldung generell unterdrückt wird.
Sonstige Hinweise/Alternativen:
Überlege Dir, wo du den notwendigen Code unterbringst. Eine Möglichkeit wäre ein VBS-Script. Eine andere eine Ereignisprozedur („Document_Open“) in einem Worddokument, die bei Öffnen der Worddatei ausgeführt wird. Welche Variante Du wählst, hängt von den Möglichkeiten und der Programmiersprache der Erfassungssoftware ab.
Bei bestimmter Struktur der ASC-Ausgabedatei kann man diese direkt als Datenquelle an den Serienbrief binden. Das ist aber unter Anbetracht der unterschiedlichen verwendeten Zeichensätze mit Problemen behaftet, so dass die Umwandlung in das Wordformat vielleicht doch wirklich der bessere Weg ist.
In diesem Zusammenhang ist zu erwähnen, dass DOC-Daten für einen Serienbrief nicht zwingend in eine Word-Tabelle eingefügt sein müssen. Es reicht ein Trennzeichen (; oder Komma oder Tabulator) zwischen den Datenfeldern (Sofern die ASC-Datei schon eine solche Struktur hat, probier einfach mal die ASC-Datei in Word zu öffnen und ohne weitere Änderungen als Worddokument zur Verwendung als Datenquelle zu speichern)
Um Programmierarbeit zu sparen und keine zusätzliche Dateien anlegen zu müssen, würde ich jedoch testweise die direkte Anbindung der ASC-Datei in Rohform wie oben erwähnt einfach mal probieren. Dazu bei Auswahl der Datenquelle Dateityp auf „alle Dateien (*.*)“ und die ASC-Datei auswählen. Falls dies funktioniert kann man die Anbindung mit dem Makrorekorder aufzeichnen und den Code wie gewünscht anpassen.
Da es sich bei der Ausgabe um eine ASC-Datei handelt, vermute ich, dass der ASCII-Zeichensatz (DOS) und nicht der windowstypische ANSI-Zeichensatz verwendet wird. Wenn dies der Fall ist, kann es Probleme bei der Darstellung von Umlauten oder Sonderzeichen in Word geben (probieren!). Eine Konvertierungsmöglichkeit der ASC-Datei in für Word problemlos nutzbare Dateien (txt-Ansi-Dateien oder auch DOC-Dateien) bietet der Code unter http://mypage.bluewin.ch/reprobst/WordFAQ/MMAuto.htm… .
Dieser kann entsprechend Deinen Bedürfnissen angepasst werden, z.B. so, dass der Name der Quelldatei nicht abgefragt sondern übergeben wird und dass ohne weitere Abfrage eine vorgegebene Konvertierung erfolgt.
Alternative:
Ohne Serienbrief gäbe es noch die Möglichkeit die ASC-Datei per VBA auszulesen [Stichworte: CreateObject(„Scripting.FileSystemObject“) oder Open … For Input] und die ausgelesenen Werte an in einer Wordvorlage definierte Textmarken zu übergeben.
Diese Variante ist vor allem dann anzuraten, wenn die Struktur der Daten nicht direkt für einen Serienbrief geeignet ist (z.B. Datenfelder eines Datensatzes in unterschiedlichen Textzeilen)oder diese erst umständlich in Form gebracht werden müssen. Entsprechende Code-Beispiel kann ich Dir noch bei Bedarf posten (hierfür brauch ich aber einen Musterdatensatz).
Ich hoffe ein wenig weitergeholfen zu haben.
Viele Grüße, tester!