如何从MS Access 2007将MS Outlook 2007对话框置于最前面?

时间:2011-04-14 13:25:27

标签: ms-access vba outlook

我试图允许MS Access 2007数据库的用户从MS Outlook GAL中选择另一个用户。我目前有工作代码打开Outlook Select Names对话框,但它隐藏在数据库窗口后面,直到用户点击Outlook。

如何在VBA中向用户显示对话框?

这是我的对话框代码(拼写错误是手动复制的结果 - 此代码位于气隙网络上):

set OLApp = CreateObject("Outlook.Application")
set OLDialog = OLApp.Session.GetSelectNamesDialog
with OLDialog
    .SetDefaultDisplayMode olDefaultSingleName
    if .Display then
        if OLDialog.Recipients.Count then
            theUser = OLDialog.Recipients.Item(1)
        end if
    end if
end with

2 个答案:

答案 0 :(得分:2)

我通过在.SetDefaultDisplayMode olDefaultSingleName之后添加以下行来完成这项工作:

OLApp.ActiveWindow.Activate

答案 1 :(得分:0)

非常感谢兰德尔!我还发现,如果Outlook实际上没有打开,因为ActiveWindow将为null,那么它将无效,所以将它包装起来也有帮助:

If Not (oApp.ActiveWindow Is Nothing) Then  'only if there's a window
            oApp.ActiveWindow.Activate  'make sure outlook comes to foreground first
End If