Einzelnen Beitrag anzeigen

Overclocker

Registriert seit: 10. Jan 2007
215 Beiträge
 
#1

Vorgang nicht verfügbar bei Word Doc öffnen

  Alt 8. Sep 2008, 16:53
Hi,

folgender Code verursacht bei mir einen Fehler:
Delphi-Quellcode:
sql1 := 'select * from `Profil`';
         sql2 := 'where id_user in ('+userids+')'; //userids ist eine stringlist mit lauter IDs


         dbquelle := ExtractFilePath (ParamStr(0))+'Bewerbermanagement.mdb';

         dm.brief_oeffnen(strtoint(DBGrid1.DataSource.DataSet.Fields.Fields[0].AsString)); //hier öffne ich den brief mit einer bestimmten ID

// hier der code von "brief_oeffnen"

procedure Tdm.brief_oeffnen(id_vorlage:integer);
var
pfad:string;

begin
with varqry4 do
        begin
        close;
        sql.clear;
        sql.text := 'select pfad from vorlagen where id_vorlage='+inttostr(id_vorlage);
        open;
        pfad := datasource4.dataset.fieldbyname('vorlagenpfad').asstring;

        ShellExecute(application.handle, 'open', PChar(pfad), '', Pchar(ExtractFileDir(pfad)), SW_SHOW);
        end;
end;
//
         Word:=GetActiveOleObject('Word.Application');

         //Dokument als normales Dokument einrichten, Serienbrieffunktion sozusagen entfernen

         Word.ActiveDocument.MailMerge.MainDocumentType:= wdNotAMergeDocument;
         
         //Dokument wieder als Serienbrief einrichten
         Word.ActiveDocument.MailMerge.MainDocumentType:= wdFormLetters;



         Word.ActiveDocument.MailMerge.OpenDataSource(dbquelle,
         ConfirmConversions :=False, ReadOnly:=False, LinkToSource:=True,
         AddToRecentFiles:=False, PasswordDocument:='', PasswordTemplate:='',
         WritePasswordDocument:='', WritePasswordTemplate:='', Revert:=False,
         Format:=wdOpenFormatAuto, Connection:=
         'Provider=Microsoft.Jet.OLEDB.4.0;Password='''';User ID=Admin;Data Source='+dbquelle+';Mode=Read;Extended Properties='''';Jet OLEDB:System database='''';Jet OLEDB:Registry Path='''';Jet OLEDB:Database Password='''
         , SQLStatement:=SQL1, SQLStatement1:=SQL2);
         word.ActiveDocument.MailMerge.ViewMailMergeFieldCodes := wdToggle;

Problem jetzt: immer wenn ich den brief öffne kommt ein fehler bei
Word.ActiveDocument.MailMerge.MainDocumentType:= wdNotAMergeDocument; //vorgang nicht verfügbar

wieso nimmt er denn
Word:=GetActiveOleObject('Word.Application'); nicht an und macht aus dem brief ein normalen brief...

ich komme nicht weiter


bei word 2002 funktioniert der code soweit, bei word 2003 kommt der fehler ://

danke für die hilfe
  Mit Zitat antworten Zitat