通过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
...
任何想法为什么?
你试过'objNS.Logon'吗? – Fionnuala
我的理解是,登录方法会劫持现有会话并更改其工作配置文件,因此我们决定尝试避免这种情况(因为我们的几个用户喜欢打开40个Outlook邮件,然后抱怨他们的系统速度很慢)。这不是这种情况吗? – Crimius
不,如果Outlook刚刚启动,登录将登录到配置文件。如果它已经在运行,它什么都不会做。其次,尝试将两个邮箱添加为代理存储(Exchange帐户属性对话框的高级选项卡)。你可以浏览两个邮箱吗? –