Propiedad Form.RecordsetClone (Access)

Utilice la propiedad RecordsetClone para hacer referencia al objeto Recordset de un formulario especificado por la propiedad RecordSource del formulario. Solo lectura.

Sintaxis

expresión. RecordsetClone

expresión Variable que representa un objeto Form.

Comentarios

El valor de la propiedad RecordsetClone es una copia de la consulta o tabla base especificada por la propiedad RecordSource del formulario. Si un formulario está basado en una consulta, por ejemplo, hacer referencia a la propiedad RecordsetClone es equivalente a copiar un objeto Recordset usando la misma consulta. Si luego se aplica un filtro al formulario, el objeto Recordset refleja el filtrado.

Esta propiedad solo está disponible si se utiliza Visual Basic y es de solo lectura en todas las vistas.

La propiedad RecordsetClone se usa para navegar u operar en los registros de un formulario independientemente del formulario en sí. Por ejemplo, puede usar la propiedad RecordsetClone cuando desee usar un método, como el método Find de DAO, que no se puede usar con formularios.

Cuando se abre un nuevo objeto Recordset, su primer registro es el registro actual. Si usa uno de los métodos Find o uno de los métodos Move para realizar cualquier otro registro en el objeto Recordset actual, debe sincronizar el registro actual del objeto Recordset con el registro actual del formulario mediante la asignación del valor de la propiedad Bookmark de DAO a la propiedad Bookmark del formulario.

Ejemplo:

En el ejemplo siguiente se usa la propiedad RecordsetClone para crear un nuevo clon del objeto Recordset a partir del formulario Orders y, a continuación, se imprimen los nombres de los campos en la ventana Inmediato.

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

En el ejemplo siguiente se usa la propiedad RecordsetClone y el objeto Recordset para sincronizar un registro del conjunto de registros con el registro actual del formulario. Cuando se selecciona un nombre de empresa de un cuadro combinado, el método FindFirst se usa para buscar el registro de esa empresa y la propiedad Bookmark dao del objeto Recordset se asigna a la propiedad Bookmark del formulario, lo que hace que el formulario muestre el registro encontrado.

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

Utilice la propiedad RecordCount para contar el número de registros de un objeto Recordset . En el ejemplo siguiente se muestra cómo combinar la propiedad RecordCount y la propiedad RecordsetClone para contar los registros de un formulario.

Forms!Orders.RecordsetClone.MoveLast 
MsgBox "My form contains " _ 
    & Forms!Orders.RecordsetClone.RecordCount _ 
    & " records.", vbInformation, "Record Count"

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.