Ms access 如果记录集=nothing,我将收到一个错误
我编写了一个打开记录集的函数。在函数结束时,如果记录集尚未关闭,我希望关闭它,以便捕获错误 当我尝试运行该函数时,会出现以下编译错误:对象的使用无效。由于我没有尝试更改记录集对象的值,因此不应该出现此错误Ms access 如果记录集=nothing,我将收到一个错误,ms-access,vba,Ms Access,Vba,我编写了一个打开记录集的函数。在函数结束时,如果记录集尚未关闭,我希望关闭它,以便捕获错误 当我尝试运行该函数时,会出现以下编译错误:对象的使用无效。由于我没有尝试更改记录集对象的值,因此不应该出现此错误 Dim rs as Recordset ... If Not rs = Nothing Then rs.Close set rs = Nothing End If 更改这段代码: If Not rs Is Nothing Then rs.Close Set
Dim rs as Recordset
...
If Not rs = Nothing Then
rs.Close
set rs = Nothing
End If
更改这段代码:
If Not rs Is Nothing Then
rs.Close
Set rs = Nothing
End If
另外,如果是清理程序关闭代码,则在使打开的对象无效之前,只需在错误恢复下一步时使用
,,无需检查它们是否有效。更改此代码:
If Not rs Is Nothing Then
rs.Close
Set rs = Nothing
End If
另外,如果是清理过程关闭代码,在使打开的对象无效之前,只需在错误恢复下一步时使用,
,无需检查它们是否有效。看起来您正在尝试关闭已关闭的记录集
也许这会奏效:
If rs <> Nothing Then
rs.Close
rs = Nothing
End If
如果没有,那么
rs.Close
rs=无
如果结束
看起来您正试图关闭记录集,而记录集已经关闭
也许这会奏效:
If rs <> Nothing Then
rs.Close
rs = Nothing
End If
如果没有,那么
rs.Close
rs=无
如果结束
正确的语句应该是:
If Not rs is Nothing Then
rs.Close
set rs = Nothing
End If
因为没有任何东西是表示未知的对象,所以它并不等于任何东西。甚至连它自己都没有。正确的说法应该是:
If Not rs is Nothing Then
rs.Close
set rs = Nothing
End If
因为没有任何东西是表示未知的对象,所以它并不等于任何东西。甚至连它本身都没有。通过使用DMax
函数,您可以大大简化代码。@Andre,谢谢!你不知道你帮了我多少。但最初,我的代码获取日期字段的最大值。它也适用于这种类型吗?是的,DMax也适用于日期/时间字段。通过使用DMax
函数,您可以大大简化代码。@Andre,谢谢!你不知道你帮了我多少。但最初,我的代码获取日期字段的最大值。它也适用于该类型吗?是的,DMax也适用于日期/时间字段。编译错误也必须是,如果不是rs,那么就您的权利,我在If语句中犯了错误。最初它在我的代码中是,如果不是。我不想把它放在问题里,现在我改了。但是如果rs Nothing
得到相同的错误。rs=Nothing
也是错误的。因为rs是一个对象,所以应该使用set
来更改它的值设置rs=Nothing`。也有编译错误,必须是如果不是,则rs是Nothing,那么您的权利就是我在If语句中犯了错误。最初它在我的代码中是,如果不是。我不想把它放在问题里,现在我改了。但是如果rs Nothing
得到相同的错误。rs=Nothing
也是错误的。因为rs是一个对象,所以应该使用set
来更改它的值设置rs=Nothing`。