Liebe Freunde der Serienbrief-Schreiberei,
dank der freundlichen Hilfe dieses Forums ( insbesondere Anton a.k.a ata ) konnte ich endlich einen Serienbrief Datensatzweise drucken. Glaubt mir, das wird gewünscht.
Hier ist nun mein aktuelles Ergebnis
(aber, es ist noch nicht unter Last getestet)
PFAD$ = der Pfad zur Serienbriefformatvorlage
DataSource = Pfad zur Serienbriefsteuerdatei
Const wdFirstRecord = - 4
Const wdNExtRecord = -2
Const wdFormLetters = 0
Const wdToggle = 0 ' diese Zahl ist vermutlich falsch, aber klappt trotzdem
Dim WordDoc2 As Variant
Dim object As Variant
Dim WordObj As Variant
'***************
Set word = CreateObject("Word.Application") 'Create Word object
Call word.documents.add(PFAD$)
Set Worddoc2 = word.activedocument 'Get a handle for the active document
WordDoc2.MailMerge.MainDocumentType = wdFormLetters
Call WordDoc2.MailMerge.OpenDataSource(DataSourcePfad)
WordDoc2.MailMerge.SuppressBlankLines = True
Call WordDoc2.MailMerge.Execute(True)
word.visible = True 'Comment this line if you don't want to show Word.
' word.ActivePrinter = "Print-2-Image"
Call worddoc2.PrintOut
' ****************
WordDoc2.MailMerge.ViewMailMergeFieldCodes = wdToggle
'Gehe durch alle Datensaetze zum Druck auf Papier
iAlterRecord = 0
iNeuerRecord = 1
WordDoc2.MailMerge.DataSource.ActiveRecord = wdFirstRecord
Do While iAlterRecord <> iNeuerRecord
'Warten, bis (evtl. aus dem Vorlauf noch vorhandene) Attribute.txt nicht mehr da ist ..
Call worddoc2.PrintOut(False, , , , , , , 1)
iAlterRecord =iNeuerRecord
WordDoc2.MailMerge.DataSource.ActiveRecord = wdNextRecord
iNeuerRecord = Cint(WordDoc2.MailMerge.DataSource.ActiveRecord)
Loop
End If