打开配置为“邮件合并”的Word文档时,我们遇到了一个奇怪的问题。
当您手动打开文档时,即只需在计算机上双击即可,它会显示一个消息框:
"
打开此文档将运行以下SQL命令:
从中选择*
(此处为一些文件名)
数据库中的数据将被放置在文档中。是否要继续?
"
单击“否”后,您可以转到“邮件”功能区,“开始邮件合并”,然后选择“普通Word文档”。如果你保存文档,所有这些邮件合并内容都会消失,当你打开文档时,你也不再收到邮件。
现在是我们的应用程序。我们只需从Word中打开文档。Documents对象:
oWDoc = oWDocs.Open(FileName:=sFile)
现在
我录制了一个宏,看看我们执行这些操作时发生了什么,它所记录的只是:
oWDoc.MailMerge.MainDocumentType = -1
但是,当我遍历我的代码时,在它按照第一个代码片段打开文档后,当我在MainDocumentType执行该语句之前检查它时,它已经是-1(wdNotAMergeDocument),如果我接着
oWDoc.Save()
……这没什么区别。如果我随后尝试通过双击手动打开文档,我仍然会收到该消息,并且我仍然需要进行删除操作。
我录制了另一个宏,看看除了文档之外,打开文档的方式是否有什么不同。Open调用似乎传递了所有默认值,所以我认为它应该与我们以编程方式打开它的方式相同。
我的问题
我如何:
-
以编程方式检查此项,然后
-
以编程方式删除它,这样即使用户随后手动打开文档,它也会真正消失?
我们的代码是用VB编写的,但欢迎用C#编写