Einzelnen Beitrag anzeigen

Benutzerbild von Nightjacket
Nightjacket

Registriert seit: 28. Feb 2013
7 Beiträge
 
Delphi 7 Professional
 
#1

Serienbrieffelder auslesen

  Alt 28. Feb 2013, 14:45
Hallo,

zuallerst möchte ich erwähnen, dass ich heut wirklich stundenlang mit dieser Problematik zugebracht habe, eine Lösung aber nicht in Reichweite zu sein scheint.
Die Umsetzung meines Problems ist vermutlich trivial, nun bin ich aber Delphi-Neuling und verstehe vielleicht einfach nicht, was mir die Fehlermeldungen sagen wollen und wie das Ganze zu beheben ist.

Folgende Aufgabe:
Ich möchte einen Word-Serienbrief nach den vorhanden Serienbrieffeldern durchsuchen und mir deren "Namen" ausgeben lassen.
Dazu habe ich bis jetzt diese Prozedur:

Code:
procedure anzMergeFields();
var
  word: Variant;
  dir: string;
begin
  word := CreateOleObject('Word.Application');
  dir := edtUser.Text;  // Dateipfad
  word.Documents.Open(dir);
 // word.visible := True;

  try
    ShowMessage('MailMerge: ' + IntToStr(word.ActiveDocument.MailMerge.Fields.Count));
//    ShowMessage(word.ActiveDocument.MailMerge.Fields(1).Result);
  finally
    word.Quit;
  end;
end;
Das funktioniert soweit wie gewollt, die Datei wird geöffnet und auf die Anzahl der vorhandenen Serienbrieffelder durchsucht. Nur das Problem ist, dass sobald ich versuche Felder anzusprechen (siehe letzte auskommentierte Zeile), Fehlermeldungen erscheinen, dass Fields keine Methode sei bzw. dass das Automatisierungsobjekt Fields als Eigenschaft nicht kennt (wenn ich die Klammerung von Fields(1) in eckige Klammern ändere).

Allerdings entnahm ich das Vorgehen hierfür direkt vom MSDN: http://msdn.microsoft.com/en-us/libr...ice.11%29.aspx

Im Beispiel für Fields(index) wird es auf eben diese Weise beschrieben. Ich wäre sehr dankbar, wenn mich jemand auf meinen Fehler aufmerksam macht oder mir anderweitig weiterhilft. Auch andere Beispiele, bei denen es auf ähnliche Weise funktioniert haben soll (Bookmarks(i).Name,..) haben bei mir nicht zum Erfolg geführt.

Ich bedanke mich im Voraus schonmal für eure Hilfe.

MfG
Nightjacket
  Mit Zitat antworten Zitat