我写了一个打开记录集的函数。在函数结束时,如果记录集尚未关闭,我想关闭记录集,以便进行错误捕获。
当我尝试运行该函数时,我得到以下编译错误:无效使用对象。由于我没有尝试更改记录集对象的值,因此应该没有理由出现此错误。
Dim rs as Recordset
...
If Not rs = Nothing Then
rs.Close
set rs = Nothing
End If
答案 0 :(得分:2)
更改此代码:
If Not rs Is Nothing Then
rs.Close
Set rs = Nothing
End If
此外,如果它的清理程序关闭代码,只需在使对象无效之前使用On Error Resume Next
,就不需要检查它们是否有效。
答案 1 :(得分:2)
正确的陈述应该是:
If Not rs is Nothing Then
rs.Close
set rs = Nothing
End If
由于Nothing不是一个意味着未知的对象,因此它不会等于。甚至不是自己。
答案 2 :(得分:-1)
看起来你正试图在记录集已经关闭时关闭它。
也许这可能会奏效:
If rs <> Nothing Then
rs.Close
rs = Nothing
End If