Share via


Form.RecordsetClone Property

Access Developer Reference

You can use the RecordsetClone property to refer to a form's Recordset object specified by the form's RecordSource property. Read-only.

Syntax

expression.RecordsetClone

expression   A variable that represents a Form object.

Remarks

The RecordsetClone property setting is a copy of the underlying query or table specified by the form's RecordSource property. If a form is based on a query, for example, referring to the RecordsetClone property is the equivalent of cloning a Recordset object by using the same query. If you then apply a filter to the form, the Recordset object reflects the filtering.

This property is available only by using Visual Basic and is read-only in all views.

You use the RecordsetClone property to navigate or operate on a form's records independent of the form itself. For example, you can use the RecordsetClone property when you want to use a method, such as the DAO Find methods, that can't be used with forms.

When a new Recordset object is opened, its first record is the current record. If you one of the Find method or one of the Move methods to make any other record in the Recordset object current, you must synchronize the current record in the Recordset object with the form's current record by assigning the value of the DAO Bookmark property to the form's Bookmark property.

Example

The following example uses the RecordsetClone property to create a new clone of the Recordset object from the Orders form and then prints the names of the fields in the Immediate window.

Visual Basic for Applications
  Sub Print_Field_Names()
    Dim rst As Recordset, intI As Integer
    Dim fld As Field
Set rst = Me.<strong class="bterm">RecordsetClone</strong>
For Each fld in rst.Fields
    ' Print field names.
    Debug.Print fld.Name
Next

End Sub

The next example uses the RecordsetClone property and the Recordset object to synchronize a recordset's record with the form's current record. When a company name is selected from a combo box, the FindFirst method is used to locate the record for that company and the Recordset object's DAO Bookmark property is assigned to the form's Bookmark property, causing the form to display the found record.

Visual Basic for Applications
  Sub SupplierID_AfterUpdate()
    Dim rst As Recordset
    Dim strSearchName As String
Set rst = Me.<strong class="bterm">RecordsetClone</strong>
strSearchName = Str(Me!SupplierID)
rst.FindFirst "SupplierID = " &amp; strSearchName
    If rst.NoMatch Then
        MsgBox "Record not found"
    Else
        Me.Bookmark = rst.Bookmark
    End If
rst.Close

End Sub

You can use the RecordCount property to count the number of records in a Recordset object. The following example shows how you can combine the RecordCount property and the RecordsetClone property to count the records in a form:

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

See Also