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.
Devolve ou define o objeto Conjunto de Registos ADO ou Conjunto de Registos DAO que representa a origem de registos do objeto especificado. Object de leitura/gravação.
Sintaxe
expressão. Conjunto de registos
expressão Uma variável que representa um objeto ComboBox .
Comentários
A propriedade Conjunto de registos devolve o objeto Conjunto de registos que fornece os dados que estão a ser navegados num formulário, relatório, controlo de caixa de listagem ou controlo de caixa de combinação. Se um formulário for baseado em uma consulta, por exemplo, referindo-se a propriedade Recordset é o equivalente a clonagem de um objeto Recordset usando a mesma consulta. No entanto, ao contrário de usar a propriedade RecordsetClone, alterar o registro atual no recordset retornado pela propriedade Recordset do formulário também define o registro atual do formulário.
O comportamento de leitura/gravação da propriedade Recordset é determinado pelo tipo de conjunto de registros (ADO ou DAO) e o tipo de dados (Access ou SQL) contidos no conjunto de registros identificado pela propriedade.
| Tipo do conjunto de registros | Baseado em dados SQL (Structure Query Language, linguagem de consulta estruturada) | Baseado em dados armazenados pelo mecanismo de banco de 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 recordset e vincula o formulário ao conjunto de registros, definindo a propriedade Recordset do formulário como o objeto Recordset recentemente criado.
Global rstSuppliers As ADODB.Recordset
Sub MakeRW()
DoCmd.OpenForm "Suppliers"
Set rstSuppliers = New ADODB.Recordset
rstSuppliers.CursorLocation = adUseClient
rstSuppliers.Open "Select * From Suppliers", _
CurrentProject.Connection, adOpenKeyset, adLockOptimistic
Set Forms("Suppliers").Recordset = rstSuppliers
End Sub
Utilize a propriedade Conjunto de registos para:
Utilize métodos com o objeto Conjunto de registos que não são suportados diretamente em formulários. Por exemplo, você pode usar a propriedade Recordset com o ADO Localizar ou métodos Localizar do DAO em uma caixa de diálogo personalizada para localizar um registro.
Encapsular uma transação (que pode ser revertida) em torno de um conjunto de edições que afetam vários formulários.
Alterando 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, o filtro, FiltroAtivado, OrderBy e OrderByOn propriedades.
Chamar o método Requery do conjunto de registros de um formulário (por exemplo,
Forms(0).Recordset.Requery) pode causar o formulário para se tornar não acoplado. Para atualizar os dados num formulário vinculado a um conjunto de registos, defina a propriedade OrigemDosRegistos do formulário para o próprio:Forms(0).RecordSource = Forms(0).RecordSource.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
Observação
Quando um formulário está vinculado a um conjunto de registos, ocorre um erro se utilizar o comando Filtrar por 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 contidos na janela 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 exemplo seguinte utiliza a propriedade Conjunto de registos e o objeto Conjunto de registos para sincronizar um conjunto de registos com o registo atual do formulário. 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 que 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
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.