Iniciar sesión con Microsoft
Iniciar sesión o crear una cuenta
Hola:
Seleccione una cuenta diferente.
Tiene varias cuentas
Elija la cuenta con la que desea iniciar sesión.

Se aplica a

Objeto ComboBox

Objeto Form

Objeto ListBox

Objeto Report

Devuelve o establece el objeto Recordset de ADO o Recordset de DAO que representa el origen de registros para el formulario, informe, control de cuadro de lista o control de cuadro combinado especificado. Lectura y escritura.

expresión.Recordset

expresión Requerido. Una expresión que devuelve uno de los objetos de la lista Se aplica a.

Observaciones

La propiedad Recordset devuelve el objeto de conjunto de registros que proporciona los datos que se buscan en un formulario, informe, control de cuadro de lista o control de cuadro combinado. Si un formulario se basa en una consulta, por ejemplo, hacer referencia a la propiedad Recordset es equivalente a copiar un objeto Recordset mediante la misma consulta. Pero a diferencia de la propiedad RecordsetClone, cambiar el registro actual en el conjunto de registros devuelto por la propiedad Recordset del formulario también establece el registro actual del formulario.

Esta propiedad solo está disponible al usar código de Visual Basic para Aplicaciones (VBA).

El comportamiento de lectura y escritura de la propiedad Recordset está determinado por el tipo de registros (ADO o DAO) y el tipo de datos (Access o SQL) contenidos en el conjunto de registros identificado por la propiedad.

Tipo de conjunto de registros

Basado en datos SQL

Basado en datos de Access

ADO

Lectura y escritura

Lectura y escritura

DAO

N/D

Lectura y escritura

En el ejemplo siguiente se abre un formulario, se abre un conjunto de registros y, después, se enlaza el formulario al conjunto de registros estableciendo la propiedad Recordset del formulario en el objeto Recordset recién creado.

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 la propiedad Recordset:

  • Para enlazar varios formularios a un conjunto de datos común. Esto permite la sincronización de varios formularios. Por ejemplo,

    Set Me.Recordset = Forms!Form1.Recordset

  • Para usar métodos con el objeto Recordset que no se admiten directamente en formularios. Por ejemplo, puede usar la propiedad Recordset con los métodos Find de ADO o Find de DAO en un cuadro de diálogo personalizado para buscar un registro.

  • Para encapsular una transacción (que se puede deshacer) en un conjunto de cambios que afectan a varios formularios.

Cambiar la propiedad Recordset de un formulario también puede cambiar las propiedades RecordSource, RecordsetType y RecordLocks. Además, algunas propiedades relacionadas con los datos se pueden invalidar, por ejemplo, las propiedades Filter, FilterOn, OrderBy y OrderByOn.

Llamar al método Requery del conjunto de registros de un formulario (por ejemplo, Forms(0).Recordset.Requery) puede hacer que esté sin enlazar. Para actualizar los datos de un formulario enlazado a un conjunto de registros, establezca la propiedad RecordSource del formulario en sí misma (Forms(0).RecordSource = Forms(0).RecordSource).

Cuando un formulario está enlazado a un conjunto de registros, se produce un error si usa el comando Filtro por formulario.

Ejemplo

En el ejemplo siguiente se usa la propiedad Recordset para crear una copia del objeto Recordset desde el formulario actual y luego se imprimen los nombres de los campos en la ventana de depuración.

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

En el ejemplo siguiente se usa la propiedad Recordset y el objeto Recordset para sincronizar un conjunto de registros con el registro actual del formulario. Cuando se selecciona un nombre de empresa en un cuadro combinado, se usa el método FindFirst para buscar el registro de esa empresa, lo que hace que el formulario muestre el 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

El código siguiente le ayudará a determinar qué tipo de conjunto de registros devuelve la propiedad Recordset en diferentes condiciones.

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

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.

Las comunidades le ayudan a formular y responder preguntas, enviar comentarios y leer a expertos con conocimientos extensos.

¿Le ha sido útil esta información?

¿Cuál es tu grado de satisfacción con la calidad del lenguaje?
¿Qué ha afectado a su experiencia?
Si presiona Enviar, sus comentarios se usarán para mejorar los productos y servicios de Microsoft. El administrador de TI podrá recopilar estos datos. Declaración de privacidad.

¡Gracias por sus comentarios!

×