我试图允许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
答案 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