请求的成员不存在?Delphi6使用Word 2013创建数据源

请求的成员不存在?Delphi6使用Word 2013创建数据源,delphi,ms-word,automation,mailmerge,Delphi,Ms Word,Automation,Mailmerge,我们有一个在Delphi2006上运行的系统,它创建了一个Word数据源,我们尝试了许多资源,但似乎找不到任何对我们有帮助的东西。问题是我们的数据源没有创建多个列,这意味着它会给我们一个错误“请求的成员不存在”。请就这个问题提供一些见解,因为我们认为是Word 2013的格式给了我们一些问题 procedure Button1Click(Sender: TObject); private { Private declarations } public { Public d

我们有一个在Delphi2006上运行的系统,它创建了一个Word数据源,我们尝试了许多资源,但似乎找不到任何对我们有帮助的东西。问题是我们的数据源没有创建多个列,这意味着它会给我们一个错误“请求的成员不存在”。请就这个问题提供一些见解,因为我们认为是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.

关于Delphi中的办公自动化,我强烈建议您在手动合并时在Word中录制宏,并查看Word为宏生成的VBA代码

一旦您获得了VBA代码,它与您在Delphi中处理问题的方式相比如何

有时,对于特定的Office对象成员,存在简单的拼写差异或路径,很难从Word文档中挑出

祝你好运