Метод Clone (ADO)Clone Method (ADO)

Создает дубликат объекта набора записей из существующего объекта набора записей .Creates a duplicate Recordset object from an existing Recordset object. При необходимости указывает, что клон доступен только для чтения.Optionally, specifies that the clone be read-only.

СинтаксисSyntax

  
Set rstDuplicate = rstOriginal.Clone (LockType)  

Возвращаемое значениеReturn Value

Возвращает ссылку на объект набора записей .Returns a Recordset object reference.

ПараметрыParameters

рстдупликатеrstDuplicate
Объектная переменная, идентифицирующая дубликат создаваемого объекта набора записей .An object variable that identifies the duplicate Recordset object to be created.

rstOriginalrstOriginal
Объектная переменная, определяющая объект набора записей для дублирования.An object variable that identifies the Recordset object to be duplicated.

LockTypeLockType
Необязательный элемент.Optional. Значение локктипинум , указывающее либо тип блокировки исходного набора записей, либо набор записейтолько для чтения.A LockTypeEnum value that specifies either the lock type of the original Recordset, or a read-only Recordset. Допустимые значения: адлоккунспеЦифиед или адлоккреадонли.Valid values are adLockUnspecified or adLockReadOnly.

RemarksRemarks

Используйте метод clone для создания нескольких повторяющихся объектов набора записей , особенно если требуется поддерживать более одной текущей записи в заданном наборе записей.Use the Clone method to create multiple, duplicate Recordset objects, especially if you want to maintain more than one current record in a given set of records. Использование метода clone является более эффективным, чем создание и открытие нового объекта набора записей , который использует то же определение, что и исходный.Using the Clone method is more efficient than creating and opening a new Recordset object that uses the same definition as the original.

Свойство Filter исходного набора записей, если таковое имеется, не будет применено к клону.The Filter property of the original Recordset, if any, will not be applied to the clone. Задайте свойство Filter для нового набора записей , чтобы отфильтровать результаты.Set the Filter property of the new Recordset to filter the results. Самый простой способ скопировать любое существующее значение фильтра — это назначить его напрямую, как показано ниже.The simplest way to copy any existing Filter value is to assign it directly, as follows.

rsNew.Filter = rsOriginal.Filter  

Текущей записи только что созданного клона присваивается первая запись.The current record of a newly created clone is set to the first record.

Изменения, вносимые в один объект набора записей , отображаются во всех его клонах независимо от типа курсора.Changes you make to one Recordset object are visible in all of its clones regardless of cursor type. Однако после выполнения инструкции Requery для исходного набора записейклоны больше не будут синхронизироваться с исходным.However, after you execute Requery on the original Recordset, the clones will no longer be synchronized to the original.

Закрытие исходного набора записей не приводит к закрытию его копий, а копирование не приводит к закрытию оригинала и других копий.Closing the original Recordset does not close its copies, nor does closing a copy close the original or any of the other copies.

Можно клонировать только объект набора записей , который поддерживает закладки.You can only clone a Recordset object that supports bookmarks. Значения закладок взаимозаменяемы; то есть ссылка на закладку из одного объекта Recordset ссылается на одну и ту же запись в любом из его клонов.Bookmark values are interchangeable; that is, a bookmark reference from one Recordset object refers to the same record in any of its clones.

Некоторые события набора записей , которые вызываются, также будут выполняться во всех клонах набора записей .Some Recordset events that are triggered will also occur in all Recordset clones. Однако поскольку текущая запись может отличаться между клонированными наборами записей, события могут быть недопустимыми для клона.However, because the current record can differ between cloned Recordsets, the events may not be valid for the clone. Например, при изменении значения поля в измененном наборе записей и во всех клонах будет возникать событие виллчанжефиелд .For example, if you change a value of a field, a WillChangeField event will occur in the changed Recordset and in all clones. Параметр Fields события Виллчанжефиелд клонированного набора записей (где изменение не было внесено) будет ссылаться на поля текущей записи клона, что может отличаться от текущей записи исходного набора записей , где произошло изменение.The Fields parameter of the WillChangeField event of a cloned Recordset (where the change was not made) will refer to the fields of the current record of the clone, which may be a different record than the current record of the original Recordset where the change occurred.

В следующей таблице приведен полный список всех событий набора записей .The following table provides a full listing of all Recordset events. Указывает, являются ли они допустимыми и запускаются для всех клонов набора записей, созданных с помощью метода clone .It indicates whether they are valid and triggered for any recordset clones generated by using the Clone method.

СобытиеEvent Активировано в клонах?Triggered in clones?
ендофрекордсетEndOfRecordset НетNo
FetchCompleteFetchComplete НетNo
фетчпрогрессFetchProgress НетNo
FieldChangeCompleteFieldChangeComplete ДаYes
мовекомплетеMoveComplete НетNo
RecordChangeCompleteRecordChangeComplete ДаYes
RecordsetChangeCompleteRecordsetChangeComplete НетNo
WillChangeFieldWillChangeField ДаYes
WillChangeRecordWillChangeRecord ДаYes
WillChangeRecordsetWillChangeRecordset НетNo
WillMoveWillMove НетNo

ПрименениеApplies To

Объект Recordset (ADO)Recordset Object (ADO)

См. такжеSee Also

Пример метода Clone (Visual Basic) Clone Method Example (VB)
Пример метода Clone (VBScript) Clone Method Example (VBScript)
Пример метода Clone (Visual C++)Clone Method Example (VC++)