Hallo!
habe versucht mir eine prozedur um einen Wordserienbrief zu erstellen zu schreiben, scheiter dabei nur leider kläglich.
meine Prozedur:
Delphi-Quellcode:
procedure Serienbrief(title : TRichEdit; DBQuelle : String; DBFelder : TStringList; VertAbstand, HorAbstand : integer);
var
word : OLEVariant;
i : integer;
SHorAbstand : String;
begin
try
word:=GetActiveOleObject('Word.Application');
except
try
word:=CreateOleobject('Word.Application');
except
ShowMessage('Microsoft Word kann nicht starten.');
screen.cursor:=crDefault;
exit;
end;
end;
word.ActiveDocument.MailMerge.MainDocumentType:=wdFormLetters;
title.SelectAll;
title.CopyToClipboard;
word.Selection.paste;
word.ActiveDocument.MailMerge.OpenDataSource(DBQuelle, 'SELECT * FROM ["'+DBQuelle+'"]"');
word.ActiveDocument.MailMerge.EditMainDocument;
for i:=0 to VertAbstand do
begin
word.Selection.TypeParagraph;
end;
SHorAbstand:='';
for i:=0 to HorAbstand do
begin
SHorAbstand:=SHorAbstand+' ';
end;
for i:=0 to DBFelder.Count-1 do
begin
word.Selection.TypeText(SHorAbstand);
word.ActiveDocument.AailMerge.Fields.Add(Word.Selection.Range, DBFelder.Strings[i]);
word.Selection.TypeParagraph;
end;
word:=unassigned;
end;
Die Fehlermeldung, die ich bekomme, ist, dass "wdFormLetters" unbekannt ist. Habe aber nicht die geringste Idee, woran das liegt...
Funktioniert das so, oder gibt es sinvollere/bessere prozeduren um Daten aus einer Datenbank in einen Serienbrief zu übertragen.
Danke schon mal für baldige antwort.