Иллюстрированный самоучитель по Microsoft Access 2002

Выполнение операций с данными

Для изменения данных в источнике создан язык структурированных запросов (SQL, Structure Query Language). Инструкции на языке SQL позволяют выполнять действия по изменению данных, например – добавлять, изменять или удалять записи в таблице или запросе, выбирать набор записей из источника, удовлетворяющий заданному условию.

C помощью объектов DАО можно осуществлять всевозможные манипуляции с данными. Например, такие как:

  • получение набора записей из таблицы;
  • выполнение запроса SQL для получения набора записей;
  • использование запроса, сохраненного в базе данных в виде объекта;
  • использование набора методов объекта Recordset, предоставляющего широкие возможности по обработке данных: чтение, анализ и изменение данных без составления инструкций на языке SQL.

В следующих примерах приведены приемы программного изменения данных в открытом наборе записей (программы 16.6-16.8). Переменная rs соответствует открытому набору записей – объекту типа Recordset.

Программа 16.6. Добавление записи в таблицу

'Добавляем сообщение в таблицу сообщений клиента
rs.AddNew 'Создание новой записи
rs!ИмяИгрока = playerName 'Запись значения в поле ИмяИгрока
rs!Сообщение = message 'Запись значения в поле Сообщение
rs.Update 'Сохранение изменений в источнике
rs.Bookmark = rs.LastModified
'Перемещение курсора на новую запись

Программа 16.7. Изменение текущей записи в таблице

'Увеличиваем счет игрока, сделавшего ход
'Делаем текущей запись, содержащую данные для нужного игрока
rs.FindFirst "[ИмяИгрока] = '" & newPlayer & "'"
rs.Edit 'Переводим запись в режим правки
rs!Счет = rs!Счет + newCount 'Изменяем значение поля Счет
rs.Update 'Сохраняем изменения
rs.Bookmark = rs.LastModified 'Делаем измененную запись текущей

Программа 16.8. Удаление текущей записи в таблице

playerQueryCode = rs!КодЗаявки 'Сохраняем параметры заявки
playerTrial = rs!Значение 'во временных переменных
rs.Delete 'и удаляем заявку из таблицы

Для перемещения по записям используются методы Move, MoveFirst, MoveNext, MovePrev, MoveLast объекта Recordset. Метод MoveLast перемещает курсор на последнюю запись в наборе, что приводит к загрузке в набор всех записей. После этого можно прочитать значение свойства Count объекта Recordset. Оно будет соответствовать общему количеству записей в наборе.

Замечание
Удаление записей и объектов из базы данных приводит к тому, что файл базы данных становится фрагментированным и место, занимаемое им на диске, используется нерационально. Чтобы дефрагментировать файл базы данных, используют процедуру сжатия. Ее можно выполнить с помощью команды Сервис › Служебные программы › Сжать и восстановить базу данных (Tools › Database Utilities › Compact and Repair Database) или программно – с помощью метода CompactDatabase объекта DBEngine. Можно также установить флажок Сжимать при закрытии (Compact on Close) в диалоговом окне Параметры (Options) (команда Сервис › Параметры (Tools › Options), вкладка Общие (General)), чтобы сжатие базы данных проводилось автоматически при ее закрытии. Подробнее процедура сжатия описана в гл. 20
.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.