Database 如果不创建记录集对象,是否需要在MS Access中关闭记录集?

Database 如果不创建记录集对象,是否需要在MS Access中关闭记录集?,database,vba,ms-access-2007,recordset,Database,Vba,Ms Access 2007,Recordset,我已经读到在Access中关闭记录集对象很重要,但在我的代码中,我从不创建记录集对象,我总是使用内联引用,例如: Dim ClientName As String ClientName = CurrentDB.OpenRecordset([some SQL]).Fields(0).Value 我看不到像CurrentDB.CloseRecordset这样的东西,我也不认为CurrentDB.Close是个好主意。在这种情况下,我需要关闭任何记录集,还是它会自动关闭 我通过ODBC连接将MS

我已经读到在Access中关闭记录集对象很重要,但在我的代码中,我从不创建记录集对象,我总是使用内联引用,例如:

Dim ClientName As String

ClientName = CurrentDB.OpenRecordset([some SQL]).Fields(0).Value
我看不到像CurrentDB.CloseRecordset这样的东西,我也不认为CurrentDB.Close是个好主意。在这种情况下,我需要关闭任何记录集,还是它会自动关闭

我通过ODBC连接将MS Access 2007与SQL Server后端一起使用


如果我的任何术语或使用方法是错误的,请随时纠正我

CurrentDB.OpenRecordset“附加到记录集集合”

这段代码是否有效,是否表示您已将以下内容添加到记录集集合中:

Dim ClientName As String

msgbox CurrentDB.Recordsets.Count

ClientName = CurrentDB.OpenRecordset([some SQL]).Fields(0).Value

msgbox CurrentDB.Recordsets.Count
在一根树枝上行走,这是否有效:

Dim ClientName As String

msgbox CurrentDB.Recordsets.Count

ClientName = CurrentDB.OpenRecordset([some SQL]).Fields(0).Value

msgbox CurrentDB.Recordsets.Count

msgbox CurrentDB.Recordsets(0).Close

您的代码创建一个短暂的记录集;语句完成后,它立即超出范围。因此无法。请关闭记录集,因为它已不存在

情况类似于此即时窗口会话

? CurrentDB.Recordsets.Count 0 strSelect=从Dual中选择Count*; MyVar=CurrentDB.OpenRecordsetstrSelect0 ? 迈瓦尔 1. ? CurrentDB.Recordsets.Count 0
这是一个很棒的想法。让我在下周上班的时候测试一下,我会让你知道的。根据下面的评论,我想我会删除这个答案,因为它完全不正确!酷,这就是我怀疑的。下周上班时我会测试一下,然后告诉你。