Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Talvez você queira saber o número de registros em um objeto Recordset . Por exemplo, talvez você queira criar um formulário que mostre quantos registros há em cada uma das tabelas de um banco de dados. Ou talvez queira alterar a aparência de um formulário ou relatório com base no número de registros nele contido.
A propriedade RecordCount contém o número de registros em um Recordset do tipo tabela ou o número total de registros acessados em um conjunto de dados ou conjunto de instantâneos recordset. Um objeto Recordset sem registros tem o valor da propriedade RecordCount igual a 0.
Observação
O valor da propriedade RecordCount é igual ao número de registros que foram realmente acessados. Por exemplo, quando você cria um dynaset ou instantâneo pela primeira vez, acessa (ou visita) apenas um registro. Se você verificar a propriedade RecordCount imediatamente depois de criar o dynaset ou instantâneo (pressupondo que ele tenha pelo menos um registro), o valor será 1. Para visitar todos os registros, use o método MoveLast imediatamente após abrir o Recordset e use MoveFirst para retornar ao primeiro registro. Isso não é feito automaticamente porque pode ser lento, especialmente em grandes conjuntos de resultados.
Ao abrir um Recordset do tipo tabela, você visita efetivamente todos os registros da tabela de base e o valor da propriedade RecordCount será igual ao número de registros da tabela, desde que o Recordset esteja aberto.
Transações canceladas podem tornar desatualizado o valor da propriedade RecordCount em algumas situações de vários usuários. Compactar o banco de dados restaura o valor correto da contagem de registros da tabela.
O exemplo de código a seguir cria um objeto Recordset do tipo instantâneo e determina o número de registros contidos em Recordset.
Function FindRecordCount(strSQL As String) As Long
Dim dbsNorthwind As DAO.Database
Dim rstRecords As DAO.Recordset
On Error GoTo ErrorHandler
Set dbsNorthwind = CurrentDb
Set rstRecords = dbsNorthwind.OpenRecordset(strSQL)
If rstRecords.EOF Then
FindRecordCount = 0
Else
rstRecords.MoveLast
FindRecordCount = rstRecords.RecordCount
End If
rstRecords.Close
dbsNorthwind.Close
Set rstRecords = Nothing
Set dbsNorthwind = Nothing
Exit Function
ErrorHandler:
MsgBox "Error #: " & Err.Number & vbCrLf & vbCrLf & Err.Description
End Function
À medida que o aplicativo exclui registros do Recordset do tipo instantâneo, o valor da propriedade RecordCount diminui. No entanto, em um ambiente de vários usuários, os registros excluídos por outros usuários não são refletidos no valor da propriedade RecordCount até o registro atual estar posicionado em um registro excluído. Nesse momento, a configuração da propriedade RecordCount diminui um.
Usar o método Requery em um Recordset, seguido pelo método MoveLast, define a propriedade RecordCount como o número total atual de registros no Recordset.
Um objeto Recordset do tipo instantâneo é estático e o valor da propriedade RecordCount não muda quando você adiciona ou exclui registros na tabela de base do instantâneo.
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.