MS Access呼叫MS Word

时间:2014-07-10 21:42:00

标签: ms-access dialog mailmerge

我有一个MSAccess数据库,它使用docmd打开调用邮件合并的word文档。除了有一个对用户隐藏的对话框外,一切正常。必须使用Alt Tab将对话框调用到屏幕。

是否有办法将该对话框带到前面?

1 个答案:

答案 0 :(得分:0)

确切的DoCmd命令是什么?也许你开始一个外部应用程序?在那之后你无法控制它。以这种方式使用它会更好:

首先引用您的Office版本(在 VBA编辑器:菜单工具> 参考)中选择:

  

Microsoft Office 14.0对象库

然后在VBA中使用此代码:

'Create Word object (open Word)
Dim WordApp As Object
Set WordApp = CreateObject("Word.Application")

'Mailmerge
WordApp.ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
WordApp.ActiveDocument.MailMerge.OpenDataSource Name:= _
    GetCSVFileName(aSurvey, ModuleName), _
    ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
    AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
    WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
    Format:=wdOpenFormatAuto, Connection:="", SQLStatement:="", SQLStatement1 _
    :="", SubType:=wdMergeSubTypeOther

最后,关闭:

WordApp.Quit 0
Set WordApp = Nothing

您可以在执行mailmerge时通过录制宏(在Word中)来获取特定代码。通过这种方式,您可以使用Word执行各种操作:打开文档,启动mailmerge,保存为PDF等等。所有这些都来自Access VBA。这种方式,我认为,需要回复弹出窗口,因为所有都是用代码处理的。