Главная » Статьи » Microsoft Access » Microsoft Access | [ Добавить статью ] |
Использование объекта Recordset
Использование объекта RecordsetОткрытие объекта Recordset предоставляет пользователю доступ к управлению обработкой информацией программным путем. Объект Recordset является представлением таблицы или запроса в оперативной памяти. Можно создать три типа объектов Recordset: таблицу, динамический и статический наборы записей. Объект Recordset табличного типа может быть создан только на основе локальной таблицы. Открытие объекта Recordset табличного типа аналогично открытию таблицы в режиме таблицы в пользовательском интерфейсе. При открытии объекта Recordset в программе все записи загружаются в оперативную память. Главным преимуществом табличного типа является возможность быстрого поиска значений на основе индекса таблицы.Объект Recordset типа статического набора записей представляет собой набор записей, доступных только для чтения и основанный на таблице, запросе или операторе SQL. Этот тип является представляет состояние записей на момент открытия объекта. Если записи меняются, то такой объект не отразит этих изменений. Примером статического набора записей является отчет. Объект Recordset типа динамического набора записей представляет собой обновляемый набор записей, основанный на таблице, запросе или операторе SQL. Динамический набор записей может быть создан и на основе присоединенных таблиц Microsoft Access. Этот объект является наиболее используемым типом, так как обладает преимуществами по сравнению с уже рассмотренными. Например, объект Recordset типа динамического набора записей не загружает в оперативную память все записи, а использует закладки или указатели на записи. Объект Recordset типа динамического набора записей, в отличие от статического набора записей, может редактироваться и обрабатываться. Он отражает изменения, произведенные в источнике данных. Для открытия объекта Recordset, используется метод OpenRecordset объекта Database. Метод OpenRecordset имеет три параметра: Source - параметр, являющийся именем таблицы или запроса, либо оператором SQL, на котором основан объект Recordset. Type - параметр, указывающий на тип создаваемого объекта (константа dbOpenTable -таблица; константа dbOpenSnapshot - статический набор записей; константа - dbOpenDynaset - динамический набор записей). Options - аргумент, указывающий параметры открываемого объекта (см. Предметный указатель справочной системы). Следующий пример демонстрирует создание объекта Recordset табличного типа с параметром, позволяющим только просматривать данные до тех пор, пока объект Recordset не будет закрыт. Dim dbMy As Database, rsMy As Recordset Set dbMy = CurrentDb ' Создание объекта Recordset табличного типа Set rsMy = dbMy.OpenRecordset("Локальная таблица", dbOpenTable, dbReadOnly) После того, как работа с объектом Recordset закончена его необходимо закрыть (удалить из памяти) с помощью метода Close: Например, rsMy.Close dbMy.Close Аналогично создаются объекты Recordset на основе других наборов записей. Можно ограничить количество записей в объекте Recordset, используя свойство Filter, или отсортировать записи с помощью свойства Sort. Например, Dim dbMy As Database, rsMy1 As Recordset Dim rsMy2 As Recordset Set dbMy = CurrentDb rsMy1.Filter="Должность = 'Программист' " rsMy1.Sort="Отдел Desc, ФИО Asc" Set rsMy2=rsMy1.OpenRecordset Для перемещения по записям используются следующие методы объекта Recordset: MoveFirst, MoveLast, MoveNext, MovePrevious, Move <№ записи> Для предотвращения выхода за границу последней записи можно воспользоваться свойством RecordCount и циклом For...Next. Проанализируйте следующий фрагмент программы: rsMy.MoveLast kol = rsMy.RecordCount rsMy.MoveFirst For i = 1 to kol For Each fldMy in rsMy.Fields Msgbox fldMy.Value, 0, "Просмотр записей" Next rsMy.MoveNext next i Для добавления, удаления и редактирования данных используются следующие методы объекта Recordset AddNew, Delete, Edit. Для сохранения вставок и обновлений записей применяется метод Update. Метод CancelUpdate отменяет любые вставки и изменения, которые были выполнены после последнего Update. Пример фрагмента программного кода редактирования последней записи выглядит следующим образом: rsMy.MoveLast rsMy("ФИО")="Сидоров" rsMy("Должность")="Техник" rsMy.UpDate Удаление записи не требует последующего обновления. Для создания процедур поиска используются следующие методы объекта Recordset: FindFirst, FindLast, FindNext. Назначение их очевидно и не требует пояснений. Пример поиска записи, удовлетворяющей заданному критерию: Cr = "[Фамилия] = 'Сидоров' " rsMy.FindFirst Cr MsgBox rsMy("Должность") & " " & rsMy("Отдел"), 0, "Результат поиска" Порядок выполнения работы 1. Откройте базу данных. 2. Найдите записи, удовлетворяющие заданному критерию, используя свойства и методы объекта Recordset. Для этого • В одну из созданных ранее форм добавьте кнопку, при нажатии на которую, осуществляется поиск записи. Значение критерия поиска записей введите в режиме диалога. Предусмотрите обработку ошибки при отсутствии записей в объекте и при выходе за границу последней записи. • Запустите программу на выполнение и покажите результаты преподавателю. 3. Создайте еще одну кнопку для выполнения программы отбора записей. Например, данных о студентах одного из факультетов, имеющих средний балл более 4. Предусмотрите сортировку данных по произвольно выбранному полю и вывод результатов отбора в окно MSGBOX и новое поле формы. 4. Завершите сеанс работы с БД. | |
Просмотров: 12213 | Комментарии: 3
| Теги: |
Всего комментариев: 3 | ||||
| ||||