Propriedade Recordset

Importante :  Este artigo foi traduzido por um sistema de tradução automática, leia o aviso de isenção de responsabilidade. Para sua referência, veja a versão em inglês deste artigo aqui.

Aplicável a

Objeto de caixa de combinação

Objeto de formulário

Objeto de caixa de listagem

Objeto de relatório

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

expressão. Conjunto de registros

expressão Necessário. Uma expressão que retorna um dos objetos na lista Aplica-se a.

Comentários

A propriedade Recordset retorna o objeto recordset que fornece os dados que estão sendo procurados em um formulário, relatório, controle de caixa de listagem ou controle caixa de combinação. Se um formulário for baseado em uma consulta, por exemplo, fazendo referência à propriedade Recordset é o equivalente de clonagem um objeto Recordset usando a mesma consulta. No entanto, ao contrário usando a propriedade RecordsetClone , alterar o registro atual no conjunto de registros retornado pela propriedade Recordset do formulário também define o registro atual do formulário.

Essa propriedade está disponível somente por usando o Visual Basic para código Applications (VBA).

O comportamento de leitura/gravação da propriedade Recordset é determinado pelo tipo de registros (ADO ou DAO) e o tipo de dados (Access ou SQL) contidos no conjunto de registros identificado pela propriedade.

Conjunto de registros 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 vincula o formulário ao conjunto de registros, definindo a propriedade Recordset do formulário para o 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 para um conjunto comum de dados. 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 diretamente sem suporte em formulários. Por exemplo, você pode usar a propriedade Recordset com o ADO Localizar ou DAO encontrar métodos em uma caixa de diálogo personalizada para localizar um registro.

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

Alterar uma propriedade Recordset também pode alterar as propriedades de RecordSource, RecordsetTypee RecordLocks . Além disso, algumas propriedades relacionadas a dados podem ser substituídas por exemplo, o filtro, FilterOn, OrderBye herdados .

Chamar o método Repetir a consulta de conjunto de registros de um formulário (por exemplo, Forms(0).Recordset.Requery) pode causar o formulário não associado. Para atualizar os dados em um formulário vinculado a um conjunto de registros, defina a propriedade RecordSource do formulário para si mesmo (Forms(0).RecordSource = Forms(0).RecordSource).

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

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 de depuração.

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 próximo exemplo utiliza a propriedade Recordset e o objeto Recordset para sincronizar um conjunto de registros com o registro do formulário atual. Quando um nome de empresa é selecionado de uma caixa de combinação, o método FindFirst é usado para localizar o registro dessa empresa, fazendo com que o formulário exiba o registro encontrado.

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 qual tipo de recordset é retornado pela propriedade Recordset em diferentes condições.

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

Observação : Aviso de Isenção de Tradução Automática: Este artigo foi traduzido por computador, sem intervenção humana. A Microsoft oferece essas traduções automáticas para ajudar as pessoas que não falam inglês a aproveitar os textos escritos sobre produtos, serviços e tecnologias da Microsoft. Como este artigo foi traduzido automaticamente, é possível que contenha erros de vocabulário, sintaxe ou gramática.

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.

×