Ich hab es so probiert
http://www.delphipraxis.net/internal...rd+application
also mein Code sieht dann so aus :
Delphi-Quellcode:
Procedure WordOeffnen(datei:
string);
var oV_Word : OleVariant;
wnd_Word : hwnd;
s_WndName:
string;
i : integer;
b_suchen : boolean;
begin
{ Word schon geöffnet ? }
//oV_Word := CreateOleObject('Word.Basic');
oV_Word := CreateOleObject('
Word.Application');
s_WndName:='
Microsoft Word - ';
b_suchen:=true;
i:=Length(datei);
while (i>1)
and b_suchen
do
if datei[i]='
\'
then b_suchen:=false
else Dec(i);
if not b_suchen
then s_WndName:=s_WndName+Copy(datei, i+1, Length(datei)-i);
wnd_Word:=FindWindowEx(0, 0, '
OpusApp', PChar(s_WndName));
if wnd_Word = 0
then begin
{
oV_Word.AppMaximize;
ov_Word.AppShow;
oV_Word.FileOpen(datei);
}
ov_Word.visible := true;
ov_word.activate;
ov_word.documents.open(datei);
//ov_Word.run('AutoNew.MAIN');
ov_word.ActiveDocument.FormFields.Item('
MANDANT').Result:='
Test';
end
else begin
SetForeGroundWindow(wnd_Word);
if IsIconic(wnd_Word)
then OpenIcon(wnd_Word);
end;
end;
wichtig sind die Zeilen
Delphi-Quellcode:
ov_Word.visible := true;
ov_word.activate;
ov_word.documents.open(datei);
//ov_Word.run('AutoNew.MAIN');
ov_word.ActiveDocument.FormFields.Item('MANDANT').Result:='Test';
Leider meint er dass die letzte Zeile nicht geht, der Fehler ist
Zitat:
Das Angeforderte Element ist nicht in der Sammlung vorhanden
Was für ein Element ist nicht in welcher Sammlung vorhanden frag ich mich da ?
Die Vorlage ist ein .DOT File welches über ein VB Makro betrieben wird. Ich möchte das ganze Makro aber rauswerfen und Delphi die Arbeit erledigen lassen !
Das Feld MANDANT ist vorhanden, es ist von Typ Mergefield.