Свойство Form.RecordsetClone (Access)

Используйте свойство RecordsetClone для ссылки на объект Recordset формы, заданный свойством RecordSource формы. Только для чтения.

Синтаксис

expression. RecordsetClone

выражение: переменная, представляющая объект Form.

Замечания

Параметр свойства RecordsetClone представляет собой копию базового запроса или таблицы, указанной свойством RecordSource формы. Например, если форма основана на запросе, ссылка на свойство RecordsetClone эквивалентна клонирование объекта Recordset с помощью того же запроса. Если затем применить фильтр к форме, объект Recordset будет отражать фильтрацию.

Это свойство доступно только с помощью Visual Basic и доступно только для чтения во всех представлениях.

Свойство RecordsetClone используется для навигации или работы с записями формы независимо от самой формы. Например, свойство RecordsetClone можно использовать, если требуется использовать метод, например метод DAO Find , который нельзя использовать с формами.

При открытии нового объекта Recordset его первой записью является текущая запись. Если вы используете один из методов Find или Один из методов Move , чтобы сделать любую другую запись в объекте Recordset текущей, необходимо синхронизировать текущую запись в объекте Recordset с текущей записью формы, назначив значение свойства DAO Bookmark свойству Bookmark формы.

Пример

В следующем примере свойство RecordsetClone используется для создания нового клона объекта Recordset из формы Orders , а затем выводит имена полей в окне Интерпретация.

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

В следующем примере свойство RecordsetClone и объект Recordset используются для синхронизации записи набора записей с текущей записью формы. Если в поле со списком выбрано название компании, метод FindFirst используется для поиска записи для этой компании, а свойство DAO Bookmark объекта Recordset присваивается свойству Bookmark формы, что приводит к отображению найденной записи в форме.

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

Используйте свойство RecordCount для подсчета количества записей в объекте Recordset . В следующем примере показано, как объединить свойства RecordCount и RecordsetClone для подсчета записей в форме.

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

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.