如果recordset = nothing,我收到错误

时间:2016-01-20 13:30:50

标签: vba ms-access access-vba

我写了一个打开记录集的函数。在函数结束时,如果记录集尚未关闭,我想关闭记录集,以便进行错误捕获。

当我尝试运行该函数时,我得到以下编译错误:无效使用对象。由于我没有尝试更改记录集对象的值,因此应该没有理由出现此错误。

Dim rs as Recordset
...

If Not rs = Nothing Then
    rs.Close
    set rs = Nothing
End If

3 个答案:

答案 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