6. Добавление, изменение и удаление записей
В модели DAO для изменения текущей записи используется метод Edit объекта Recordset, производятся нужные изменения и затем вызывается метод Update для сохранения изменений. Соответствующий пример приведен в листинге 4.
Листинг 4.
' Изменение записи в таблице "Предметы"
Sub Str()
Dim Db As Database, rs As Recordset
Set Db = CurrentDb
Set rs = Db.OpenRecordset("Предметы", dbOpenTable)
rs.MoveFirst
Do Until rs.EOF
If rs.Fields("Название") = "Физика" Then
rs.Edit
rs.Fields("Название") = "Электродинамика"
rs.Update
End If
rs.MoveNext
Loop
rs.Close
Db.Close
End Sub
Добавление новой записи осуществляется с помощью метода AddNew объекта Recordset. Далее присваиваются значения всем или обязательным полям и методом Update сохраняются данные. Пример программы представлен в листинге 5.
Листинг 5.
' Добавление новой записи с помощью метода AddNew
Sub CreateNewRecord()
Dim dbs As Database, rstCourse As Recordset
' Открытие базы данных
Set dbs = CurrentDb
'Создание переменной типа Recordset (набор записей), представляющей таблицу
Set rstCourse = dbs.OpenRecordset("Предметы", dbOpenTable)
' Создание новой записи
rstCourse.AddNew
' Ввод значений в поля
rstCourse!Название = "Философия"
rstCourse!Преподаватель = "Семенов А.С."
' Сохранение новой записи методом Update
rstCourse.Update
dbs.Close
End Sub
Удаление текущей записи производится методом Delete. Удаляемую запись нужно сделать текущей. Пример:
Листинг 6.
' Пример удаления записи из таблицы
Sub DeleteRecord()
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("Предметы", dbOpenTable)
Do Until rs.EOF
If rs.Fields("Код предмета") = 6 Then
rs.Delete
End If
Loop
End Sub