Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы_СУБД_Access.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
2.17 Mб
Скачать

Операции над данными

Для непосредственной работы с данными используется объект Recordset. Существует несколько типов объектов Recordset (типы обозначаются константами):

dbOpenSnapshot Статическая (неизменяемая) копия записей.

dbOpenDynaset Набор записей, полученных в результате выполнения запроса, который можно изменять произвольным образом: редактировать, добавлять и удалять данные.

dbOpenTable Набор записей, представляющий все записи одной таблицы. Набор записей этого типа можно изменять произвольным образом. Данный тип используется по умолчанию при работе с Microsoft Jet, если указать таблицу как источник записей для объекта Recordset.

dbOpenDynamic Обновляемый объект Recordset. Используется только в рабочей области ODBCDIrect.

dbOpenForwardOnly Неизменяемый объект Recordset. Используется по умолчанию в рабочей области ODBCDirect.

Для получения данных используются операторы SQL, которые передаются в качестве строковых параметров методу OpenRecordset. Например:

Dim strSQL As String Dim rsObj As Recordset . . . . . . . . . . . . strSQL = “SELECT * FROM Products WHERE Units > 100;” Set rsObj = dbObj.OpenRecordset(strSQL, dbOpenDynaset)

Если источником данных является таблица, то по умолчанию для объекта Recordset используется табличный тип. Статический набор записей используется, когда данные нужны только для просмотра (без редактирования). Если при работе с данными записи изменяются, то следует использовать динамические наборы.

Для перемещения к последней записи в наборе используется метод MoveLast. Свойство RecordCount дает возможность получить количество записей (после перемещения к последней записи). Для перемещения к предыдущей/следующей записи в таблице используются методы MovePrevious и MoveNext. Для поиска можно использовать метод FindFirst.

Процесс редактирования данных состоит из нескольких этапов: создание (открытие) изменяемого объекта Recordset; выбор записи, подлежащей редактированию (для определения записи, удовлетворяющей заданным критериям, в таблице следует воспользоваться методом Seek в сочетании с табличным индексом, можно использовать и методы перемещения к записям в наборе); использование метода Edit объекта Recordset для помещения записи в буфер для редактирования; изменение значений полей записи; вызов метода Update для сохранения обновленной записи.

Для добавления записи нужно выполнить несколько шагов: создать (открыть) изменяемый объект Recordset; вызвать метод AddNew; установить значения всех обязательных полей; вызвать метод Update для сохранения изменений в объекте Recordset.

Операции изменения данных могут быть выполнены как единая транзакция, которая может быть инициализирована и завершена (либо может быть выполнен ее откат) с помощью соответствующих методов. Для инициирования процесса изменения данных следует вызвать метод BeginTrans объекта Workspace. Вызов метода CommitTrans объекта Workspace для Recordset сохраняет изменения. В обработчик ошибок, которые могут возникнуть при добавлении/изменении записей, можно вставить вызов метода RollBack объекта Workspace для восстановления исходного состояния объекта Recordset (отката транзакции).

Для удаления записи следует открыть объект Recordset; выбрать удаляемую запись; вызвать метод Delete.

Для копирования записей (например, в массив) можно воспользоваться методом GetRows объекта Recordset.

В диапазон рабочего листа Excel можно скопировать данные объекта Recordset непосредственно с помощью метода CopyFromRecordset объекта Range.

При завершении работы все объекты типа Recordset, Database и Workspace закрываются с помощью метода Close. Объекты освобождаются присваиванием объектным переменным значения Nothing с помощью оператора Set.