Compartir a través de


Propiedad Recordset.RecordCount (DAO)

Se aplica a: Access 2013, Office 2013

Devuelve el número de registros a los que se accede en un objeto Recordset o el número total de registros de un objeto Recordset de tipo tabla. o objeto TableDef . Long de sólo lectura.

Sintaxis

expresión . RecordCount

expresión Variable que representa un objeto Recordset.

Comentarios

Use la propiedad RecordCount para averiguar a cuántos registros en un objeto Recordset o TableDef se obtuvo acceso. La propiedad RecordCount no indica cuántos registros contiene un objeto de tipo dynaset, snapshot, o forward–only Recordset hasta que se obtenga acceso a todos los registros. Una vez que se obtiene acceso al último registro, la propiedad RecordCount indica el número total de registros no eliminados en el objeto Recordset o TableDef. Para obligar el acceso al último registro, use el método MoveLast en el objeto Recordset. También puede usar una función Count de SQL para determinar el número aproximado de registros que devolverá su consulta.

Nota:

[!NOTA] El uso del método MoveLast para rellenar un Recordset recién abierto afecta negativamente al rendimiento. A menos que sea necesario tener un RecordCount preciso tan pronto como se abra un Recordset, es preferible esperar hasta que se rellene el Recordset con otras partes del código antes de comprobar la propiedad RecordCount.

Como su aplicación elimina registros en un objeto Recordset de tipo Dynaset, el valor de la propiedad RecordCount se reduce. Sin embargo, los registros eliminados por otros usuarios no los refleja la propiedad RecordCount hasta que el registro actual se coloca en un registro eliminado. Si ejecuta una transacción que afecta a la configuración de propiedad RecordCount y luego revierte la transacción, la propiedad RecordCount no reflejará el verdadero número de registros restantes.

La propiedad RecordCount de un objeto Recordset de tipo snapshot o forward–only no queda afectada por los cambios de las tablas subyacentes.

Un objeto Recordset o TableDef sin registros tiene una configuración de propiedad RecordCount de 0.

Al usar el método Requery en un objeto Recordset, se restablece la propiedad RecordCount de la misma manera que si se volviera a ejecutar la consulta.

Ejemplo

Este ejemplo demuestra la propiedad RecordCount con tipos diferentes de Recordsets antes y después de que se completen.

    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