Поделиться через


Метод клонирования (ADO)

Область применения: Access 2013, Office 2013

Создает повторяющийся объект Recordset из существующего объекта Recordset . При необходимости указывает, что клон будет доступен только для чтения.

Синтаксис

ЗадайтеrstDuplicate = rstOriginal. Клонирование (LockType)

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

Возвращает ссылку на объект Recordset .

Параметры

Параметр Описание
rstDuplicate Переменная объекта, идентифицирующая создаваемый повторяющийся объект Recordset .
rstOriginal Переменная объекта, которая определяет дублируемый объект Recordset .
LockType Необязательный параметр. Значение LockTypeEnum , указывающее тип блокировки исходного набора записей или набор записей только для чтения. Допустимые значения: adLockUnspecified или adLockReadOnly.

Замечания

Метод Clone используется для создания нескольких повторяющихся объектов Recordset , особенно если требуется сохранить несколько текущих записей в заданном наборе записей. Использование метода Clone эффективнее, чем создание и открытие нового объекта Recordset с тем же определением, что и исходный.

Свойство Filter исходного набора записей, если оно есть, не будет применено к клону. Задайте свойство Filter нового набора записей , чтобы отфильтровать результаты. Самый простой способ скопировать любое существующее значение фильтра — назначить его напрямую, как показано ниже.

Для текущей записи только что созданного клона устанавливается первая запись.

Изменения, внесенные в один объект Recordset, видны во всех его клонах независимо от типа курсора. Однако после выполнения запроса в исходном наборе записей клоны больше не будут синхронизированы с исходным.

При закрытии исходного набора записей не закрываются его копии, а также не закрываются исходные или другие копии.

Клонировать можно только объект Recordset , поддерживающий закладки. Значения закладок являются взаимозаменяемыми; то есть ссылка на закладку из одного объекта Recordset ссылается на одну и ту же запись в любом из ее клонов.

Некоторые события набора записей , которые активируются, также срабатывают во всех клонах Recordset . Однако, поскольку текущая запись может отличаться в клонированных наборах записей, события могут быть недопустимыми для клона.

Например, если изменить значение поля, событие WillChangeField будет происходить в измененном наборе записей и во всех клонах. Параметр Fields события WillChangeField клонированного набора записей (где изменение не было внесено) будет просто ссылаться на поля текущей записи клона, которые могут отличаться от текущей записи исходного набора записей, в котором произошло изменение.

В следующей таблице приведен полный список всех событий Recordset и указано, являются ли они допустимыми и активируются для клонов набора записей, созданных с помощью метода Clone .

Событие

Активируется в клонах?

EndOfRecordset

Нет

FetchComplete

Нет

FetchProgres

Нет

FieldChangeComplete

Да

MoveComplete

Нет

RecordChangeComplete

Да

RecordsetChangeComplete

Нет

WillChangeField

Да

WillChangeRecord

Да

WillChangeRecordset

Нет

WillMove

Нет