这个内容比较多,也不是太好说。 总之你可以先将主文档建好(相当于报表设计),在程序中生成一个DBF文件。用代码指定邮件合并的数据源是这个DBF文件,执行邮件合并就可以了。 主文档中的域对应DBF中的字段名。下面是我试了一下的结果: 主文档:Hello!«姓名»: Your address is «地址»,is it correct?Yours,iceviDBF文件内容: 姓名 地址 wang beijing zhang shanghai liu wuhan执行邮件合并后为: Hello!wang: Your address is beijing,is it correct?Yours,icevi 《分页符》 Hello!zhang: Your address is shanghai,is it correct?Yours,icevi 《分页符》 Hello!liu: Your address is wuhan,is it correct?Yours,icevi 《分页符》
对应的代码你可以参考以下语句:若不熟悉语法,用WORD中的录制宏可以很快看到你的操作对应的代码。 ActiveDocument.MailMerge.OpenDataSource Name:="D:\Book1.dbf", _ ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _ AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _ WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _ Format:=wdOpenFormatAuto, Connection:= _ "DSN=dBASE Files;DBQ=D:\;DefaultDir=D:\;DriverId=533;MaxBufferSize=2048;PageTimeout=5;" _ , SQLStatement:="SELECT * FROM Book1.dbf", SQLStatement1:="" With ActiveDocument.MailMerge .Destination = wdSendToNewDocument .MailAsAttachment = False .MailAddressFieldName = "" .MailSubject = "" .SuppressBlankLines = True With .DataSource .FirstRecord = wdDefaultFirstRecord .LastRecord = wdDefaultLastRecord End With .Execute Pause:=True End With若你在VFP中调用,用OLE AUTOMATION来操作这个WORD文档对象就可以了。
贴上来怎么成了乱字符了?主文档:Hello!《姓名》: Your address is 《地址》,is it correct?Yours,icevi 《》内表示是插入的合并域。
不必要用VB,也不需要用OLE控件,用OLE AUTOMATION就可以了。 VFP语法我也记不清楚了,好象是用createobject创建一个WORD.application对象。就可以用这个对象,来打开WORD文档,操作这个WORD文档,完成一系列功能。在用完后还可以保存为DOC文件。具体的你看看VFP的帮助,应该有很详细的关于OLE AUTOMATION(或OLE2)的说明的。关于word.application对象的方法和属性,可以看VBA for word 的帮助。用OLE控件可能需要手工来操作,用OLE automation完全用代码来完成。
邮件合并它主要提供一个什么样的功能。它的合并是体现哪些东西的合并,能给详细说说吗?也就是在什么样的情况下,要用邮件合并呢。
非常感谢。
总之你可以先将主文档建好(相当于报表设计),在程序中生成一个DBF文件。用代码指定邮件合并的数据源是这个DBF文件,执行邮件合并就可以了。
主文档中的域对应DBF中的字段名。下面是我试了一下的结果:
主文档:Hello!«姓名»:
Your address is «地址»,is it correct?Yours,iceviDBF文件内容:
姓名 地址
wang beijing
zhang shanghai
liu wuhan执行邮件合并后为:
Hello!wang:
Your address is beijing,is it correct?Yours,icevi
《分页符》 Hello!zhang:
Your address is shanghai,is it correct?Yours,icevi
《分页符》 Hello!liu:
Your address is wuhan,is it correct?Yours,icevi
《分页符》
对应的代码你可以参考以下语句:若不熟悉语法,用WORD中的录制宏可以很快看到你的操作对应的代码。
ActiveDocument.MailMerge.OpenDataSource Name:="D:\Book1.dbf", _
ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:= _
"DSN=dBASE Files;DBQ=D:\;DefaultDir=D:\;DriverId=533;MaxBufferSize=2048;PageTimeout=5;" _
, SQLStatement:="SELECT * FROM Book1.dbf", SQLStatement1:=""
With ActiveDocument.MailMerge
.Destination = wdSendToNewDocument
.MailAsAttachment = False
.MailAddressFieldName = ""
.MailSubject = ""
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=True
End With若你在VFP中调用,用OLE AUTOMATION来操作这个WORD文档对象就可以了。
Your address is 《地址》,is it correct?Yours,icevi
《》内表示是插入的合并域。
谢谢了,我打心眼里佩服你,聪明。
你这是vb的写法,我可不可以这样,用vb作成一个可执行文件,然后用vfp的命令去执行它,就相当于我用vb作成一个过程一样。这样行不行的。
呵呵,按钮,你哪里人呀
VFP语法我也记不清楚了,好象是用createobject创建一个WORD.application对象。就可以用这个对象,来打开WORD文档,操作这个WORD文档,完成一系列功能。在用完后还可以保存为DOC文件。具体的你看看VFP的帮助,应该有很详细的关于OLE AUTOMATION(或OLE2)的说明的。关于word.application对象的方法和属性,可以看VBA for word 的帮助。用OLE控件可能需要手工来操作,用OLE automation完全用代码来完成。