2011-04-14 77 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