1.Работа с объектами Recordset - добавление записей, перебор записей,
редактирование, поиск.
(Все примеры тестировались в MS Access 97, для того чтобы приведенный здесь код
работал Access 2000 или XP, необходимо включить в Visual Basic поддержку
Microsoft DAO 3.6 Object Library (Tools\References...))
Объекты Recordset в MS Access представляют собой удобное средство работы с таблицами из
модулей и модулей форм.
Пример: в БД существует таблица СОТРУДНИКИ с полями код_сотр, фио, паспорт;
создадим форму TEST для экспериментов с объектами Recordset, разместим на форме кнопку,
щелкнув правой кнопкой мыши по созданной кнопке выберем «Обработка событий…»,
при этом откроется окно модуля, для создания процедуры обработки события «Нажатие кнопки»:
Private Sub Кнопка0_Click()
End Sub
Напишем код, который добавит несколько записей, и затем выведем их на экран:
Private Sub Кнопка0_Click()
' Определяем переменные необходимые нам для работы
' DB – переменная для доступа к объектам нашей БД
' RS – переменная для работы с таблицами
Dim DB As Database, RS As Recordset, S As String
' DB будет использоваться для работы с объектами текущей БД
Set DB = CurrentDb
' RS будет использоваться для работы с таблицей "СОТРУДНИКИ"
Set RS = DB.OpenRecordset("СОТРУДНИКИ", dbOpenDynaset)
' добавление записи в таблицу
RS.AddNew
RS![фио] = "Бочкарев А. Н."
RS![паспорт] = "03 01 423748, 12.12.01, ПВС УВД Прикуб. округа к. Краснодара"
RS.Update
' добавление записи в таблицу
RS.AddNew
RS![фио] = "Солодов В. И."
RS![паспорт] = "44 03 542189, 10.10.02, ПВС УВД Западного округа к. Москва"
RS.Update
' добавление записи в таблицу
RS.AddNew
RS![фио] = "Таранов И."
RS![паспорт] = "00 00 215478, 31.01.00"
RS.Update
' поиск ПЕРВОЙ записи в которой поле "фио" содержит подстроку "нов"
RS.FindFirst "[фио] like '*нов*'"
' редактирование найденной записи
If Not RS.NoMatch Then ' если запись, удовлетворяющая условию найдена
RS.Edit
RS![паспорт] = "00 00 215478, 31.01.00, ПВС УВД г. Грозный"
RS.Update
End If
' перебор записей таблицы и вывод информации на экран
RS.MoveFirst
Do Until RS.EOF
S = RS![фио] & Chr$(13) & Chr$(10)
S = S & RS![паспорт]
MsgBox S, 48, "Запись таблицы 'СОТРУДНИКИ'"
RS.MoveNext
Loop
MsgBox "Все!"
End Sub
Для того чтобы посмотреть результат работы нашей программ, необходимо открыть форму TEST
(естественно не в режиме конструктора) и нажать на кнопку, выполняющую нашу процедуру.
----------------------------------------------------------------------
Дополнительная информация, примеры программ http:\\use-access.narod.ru
Написать письмо: use-access@bk.ru