Описание
Объекты Recordset — метод удаляет текущую запись в
обновляемом объекте Recordset. В рабочей области ODBCDirect тип
драйвера определяет, являются ли объекты Recordset обновляемыми и, как
следствие, поддерживают ли они метод Delete.
Семейства — Метод удаляет
постоянный объект из семейства.
наборЗаписей.Delete семейство.Delete имяОбъекта
Параметры
наборЗаписей Объектная переменная, представляющая
обновляемый объект Recordset, содержащий удаляемую
запись.
семейство
Объектная переменная, представляющая семейство,
из которого удаляется имяОбъекта.
имяОбъекта
Выражение или
переменная типа String, представляющая значение свойства Name
объекта в семействе.
Замечания
Метод Delete позволяет удалить постоянный объект. Однако
в семействах Databases, Recordsets или Workspaces (каждое
из которых сохраняется только в оперативной памяти) удаление открытого или
активного объекта допускается только после закрытия этого объекта с помощью
метода Close.
Удаление сохраненного объекта происходит немедленно,
однако, при этом следует вызвать метод Refresh для обновления всех других
семейств, на которые может повлиять изменение структуры базы данных.
При
удалении объекта TableDef из семейства TableDefs происходит
удаление как описания таблицы, так и всех данных в этой таблице.
Пример
Следующая программа использует метод Delete для удаления
указанной записи из объекта Recordset. Для выполнения этой процедуры
требуется процедура DeleteRecord.
Sub DeleteX()
Dim dbsNorthwind As Database
Dim rstEmployees As Recordset
Dim lngID As Long
Set dbsNorthwind = OpenDatabase("Борей.mdb")
Set rstEmployees = dbsNorthwind.OpenRecordset("Сотрудники")
' Добавляет временную запись, которая будет удалена.
With rstEmployees
.Index = "PrimaryKey"
.AddNew
!Имя = "Вова"
!Фамилия = "Сидоров"
.Update
.Bookmark = .LastModified
lngID = !КодСотрудника
End With
' Удаляет запись о сотруднике с указанным кодом.
DeleteRecord rstEmployees, lngID
rstEmployees.Close
dbsNorthwind.Close
End Sub
Sub DeleteRecord(rstTemp As Recordset, lngSeek As Long)
With rstTemp
.Seek "=", lngSeek
If .NoMatch Then
MsgBox "Нет сотрудника с кодом #" & lngSeek & " в файле!"
Else
.Delete
MsgBox "Запись для сотрудника #" & lngSeek & " удалена!"
End If
End With
End Sub