代码之家  ›  专栏  ›  技术社区  ›  PowerUser

一个小缺陷:通过VBA创建、保存和打开lotusdraft电子邮件的代码

  •  0
  • PowerUser  · 技术社区  · 14 年前

    1. 它并不总是打开正确的电子邮件草稿进行编辑。

    这两个问题都是不定期发生的。如果有规律的话,我还没见过。我能解决这些问题吗?有没有其他减少错误的提示?

    Dim NtSession As New NotesSession
    Dim NtDB As New NotesDatabase
    Dim NtWkSp As Object
    Dim NtDoc As New NotesDocument
    Dim NtObj As New NotesEmbeddedObject
    Dim NtBodyRT As New NotesRichTextItem
    NtSession.Initialize
    
    '==========================================================================
    'Open the mail server
    Set NtDB = NtSession.GetDatabase( _
        NtSession.GetEnvironmentString("MailServer", True), _
        NtSession.GetEnvironmentString("MailFile", True), _
        True)
    
    '==========================================================================
    'Fill in basic email fields
    Set NtDoc = NtDB.CreateDocument
    NtDoc.AppendItemValue "Form", "Memo"
    Set NtBodyRT = NtDoc.CreateRichTextItem("Body")
    AddFields
    
    '=========================================================================
    ' Save it to the drafts folder
    DoEvents
    NtDoc.SaveMessageOnSend = True
    NtDoc.SignOnSend = True
    NtDoc.Save False, False, True
    Set NtWkSp = CreateObject("Notes.NotesUIWorkspace")
    DoEvents
    NtWkSp.OpenDatabase _
        NtSession.GetEnvironmentString("MailServer", True), _
        NtSession.GetEnvironmentString("MailFile", True), _
        "($Drafts)"
    DoEvents
    NtWkSp.VIEWREFRESH
    NtWkSp.EDITDOCUMENT
    
    Set NtWkSp = Nothing
    Set NtSession = Nothing
    
    3 回复  |  直到 4 年前
        1
  •  0
  •   Fink    14 年前

    NtWkSp.VIEWREFRESH 调用您需要确保视图选择在刚刚添加的草稿上,否则,当您调用 NtWkSp.EDITDOCUMENT

    除此之外,对于Domino对象使用早期绑定,对lotusautomation类使用后期绑定似乎很奇怪,但是可能有一个目的吗?

        2
  •  0
  •   Ed Schembor    14 年前

    NotesUIWorkspace EditDocument方法可以选择性地传递给Notes文档的句柄,并将以编辑模式打开该文档。所以,你可以使用类似于:

    ...
    NtWkSP.EditDocument (true, NtDoc)
    
        3
  •  0
  •   Stan Rogers    14 年前

    (为了回答前面的一个问题,lotusdomino对象是一个受支持的COM接口,它支持早期绑定,但只能访问后端;Notes Automation Objects接口是一个早期的、不受欢迎的OLE接口,不支持早期绑定,坦白说,有点死板。)