2017-01-19 4 views
0

Wordデータソースを作成するDelphi 2006で動作するシステムがありますが、いくつかのリソースを試しましたが、私たちを助けて何かを見つけることはできません。問題は、データソースが複数の列を作成しないということです。つまり、「要求されたメンバーが存在しません」というエラーが表示されます。あなたがやる間、私は非常にWordでマクロの記録をお勧めします。私たちは私たちを与えるのWord 2013のそのフォーマットは、Delphiで賢明に関するオフィスオートメーションに要求されたメンバーは存在しませんか? Delphi6 Word 2013でデータソースを作成する

procedure Button1Click(Sender: TObject); 
    private 
    { Private declarations } 
    public 
    { Public declarations } 
    end; 

var 
    Form3: TForm3; 
    WordApp, NewDoc, wrdMailMerge, wrdDataDoc: OleVariant; 

implementation`enter code here` 

{$R *.dfm} 


procedure TForm3.Button1Click(Sender: TObject); 

begin 
    WordApp := CreateOleObject('Word.Application'); 
    NewDoc:=WordApp.Documents.Open('c:\temp\TempLetter.doc'); 
    WordApp.Visible:= True; 

    wrdMailMerge:=NewDoc.MailMerge; 

    NewDoc.MailMerge.CreateDataSource('c:\temp\DataDoc.doc',,,'SUR_NME, FUL_NME, NAT_PER_DE, PLACE, BTH_DT'); 
    wrdDataDoc:=WordApp.Documents.Open('c:\temp\DataDoc.doc'); 

    wrdDataDoc.Tables.Item(1).Cell(2,1).Range.InsertAfter('arno'); 

    wrdDataDoc.Tables.Item(1).Cell(2,2).Range.InsertAfter('venter'); 

    wrdDataDoc.Tables.Item(1).Cell(2,3).Range.InsertAfter('SA'); 
    wrdDataDoc.Tables.Item(1).Cell(2,4).Range.InsertAfter('ggggp'); 
    wrdDataDoc.Tables.Item(1).Cell(2,5).Range.InsertAfter(Date); 

    wrdDataDoc.Save; 
    wrdDataDoc.Close(False); 


    wrdMailMerge.Execute(False); 

    NewDoc.Saved:=False; 
    NewDoc.Close(False); 



    enter code here 

    end; 


end. 

答えて

-1

Wordを発行考えるほど、この問題に関するいくつかの洞察力を与えてください手動でマージし、Wordがマクロ用に生成するVBAコードを確認します。

VBAコードを取得したら、Delphiでどのように問題に近づいていますか?

単純なスペルの違いや、特定のOfficeオブジェクトメンバへのパスがあり、Wordのドキュメントだけでは扱いにくいことがあります。

幸運。

関連する問題