创建记录集时,您可能想立即知道该记录集是否实际上包含任何行。 有些记录集不返回任何行,因此您可能需要根据此结果采取不同的步骤。 基本上有3种测试空记录集的方法(不返回任何行的记录集)。 我们将使用DAO,但是这些方法同样适用于ADO。
'Common Code Block
Dim MyDB As DAO.Database, MyRS As DAO.Recordset
Set MyDB = CurrentDB()
Set MyRS = MyDB.OpenRecordset("qryEmployees", dbOpenDynaset) 'Method #1
If Not MyRS.BOF And Not MyRS.EOF Then
'you will only be here if Rows are returned
End If 'Method #2
Do Until MyRS.EOF
'if the Recordset returns no Rows, Loop will not be entered
Loop 'Method #3
If MyRS.Recordcount > 0 Then
'you will only be here if Rows are returned
End If NOTE: If you are looking for an exact Record Count in addition
to testing for an Empty Recordset, it is a good idea to traverse
the Recordset beforehand as in:
MyRS.MoveLast: MyRS.MoveFirst
Debug.Print MyRS.RecordCount
------------------------------------------------------------------------------ NOTE: Any explicit move in an Empty Recordset such as MoveNext,
MoveLast will result in a Runtime Error.
From: https://bytes.com/topic/access/insights/632600-testing-empty-recordset