MS Access | Что такое Recordset |
Recordset – класс VBA, позволяющий из кода открывать таблицы (включая внешние источники), запросы или данные формы. С помощью Recordset можно, например, обновлять значения в полях таблицы/запроса/формы, получать количество строк, заполнять объект данными.
Для работы с Recordset, если работаем с таблицей другой БД, объявляем:
Const AnotherDBpath = "C:\Program Files\Microsoft Office\Office\Samples"
Recordset, если работаем с таблицей:
Dim mydb As Database 'база данных Dim rst As Recordset Set mydb = CurrentDb() 'указываем текущую базу данных 'Set Db = AnotherDBpath 'указываем другую БД, объявление константы AnotherDBpath выше Set rst = mydb.OpenRecordset("TableName") 'открываем таблицу, получаем Recordset с результатами
Если работаем с данными формы:
Без объявлений как с таблицей, просто: Set rst = Recordset
См. пример: Редактировать данные Recordset-а формы
Recordset, если работаем с запросом:
Dim mydb As Database 'база данных Dim qry As QueryDef 'запрос базы данных Dim rst As Recordset Set mydb = CurrentDb() 'указываем текущую базу данных 'Set Db = AnotherDBpath ''Set Db = AnotherDBpath 'указываем другую БД, объявление константы AnotherDBpath выше Set qry = mydb.QueryDefs("QueryName")
'если есть параметры в запросе: qry.Parameters("ParameterName") = ParameterValue 'ParameterName - название параметра 'ParameterValue – значение
'если есть динамические критерии в запросе: qry.Parameters("[Forms]![Form1]![TextBox1]") = [Forms]![Form1]![TextBox1]
Set rst = qry.OpenRecordset 'выполняем запрос, получаем Recordset с результатами
'------------------------------------------------------------------------------------------- If rst.EOF = False Then '= если в Recordset есть записи 'EOF – End Of File 'BOF – Begin Of File 'EOF = True или BOF = False означает, что Recordset пуст (нет записей) End if
rst.MoveFirst 'перейти на первую запись rst.MoveLast 'перейти на последнюю запись rst.Add 'добавить запись rst!FieldName = 1 'заполнить поле FieldName данными (=1) rst.Update 'обновить рекордсет
См. также: ➢Обновить данные Recordset-а формы ➢Получить кол-во записей с помощью Recordset
См. также примеры задач: ➢Распределение клиентов по менеджерам ➢Разные группы пользователей – разные права ➢Редактирование данных таблицы, с помощью Recordset
|