2011-11-21 71 views
0

通過Outlook Interop庫從MS Access(2007)運行它。我從一個用戶帳戶上的星號行得到錯誤-2147221219(8004011d),但在另一個用戶帳戶上沒有。錯誤似乎與權限相關,並且這兩個帳戶都對帳戶具有完全訪問權限,該帳戶是我試圖打開的日曆,可以通過Outlook打開並創建約會。示例代碼運行時錯誤與NS.GetSharedDefaultFolder方法

Public Function NewApt(MtgDate As Date, Cat As String) 

Dim objOLApp As Outlook.Application 
Dim objNS As Outlook.Namespace 
Dim objCalendar As Outlook.Folder 
Dim NewMtg As Outlook.AppointmentItem 
Dim Org As Outlook.Recipient 

Set objOLApp = New Outlook.Application 
Set objNS = objOLApp.GetNamespace("MAPI") 
Set Org = objNS.CreateRecipient("[email protected]") 
Org.Resolve 
If Org.Resolved Then 
    ** Set objCalendar = objNS.GetSharedDefaultFolder(Org, olFolderCalendar) 
Else 
    MsgBox "Scheduling User failed to resolve, see Crimius." 
    Exit Function 
End If 
... 

任何想法爲什麼?

+0

你試過'objNS.Logon'嗎? – Fionnuala

+0

我的理解是,登錄方法會劫持現有會話並更改其工作配置文件,因此我們決定嘗試避免這種情況(因爲我們的幾個用戶喜歡打開40個Outlook郵件,然後抱怨他們的系統速度很慢)。這不是這種情況嗎? – Crimius

+0

不,如果Outlook剛剛啓動,登錄將登錄到配置文件。如果它已經在運行,它什麼都不會做。其次,嘗試將兩個郵箱添加爲代理存儲(Exchange帳戶屬性對話框的高級選項卡)。你可以瀏覽兩個郵箱嗎? –

回答

-1

也許,Outlook-Datafile受密碼保護。 切換到Outlook,輸入Outlook容器的密碼,然後重試。

0

我知道可能會出現此錯誤的一個原因。 WHE您使用GetSharedDefaultFolder方法和參數1(收件人)收件人從全局地址列表中隱藏可能會出現這樣的錯誤:

COMException (0x8004011D): 
The operation failed because of a registry or installation problem. Restart Outlook and try again. If the problem persists, reinstall. 
-2

我有完全一樣的問題。幾年來一直運行的VBA模塊突然拒絕。經過驗證,事實證明,內部電子郵件地址更改爲以前的宏運行...

更改爲電子郵件地址解決了問題。