- •4 Требования к отчету
- •5 Общие положения
- •5.1 Понятие запросов-действий
- •5.1.1 Особенности работы с запросами-действиями
- •5.2 Запросы на создание таблицы
- •5.3 Запросы на обновление записей
- •5.4 Запрос на удаление записей
- •5.5 Запрос на добавление записей
- •5.6.1 Использование Мастера для создания перекрестной таблицы
- •5.6 Перекрестные запросы
- •6. Методические рекомендации
- •6.1 Запрос на создание таблицы
- •6.2 Запрос на обновление записей
- •6.3 Запрос на удаление записей
- •6.4 Перекрестный запрос
- •7 Контрольные вопросы
5.4 Запрос на удаление записей
Этот вид запросов служит для удаления группы записей базы данных, удовлетворяющих определенным условиям. Обычный запрос можно преобразовать в запрос на удаление с помощьюкоманды Запрос/Удаление в режиме Конструктора запросов. При этом в бланке запроса появится строка Удаление, где можно ввести условие для удаления записей (рисунок 4).
Рис. 4. Вид окна запроса на удаление записей
В режиме Конструктора запроса необходимо указать таблицу, в которой будут проводиться удаления. Затем определить критерии и обязательно просмотреть результаты выполнения запроса на выборку.
Если в результате запроса присутствуют только подлежащие удалению записи, следует преобразовать его в запрос на удаление.
Удаление записей может привести к непредсказуемым результатам, в том числе и к нарушению целостности базы данных, по следующим причинам:
- Таблица является частью отношения один-ко-многим
- В качестве условия обеспечения целостности данных использована опция Каскадное удаление связанных полей.
Например, вы решили исключить каких-то студентов и удалить соответствующие записи из таблицы Студенты. При этом существует также таблица Экзамены, которая связана с таблицей Студенты, отношением один – ко многим. Если для обеспечения целостности данных выбрана опция Каскадное удаление связанных полей, в результате удаления записей о студентах будут удалены записи об их оценках, то есть информация об успеваемости!
Если установлена опция Каскадное удаление связанных полей и вы пытаетесь удалить записи в режиме просмотра таблицы, то получите предупреждение о возможном удалении данных в других таблицах. А при использовании запросов на удаление вы не увидите предупреждения. MS Access выдаст только информацию о количестве удаляемых записей, но ничего не скажет про каскадное удаление.
5.5 Запрос на добавление записей
С помощью запроса на добавление записей можно скопировать выбранные записи и поместить их в другую таблицу. Можно также использовать запрос на добавление для переноса данных в используемую базу данных из другого источника (из какой-либо другой таблицы).
Выполнение запроса на добавление записей можно начать (также как и в других запросах-действиях) с запуска запроса-выборки – для того, чтобы убедиться, что вы копируете необходимые записи.
Если необходимо добавить записи к таблице в другой базе данных, сначала следует присоединить таблицу-источник к базе, содержащей целевую таблицу, с помощью команды Файл/Внешние данные/Связь с таблицами. Для отбора добавляемых записей нужно составить запрос на выборку. Затем надлежит выполнить составленный запрос и оценить результат, переключившись в режим таблицы с помощью команды Вид/Режим таблицы. После этого необходимо вернуться в режим Конструктора и активизировать команду Запрос/Добавление.
В открывающемся окне диалога нужно в поле Имя таблицы имя таблицы, к которой требуется присоединить данные из результирующего набора записей запроса. Закрытие диалогового окна кнопкой ОК приводит к тому, что Access 97 добавляет в бланк запроса строку Добавление (рисунок 5).
Рисунок 5 Вид окна запроса на добавление записей
В строку Добавление автоматически (или вручную ) вставляются имена тех полей целевой таблицы, которые совпадают с именами полей запроса. Далее следует выполнить запрос. Для этого выполните команду Запрос/ Выполнить или щелкните по кнопке Выполнить на панели инструментов. В специальном диалоговом окне Access 97 укажет сколько записей будет добавлено к целевой таблице, и потребует подтвердить выполнение этой операции.
Однако при переключении на запрос-выборку и обратно Access не сохраняет соответствия имен полей. Так что если перед запуском соответствующего запроса на добавление записей вы хотите выполнить запрос-выборку, приходится заново задавать соответствия имен двух таблиц.
Добавленные по ошибке записи легко находятся и удаляются. Тем не менее, можно сэкономить время, если сделать резервную копию таблицы, в которой будет осуществляться добавление записей.
