邮件合并VBA - 访问2016(运行时错误287)

时间:2016-03-30 21:42:19

标签: vba access-vba ms-access-2016

我们公司最近经历了从办公室2010年到2016年的大幅升级,现在我们遇到了一个VBA宏的问题,如下所示。

Function MergeIt()
Dim objWord As Word.Document
Dim SaveAsName As String
Dim Year As String
Dim DANo As String
Dim Revision As String
Dim strSource As String

Set objWord = GetObject("G:\Dev_&_Tech_Serv\Development\DAAssessTool\MailMerge1.dot", "Word.Document")
' Make Word visible.
objWord.Application.Visible = True
'Set the mail merge data source as the DAApproval Database.
objWord.MailMerge.OpenDataSource Name:="G:\Dev_&_Tech_Serv\Development\DAAssessTool" & "\DARevD.mdb", LinkToSource:=True, Connection:="QUERY qry_Mailmerge", SQLStatement:="Select * from [DAConCheckID]"
' Execute the mail merge.
objWord.MailMerge.Execute
' Close the original form document
objWord.Saved = True
objWord.Close (False)
End Function

错误是抛出第一个Set行 - 抛出运行时错误287"应用程序定义或对象定义错误"。我假设前一个开发人员错误地定义了Word文档,但是我无法在网上找到任何显示不同方法的方法,或者如何修复此错误。

我现在转向Stack社区的丰富知识,以获得有关出错的一些灵感,以及如何解决它。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您最好的选择是将这些旧的.dot文件转换为较新的.dotx格式。

如果这不可行,请尝试在Word选项/信任中心/文件阻止设置中取消阻止这些旧格式

请参阅http://answers.microsoft.com/en-us/office/forum/office_2016-word/word-2016-cannot-open-documents-with-doc/bf12fa10-4e28-4a6b-99b2-d42c1aa8cb4b/

您可能还需要将!!设置为受信任位置(我假设它是网络驱动器)。