Lotus notes 找不到类或类型名称-类型对象

Lotus notes 找不到类或类型名称-类型对象,lotus-notes,lotus-domino,lotusscript,Lotus Notes,Lotus Domino,Lotusscript,我是LotusScript的初学者,我的代理中有以下错误: 我的目标是能够使用以下代码连接到服务器: Option Public Option Declare Sub Initialize Dim myServer As String Dim myMailfile As String myServer = "server" myMailfile = "mailfile" Dim filePath As

我是LotusScript的初学者,我的代理中有以下错误:

我的目标是能够使用以下代码连接到服务器:

Option Public
Option Declare    

Sub Initialize
    Dim myServer As String
    Dim myMailfile As String
    myServer = "server"
    myMailfile = "mailfile"

    Dim filePath As String
    Dim intErgebnis As Integer
    Dim objNotes As Object
    Dim LNdb As Object
    Dim LNView As Object
    Dim LNDoc As Object
    Dim LNItem As Object
    Dim strSubject As String
    Dim LNWorkspace As Object
    Dim LNAttachment As Variant
    intErgebnis = 0
    Set objNotes = GetObject("", "Notes.NotesSession")
    Set LNdb = objNotes.GETDATABASE(myServer, myMailfile)
    Set LNWorkspace = CreateObject("notes.notesuiworkspace")
    LNWorkspace.OpenDatabase myServer, myMailfile
End Sub

有人知道如何解决这个问题吗?感谢您的帮助

Lotusscript中没有名为Object的数据类型。 您需要使用适当的对象类型声明这些变量,例如NotesDatabase、NotesView、NotesDocument等

另外,您应该声明并初始化NotesSession对象,而不是在Lotusscript中使用GetObject()。看起来您正在尝试编写COM代码,而不是Lotusscript

另一个建议是使用符合事实(既定)命名约定的变量名。如果查看其他Lotusscript代码,您会注意到变量的命名方式通常相同,这使得阅读其他开发人员的代码更加容易。另一个建议是首先声明所有Notes对象/类,按使用顺序分组/排序,然后声明其余变量,然后再为其中任何一个赋值

您的代码应该更像这样:

Sub Initialize
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim view As NotesView
    Dim doc As NotesDocument
    Dim item As NotesItem
    Dim ws As New NotesUIWorkspace
    Dim uidoc as NotesUIDocument

    Dim mailServer As String
    Dim mailFileName As String
    Dim filePath As String
    Dim resultCount As Integer
    Dim subject As String

    mailServer = "server"
    mailFileName = "mailfile.nsf"
    resultCount = 0
    ' *** Open the specified mail file using back-end classes
    Set db = new NotesDatabase(mailServer, mailFileName)
    ' *** Get the document currently open in the Notes client using front-end classes
    Set uidoc = ws.CurrentDocument
    
End Sub
你看这是多么容易阅读,更不用说它既短又有效

我还建议始终使用英语中的变量名。如果您需要向某人寻求帮助,例如这里关于堆栈溢出的帮助,那么如果您使用易于理解的变量名,他们就更容易理解您的代码。这也是您应该为Notes对象/类使用标准化名称的原因

我写了一系列关于如何编写更好的Lotusscript代码的文章,我认为它们可能会帮助您: