Recordset.RecordCount-Eigenschaft (DAO)
Gilt für: Access 2013, Office 2013
Returns the number of records accessed in a Recordset object, or the total number of records in a table-type Recordset object. or TableDef object. Schreibgeschützter langer Wert.
Syntax
expression .RecordCount
Ausdruck Eine Variable, die ein Recordset-Objekt darstellt.
Bemerkungen
Verwenden Sie die RecordCount-Eigenschaft, um herauszufinden, auf wie viele Datensätze in einem Recordset- oder TableDef-Objekt zugegriffen wurde. Die RecordCount-Eigenschaft gibt erst an, wie viele Datensätze in einem Recordset-Objekt vom "dynaset"-, "snapshot"- oder "forward-only"-Typ enthalten sind, wenn auf alle Datensätze zugegriffen wurde. Sobald auf den letzten Datensatz zugegriffen wurde, gibt die RecordCount-Eigenschaft die Gesamtzahl ungelöschter Datensätze im Recordset- oder TableDef-Objekt an. To force the last record to be accessed, use the MoveLast method on the Recordset object. You can also use an SQL Count function to determine the approximate number of records your query will return.
Hinweis
Das Verwenden der MoveLast-Methode zum Auffüllen eines neu geöffneten Recordset wirdkt sich negativ auf die Leistung aus. Sofern beim Öffnen eines Recordset-Objekts nicht sofort ein genauer RecordCount-Wert erforderlich ist, sollte das Recordset-Objekt mit anderen Codeteilen aufgefüllt werden, bevor die RecordCount-Eigenschaft geprüft wird.
As your application deletes records in a dynaset-type Recordset object, the value of the RecordCount property decreases. Datensätze, die von anderen Benutzern gelöscht werden, werden allerdings erst von der RecordCount-Eigenschaft wiedergegeben, wenn der aktuelle Datensatz auf einem gelöschten Datensatz positioniert wird. Wenn Sie eine Transaktion ausführen, die sich auf die Einstellung der RecordCount-Eigenschaft auswirkt und Sie dann ein Rollback für die Transaktion ausführen, gibt die RecordCount-Eigenschaft nicht die tatsächliche Anzahl verbleibender Datensätze wieder.
Die RecordCount-Eigenschaft eines Recordset-Objekts vom "snapshot"- oder "forward-only"-Typ ist nicht von den Änderungen in zugrunde liegenden Tabellen betroffen.
Ein Recordset- oder TableDef-Objekt ohne Datensätze hat eine RecordCount-Eigenschaftseinstellung von "0".
Bei der Verwendung der Requery -Methode für ein Recordset-Objekt wird die RecordCount-Eigenschaft zurückgesetzt, so als würde die Abfrage erneut ausgeführt.
Beispiel
Dieses Beispiel demonstriert die RecordCount-Eigenschaft mit verschiedenen Recordset-Typen vor und nach der Auffüllung.
Sub RecordCountX()
Dim dbsNorthwind As Database
Dim rstEmployees As Recordset
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
With dbsNorthwind
' Open table-type Recordset and show RecordCount
' property.
Set rstEmployees = .OpenRecordset("Employees")
Debug.Print _
"Table-type recordset from Employees table"
Debug.Print " RecordCount = " & _
rstEmployees.RecordCount
rstEmployees.Close
' Open dynaset-type Recordset and show RecordCount
' property before populating the Recordset.
Set rstEmployees = .OpenRecordset("Employees", _
dbOpenDynaset)
Debug.Print "Dynaset-type recordset " & _
"from Employees table before MoveLast"
Debug.Print " RecordCount = " & _
rstEmployees.RecordCount
' Show the RecordCount property after populating the
' Recordset.
rstEmployees.MoveLast
Debug.Print "Dynaset-type recordset " & _
"from Employees table after MoveLast"
Debug.Print " RecordCount = " & _
rstEmployees.RecordCount
rstEmployees.Close
' Open snapshot-type Recordset and show RecordCount
' property before populating the Recordset.
Set rstEmployees = .OpenRecordset("Employees", _
dbOpenSnapshot)
Debug.Print "Snapshot-type recordset " & _
"from Employees table before MoveLast"
Debug.Print " RecordCount = " & _
rstEmployees.RecordCount
' Show the RecordCount property after populating the
' Recordset.
rstEmployees.MoveLast
Debug.Print "Snapshot-type recordset " & _
"from Employees table after MoveLast"
Debug.Print " RecordCount = " & _
rstEmployees.RecordCount
rstEmployees.Close
' Open forward-only-type Recordset and show
' RecordCount property before populating the
' Recordset.
Set rstEmployees = .OpenRecordset("Employees", _
dbOpenForwardOnly)
Debug.Print "Forward-only-type recordset " & _
"from Employees table before MoveLast"
Debug.Print " RecordCount = " & _
rstEmployees.RecordCount
' Show the RecordCount property after calling the
' MoveNext method.
rstEmployees.MoveNext
Debug.Print "Forward-only-type recordset " & _
"from Employees table after MoveNext"
Debug.Print " RecordCount = " & _
rstEmployees.RecordCount
rstEmployees.Close
.Close
End With
End Sub