问题描述
|
我试图允许MS Access 2007数据库的用户从MS Outlook gal中选择另一个用户。我目前有工作代码可以打开Outlook“选择名称”对话框,但是它一直隐藏在数据库窗口后面,直到用户单击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
解决方法
我通过在ѭ1after之后添加以下行来完成此工作:
OLApp.ActiveWindow.Activate
,非常感谢Randall!我还发现,如果未真正打开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