Propriedade Recordset

Aplica-se a

Objeto ComboBox

Objeto Form

Objeto ListBox

Objeto Report

Retorna ou define o objeto Recordset de ADO ou Recordset de DAO que representa o fonte de registro para o formulário especificado, relatório, controle de caixa de listagem ou controle de caixa de combinação. Leitura/gravação.

expressão.Recordset

expressão Obrigatória. Uma expressão que retorna um dos objetos na lista Aplica-se a.

Comentários

A propriedade Recordset retorna o objeto de conjunto de registros que fornece os dados apresentados em um formulário, relatório, controle de caixa de listagem ou controle de caixa de combinação. Se um formulário for baseado em uma consulta, por exemplo, a referência para a propriedade Recordset será equivalente a clonar um objeto Recordset usando a mesma consulta. No entanto, ao contrário de usar a propriedade RecordsetClone, alterar qual registro é o atual no conjunto de registros retornados pela propriedade Recordset do formulário também configurará o registro atual do formulário.

Essa propriedade só está disponível apenas usando o código do Visual Basic for Applications (VBA)

O comportamento de somente leitura da propriedade Recordset é determinado pelo tipo de conjunto de registros (ADO ou DAO) e o tipo de dados (Access ou SQL) presentes no conjunto de registros identificado pela propriedade.

Recordset tipo

Com base em dados do SQL

Com base em dados do Access

ADO

Leitura/gravação

Leitura/gravação

DAO

N/D

Leitura/gravação

O exemplo a seguir abre um formulário, abre um conjunto de registros e associa o formulário ao conjunto de registros configurando a propriedade Recordset do formulário ao objeto Recordset recém-criado.

Global rstSuppliers As ADODB.RecordsetSub MakeRW()DoCmd.OpenForm "Suppliers"Set rstSuppliers = New ADODB.RecordsetrstSuppliers.CursorLocation = adUseClientrstSuppliers.Open "Select * From Suppliers", _CurrentProject.Connection, adOpenKeyset, adLockOptimisticSet Forms("Suppliers").Recordset = rstSuppliersEnd Sub

Use a propriedade Recordset:

  • Para vincular vários formulários a um conjunto de dados comum. Isso permite a sincronização de vários formulários. Por exemplo,

    Set Me.Recordset = Forms!Form1.Recordset

  • Para usar métodos com o objeto Recordset que não têm suporte diretamente em formulários. Por exemplo, você pode usar a propriedade Recordset com os métodos Find do ADO ou Find do DAO na caixa de diálogo personalizada para localizar um registro.

  • Para ajustar uma transação (que pode ser revertida) em torno de um conjunto de edições que afetam vários formulários.

Alterar a propriedade Recordset de um formulário também pode alterar as propriedades RecordSource, RecordsetType e RecordLocks. Além disso, algumas propriedades relacionadas a dados podem ser substituídas, por exemplo, as propriedades Filter, FilterOn, OrderBy e OrderByOn.

Chamar o método Requery do conjunto de registros de um formulário (por exemplo, Forms(0).Recordset.Requery) pode fazer o formulário perder a associação. Para atualizar os dados em um formulário associado a um conjunto de registros, configure a propriedade RecordSource do formulário para si mesma (Forms(0).RecordSource = Forms(0).RecordSource).

Quando um formulário está associado a um conjunto de registros, um erro ocorrerá se você usar o comando de formulário Filtrar por.

Exemplo

O exemplo a seguir usa a propriedade Recordset para criar uma nova cópia do objeto Recordset do formulário atual e imprime os nomes dos campos na janela Depurar.

Sub Print_Field_Names()
Dim rst As DAO.Recordset, intI As Integer
Dim fld As Field
Set rst = Me.Recordset
For Each fld in rst.Fields
' Print field names.
Debug.Print fld.Name
Next
End Sub

O exemplo a seguir usa a propriedade Recordset e o objeto Recordset para sincronizar um conjunto de registros com o registro atual do formulário. Quando um nome de empresa é selecionado na caixa de combinação, o método FindFirst é usado para localizar o registro da empresa, fazendo o formulário exibir o registro localizado.

Sub SupplierID_AfterUpdate()
Dim rst As DAO.Recordset
Dim strSearchName As String
Set rst = Me.Recordset
strSearchName = CStr(Me!SupplierID)
rst.FindFirst "SupplierID = " & strSearchName
If rst.NoMatch Then
MsgBox "Record not found"
End If
rst.Close
End Sub

O código a seguir ajuda a determinar o tipo de conjunto de registros retornado pela propriedade Recordset em condições diferentes.

Sub CheckRSType()
Dim rs as Object
Set rs=Forms(0).Recordset
If TypeOf rs Is DAO.Recordset Then
MsgBox "DAO Recordset"
ElseIf TypeOf rs is ADODB.Recordset Then
MsgBox "ADO Recordset"
End If
End Sub
Expanda suas habilidades
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Office Insider

Essas informações foram úteis?

Obrigado por seus comentários!

Agradecemos pelos seus comentários! Parece que pode ser útil conectar você a um de nossos agentes de suporte do Office.

×