Compartilhar via


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