我有一个文件和文件副本。我将TagNo用作两个文档的唯一ID。 我还具有“状态”字段,以区分每个文档为“活动”,“非活动”,“草稿”和“锁定”。我将在下面说明我的文档情况。
下面是我的文档,其中包含两个字段;标签号= PTagNo;状态= PStatus。情况如下。
对于原始文档,状态设置为“有效”。创建副本后,原始文档将更改为锁定,而副本文档的状态将更改为草稿。 (为此我已经实现了。)
完成编辑后,我将更改草稿文档和原始文档的状态。当我将草稿文档另存为“完成”时,会发生这种情况。我的草稿文件将为原始文件,而我的原始文件将为存档文件。因此,对于我的草稿文档,状态将更改为有效,而原始文档的状态将更改为无效。(尚未实现)。
我将我的保存代码粘贴如下。
Sub Click(Source As Button)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim activeDoc As NotesDocument
Dim view As NotesView
Dim keys(1) As String
'// Set database and doc
Set db = session.CurrentDatabase
Set uidoc = workspace.CurrentDocument
Set doc = uidoc.Document
keys(0) = doc.PTagNo(0)
keys(1) = "Lock"
Set view = db.GetView("Computer")
vpswd = Inputbox$("Pls input code to save :")
If vpswd = "o" Then
Set activeDoc= view.GetDocumentByKey(keys, True)
If Not activeDoc Is Nothing Then
If activeDoc.PStatus(0) = "Lock" Then
activeDoc.DocumetId = doc.UniversalID
Call activeDoc.ReplaceItemValue("PStatus", "Inactive")
Call activeDoc.Save(True, False)
End If
End If
Call uidoc.FieldSetText("PStatus" , "Active")
Call uidoc.FieldSetText("SaveOptions" , "1")
Call uidoc.Save
Call uidoc.Close
Else
Msgbox "Wrong Code"
Exit Sub
End If
End Sub
因此我将GetDocumentByKey用于字段ptagno,但显示错误“未设置对象变量”。我是否使用了错误的功能?任何帮助将不胜感激。谢谢!
答案 0 :(得分:2)
尚未设置变量ptagno-因此出现“未设置对象变量”错误。您需要从字段PTagNo中读取值并将其分配给ptagno变量-或直接使用它。例如这样的
Set activeDoc= view.GetDocumentByKey(uidoc.FieldGetText("PTagNo"))