我有一个subrutine的问题,我想在同一个数据库中替换其他形式的字段的值,我的代码运行正常,如果我把它放入一个buttom,但我希望做一个sub因为我想要多次使用它。
所以,我有这段代码:
Public Sub actualizarContador (contadorId As String, contadorTmp As Integer, contadorActual As Integer,contadorNuevo As Integer)
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Dim uidoc As NotesUIDocument
Dim odoc As NotesDocument
Dim estado As String
Set uidoc = ws.Currentdocument
estado = uidoc.Fieldgettext("Estado")
If estado = "Borrador" Then
Set odoc = db.GetDocumentByUNID(uidoc.FieldGetText(contadorId))
contadorTmp = Cint(contadorActual) + 1
Call odoc.ReplaceItemValue(contadorNuevo, contadorTmp)
Call odoc.Save(True, True)
End If
end sub
然后进入一个buttom我使用这一行:
Call actualizarContador (doc.TempoIDContador(0), doc.TempoContadorTmp(0), doc.TempoContadorActual(0), "ContadorUnicoTempo")
我在ContadorUnictoTempo上有一个错误,因为我认为必须在这个对象中放入一个字段的名称,但是这个字段有数字格式。
有什么建议吗?
谢谢大家。
修改
我已经解决了这个问题,谢谢Knut。 有两个问题,第一个是字段'ContadorTmp',它没有值,现在它有0预定。这是类型不匹配的第一个错误。
第二个错误是类uidoc,它没有找到id字段。我刚刚完成了代码,运行正常。
Public Sub actualizarContador (contadorId As String, contadorTmp As Integer, contadorActual As Integer, contadorNuevo As String)
Dim ws As New NotesUIWorkspace
Dim ns As New NotesSession
Dim db As NotesDatabase
Dim uidoc As NotesUIDocument
Dim odoc As NotesDocument
Dim estado As String
Dim id As String
set db = ns.Currentdatabase
Set uidoc = ws.Currentdocument
estado = uidoc.Fieldgettext("Estado")
id = contadorId
If estado = "Borrador" Then
Set odoc = db.GetDocumentByUNID(id)
contadorTmp = CInt(contadorActual) + 1
Call odoc.ReplaceItemValue(contadorNuevo, contadorTmp)
Call odoc.Save(True, True)
End If
End Sub
答案 0 :(得分:1)
定义contadorNuevo参数As String
然后它将起作用。
Public Sub actualizarContador (contadorId As String, contadorTmp As Integer,
contadorActual As Integer,contadorNuevo As String)
您应该测试是否找到了odoc
Set odoc = db.GetDocumentByUNID(uidoc.FieldGetText(contadorId))
If odoc Is Nothing Then Error 1000, "Couldn't find document"
...