我们有一个可以在Delphi 2006上运行的系统,它可以创建一个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.
答案 0 :(得分:-1)
关于Delphi中Office Automation的明智之举:强烈建议您在手动合并时在Word中录制宏,并查看Word为宏生成的VBA代码。
一旦你获得了VBA代码,它与你在Delphi中解决问题的方式相比如何?
有时,只有简单的拼写差异或特定Office对象成员的路径很难理解,只能使用Word文档。
祝你好运。