【发布时间】:2014-02-24 18:47:45
【问题描述】:
我写了一个 Excel > Word 邮件合并,其中 word 文档是邮件合并模板。
目前 Excel 文件(数据源)的位置必须进行硬编码。
我希望能够移动关于网络的文件,只要它们在同一个文件夹中,所以它识别数据源仍然是excel文件。
我目前有这段我认为可以工作的代码。当 word 文档在任何时候打开时,它都会通过查找文件的当前目录并查找文件名 PM MailMerge.xlsm 来重新创建数据源。
然后当它被创建后,一个消息框应该会显示新的邮件合并数据源。
这可行,但是当我将这两个文件移动到任何其他文件夹时,它会失败并说找不到数据源。
代码:
Private Sub Document_Open()
Dim strBook As String
Dim strBookName As String
Dim strDataSource As String
strBookName = "\PM MailMerge.xlsm"
strBook = ActiveDocument.Path & strBookName
strDataSource = ActiveDocument.MailMerge.DataSource.Name
ActiveDocument.MailMerge.OpenDataSource Name:= _
strBook, _
ConfirmConversions:=False, _
ReadOnly:=False, _
LinkToSource:=True, _
AddToRecentFiles:=False, _
PasswordDocument:="", _
PasswordTemplate:="", _
WritePasswordDocument:="", _
WritePasswordTemplate:="", _
Revert:=False, _
Format:=wdOpenFormatAuto, _
Connection:= _
"Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=strBook;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Type=37;Jet OLEDB:D", _
SQLStatement:="SELECT * FROM `Merge$`", _
SQLStatement1:="", SubType:= _
wdMergeSubTypeAccess
MsgBox "Current Datasource - " + strDataSource
End Sub
【问题讨论】:
标签: vba datasource ms-word