VBA:在单独的子例程中更新记录集会导致类型不匹配错误

时间:2017-09-22 19:54:47

标签: vba access-vba

这是我在这里遇到的一个非常奇怪的错误。基本上我要做的是在记录集为空时创建一个具有各种属性的新节点,并且我想将此功能放在其自己的函数中。但是当我这样做时,我得到了这个错误:

  

运行时错误' 13':类型不匹配

如果我不把它放在自己的功能中,一切都按预期工作。这是我的代码,其中包含产生错误的额外子例程。

If Forms("Main")!ESDNodeDetails!UseFTCheckBox Then

  Dim rst As DAO.Recordset
  Dim strSQL As String
  strSQL = "SELECT * FROM FTNodes WHERE ESDNodeID = " & Forms("Main")!ESDNodeDetails!ESDNodeID & " ORDER BY ParentID,Sort"

  Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset)

  'if the recordset is empty, there is no head node. create a new head node, then refresh the recordset
  If rst.EOF Then
     createHeadNode(rst) 'ERROR OCCURS ON THIS LINE
  End If
  ......
  ......
End If

Private Sub createHeadNode(rst As DAO.Recordset)
     rst.AddNew
     With rst
         .AddNew
         !FTNodeType = 1
         !Description = Forms("Main")!ESDNodeDetails!Description
         !Sort = 1
         !ESDNodeID = Forms("Main")!ESDNodeDetails!ESDNodeID
         .Update
     End With
End Sub

记录集正在使用的FTNodes表的结构:

表单(" Main")!ESDNodeDetails!说明是一个文本框 和 表格(" Main")!ESDNodeDetails!ESDNodeID也是一个文本框

0 个答案:

没有答案