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


Метод Delete (Recordset в ADO)

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

Удаляет текущую запись или группу записей.

Синтаксис

набор записей. Удаление AffectRecords

Параметры

Параметр Описание
AffectRecords Значение AffectEnum , определяющее, сколько записей повлияет метод Delete . Значение по умолчанию — adAffectCurrent.

Примечание.

adAffectAll и adAffectAllChapters не являются допустимыми аргументами для удаления.

Замечания

С помощью метода Delete помечает текущую запись или группу записей в объекте Recordset для удаления. Если объект Recordset не разрешает удаление записей, возникает ошибка. Если вы находитесь в режиме немедленного обновления, удаление происходит в базе данных немедленно. Если запись не может быть успешно удалена (например, из-за нарушений целостности базы данных), она останется в режиме редактирования после вызова Update. Это означает, что необходимо отменить обновление с помощью CancelUpdate перед удалением текущей записи (например, с параметром Close, Move или NextRecordset).

Если вы находитесь в режиме пакетного обновления, записи помечаются для удаления из кэша, а фактическое удаление происходит при вызове метода UpdateBatch . (Используйте свойство Filter для просмотра удаленных записей.)

Получение значений полей из удаленной записи приводит к ошибке. После удаления текущей записи удаленная запись остается актуальной, пока вы не перейдете к другой записи. После удаления удаленной записи она становится недоступной.

При вложении удалений в транзакцию можно восстановить удаленные записи с помощью метода RollbackTrans . Если вы находитесь в режиме пакетного обновления, вы можете отменить ожидающее удаление или группу ожидающих удалений с помощью метода CancelBatch .

Если попытка удаления записей завершается сбоем из-за конфликта с базовыми данными (например, запись уже удалена другим пользователем), поставщик возвращает предупреждения в коллекцию Errors , но не останавливает выполнение программы. Ошибка во время выполнения возникает только при наличии конфликтов во всех запрошенных записях.

Если задано динамическое свойство Unique Table , а набор записей является результатом выполнения операции JOIN для нескольких таблиц, то метод Delete удалит только строки из таблицы с именем в свойстве Unique Table .