我正在尝试在Access 2013中创建清单的签出日志。在此过程中,您将在Lotus Notes 9日历中的预期退货日期上创建一个约会。我找到了足够的例子来成功地做到这一点。但是,在尝试将人员添加到“ RequiredAttendees”字段时,我陷入了困境。我很确定自己使用的字段名正确,但是不断出现以下错误:
运行时错误'-2147417851(80010105)':自动化错误。服务器 引发异常。
除试图添加与会者的部分外,其他所有东西都工作正常。我知道Lotus Notes 9很旧,我知道Access 2013很旧,但是那些是我需要使用的工具。任何帮助,将不胜感激。
Public Function test() As Variant
Dim StartTime As Date
Dim MailDbName As String
Dim CalenDoc As Object
Dim WorkSpace As Object
Dim AppDate As String
Dim AppTime As String
Dim Subject As String
Set WorkSpace = CreateObject("Notes.NOTESUIWORKSPACE")
AppDate = InputBox(Prompt:="Enter the return date:")
'Subject = InputBox(Prompt:="Enter the subject:")
'AppTime = InputBox(Prompt:="Enter the time:")
MailDbName = "mail\User.nsf"
strSTime = CStr(Timex)
Set CalenDoc = WorkSpace.COMPOSEDOCUMENT("MailServer", MailDbName, "Appointment")
CalenDoc.FIELDSETTEXT "AppointmentType", "3"
CalenDoc.Refresh
CalenDoc.FIELDSETTEXT "StartDate", CStr(AppDate)
CalenDoc.FIELDSETTEXT "EndDate", CStr(AppDate)
CalenDoc.FIELDSETTEXT "StartTime", "12:00 PM"
CalenDoc.FIELDSETTEXT "EndTime", "12:00 PM"
CalenDoc.FIELDSETTEXT "Subject", "Test"
GetUser = Environ("UserName")
EmailAddress = GetUser & "@company.com"
If EmailAddress = "User1@company.com" Then
CalenDoc.FIELDSETTEXT "RequiredAttendees", "User2@company.com" & "," & "User3@company.com"
CalenDoc.Refresh
ElseIf EmailAddress = "User2@company.com" Then
CalenDoc.FIELDSETTEXT "RequiredAttendees", "User1@company.com" & "," & "User3@company.com"
CalenDoc.Refresh
ElseIf EmailAddress = "User3@company.com" Then
CalenDoc.FIELDSETTEXT "RequiredAttendees", "User2@company.com" & "," & "User1@company.com"
CalenDoc.Refresh
Else
MsgBox (EmailAddress & "is not a valid email address.")
End If
'CalenDoc.gotoField "Body"
'CalenDoc.InsertText Body
CalenDoc.Refresh
'CalenDoc.Save
'CalenDoc.Close
'Set CalenDoc = Nothing
'Set WorkSpace = Nothing
答案 0 :(得分:2)
我认为您对使用后端COM类而不是使用前端OLE类的示例(或除此以外)的示例感到困惑。您正在使用Notes.NOTESUIWORKSPACE-OLE,而不是Lotus.NotesSession-COM。这意味着您必须使用“约会”表单上的实际可编辑字段,有时这些字段并不是您期望的。在某些情况下,这些前端字段与最终将存储在后端文档中的项目不同-通常是记录后端项目名称,因为它们是存储在其中的名称笔记。
RequiredAttendees是存储的项目名称,但由于它是“约会”表单上的计算字段,而不是可编辑的字段,因此出现自动化错误。
由于使用的是OLE,因此需要在“ EnterSendTo”字段中输入数据。实际上,由于与约会表单关联的公式和脚本中存在不可思议的作用,您(或用户)放入的数据最终将出现在RequiredAttendees项中。