Propriedade Recordset2.RecordCount (DAO)
Aplica-se ao: Access 2013, Office 2013
Retorna o número de registros acessados em um objeto Recordset ou o número total de registros em um objeto Recordset do tipo tabela. ou objeto TableDef . Long somente leitura.
Sintaxe
expressão .RecordCount
Expressão Uma variável que representa um objeto Recordset2 .
Comentários
Use a propriedade RecordCount para descobrir quantos registros de um objeto Recordset ou TableDef foram acessados. A propriedade RecordCount não indica quantos registros foram contidos em um objeto Recordset do tipo dynaset, instantâneo ou somente encaminhamento até que todos os registros tenham sido acessados. Assim que o último registro tiver sido acessado, a propriedade RecordCount indicará o número total de registros não excluídos no objeto Recordset ou TableDef. Para forçar o acesso ao último registro, use o método MoveLast no objeto Recordset. Além disso, é possível usar a função Count SQL para determinar o número de registros aproximado que a consulta retornará.
Observação
[!OBSERVAçãO] O uso do método MoveLast para preencher um Recordset aberto recentemente causará impacto negativo no desempenho. A não ser que seja necessário ter um RecordCount preciso assim que você abrir um Recordset, é melhor aguardar até que o Recordset seja preenchido com outras partes do código antes de verificar a propriedade RecordCount.
À medida que o aplicativo excluir os registros de um objeto Recordset do tipo dynaset, diminuirá o valor da propriedade RecordCount. No entanto, os registros excluídos por outros usuários não serão refletidos pela propriedade RecordCount até que o registro atual seja posicionado em um registro excluído. Se você executar uma transação que afete a configuração da propriedade RecordCount e se depois a transação for revertida, a propriedade RecordCount não afetará o número real de registros restantes.
A propriedade RecordCount de um objeto Recordset do tipo instantâneo ou somente encaminhamento não é afetado por alterações nas tabelas subjacentes.
Um objeto Recordset ou TableDef sem registros tem a propriedade RecordCount configurada como 0.
O uso do método Requery em um objeto Recordset redefine a propriedade RecordCount exatamente como se a consulta tivesse sido reexecutada.
Exemplo
Este exemplo demonstra a propriedade RecordCount com tipos diferentes de Recordsets antes e depois de preenchidos.
Sub RecordCountX()
Dim dbsNorthwind As Database
Dim rstEmployees As Recordset2
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