2011-04-14 90 views
1

我试图让一个MS Access 2007数据库的用户选择从微软的Outlook GAL其他用户。我现在有工作打开的Outlook中选择姓名对话框代码,但直到用户点击的Outlook它隐藏数据库窗口的后面。我如何把一个MS Outlook 2007的对话框,从MS Access 2007的前端?

如何使对话框可见在VBA用户?

这里是我的对话框代码(错别字是一个手动复制一个结果 - 这个代码是一个airgapped网络上):

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

我加入以下行.SetDefaultDisplayMode olDefaultSingleName后做出这项工作:

OLApp.ActiveWindow.Activate 
0

非常感谢兰德尔!我还发现,如果Outlook实际上并没有打开,因为ActiveWindow将为空,所以将它包括起来也是非常有用的:

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 
+0

这不意味着对话框会被隐藏吗? – 2013-05-03 16:30:17