Расширение сферы использования запросов
Режим конструктора
Мастер позволяет быстро и эффективно создать нужный запрос, однако всегда найдется вопрос, на который у него не окажется ответа. В главе 7 рассказывается, как можно создать запрос на выборку в режиме конструктора. В частности, речь идет о привязке запроса к нескольким таблицам и об ограничении отображаемых результатов за счет представления только нужных полей. В этом разделе режим конструктора также будет применяться для решения разнообразных задач, связанных с запросами, в частности таких:
- использование активных запросов для изменения и удаления данных;
- применение различных параметров для создания более эффективных и интерактивных запросов;
- отображение результатов суммирования с помощью групповых операций.
Активные запросы
Активными называются запросы, которые позволяют изменять данные. В этой главе рассматриваются активные запросы двух типов.
- Запрос обновления изменяет ранее указанные данные на основании указанных критериев. Например, можно на 15% уменьшить цену всех товаров стоимостью ниже 200 рублей на ограниченный период распродажи.
- С помощью еще одного запроса (удаления) записи удаляются, также на основании указанных критериев. К примеру, можно удалить записи о товарах, которые уже не выпускаются, вместо того чтобы отмечать их тем или иным образом.
Кроме описанных типов запросов, существуют запрос на дополнение (добавляющий записи в готовую таблицу) и запрос на создание новых таблиц. Эти запросы также считаются активными, однако в данной книге они не рассматриваются.
Изменение данных с помощью запроса обновления
Зачастую данные приходится изменять. Вначале осуществляется поиск нужной записи, а затем обновляется одно или несколько ее полей, причем изменения не всегда ограничиваются лишь одной записью. В последнем случае запрос на обновление может служить отличным способом изменения записей, так как позволяет модифицировать их большое количество с помощью одного простого запроса.
Предположим, нам необходимо в таблице Каталоги заменить все записи Россия в поле Страна записью Российская Федерация. Когда в базе данных записей немного, сделать это несложно. Однако мы сейчас попытаемся, воспользовавшись запросом на обновление, одновременно обновить большое количество записей.
- Создайте копию таблицы Каталоги.
- Выберите созданную копию в окне Растения: база данных, а затем выполните команду Вставка › Запрос. В диалоговом окне Новый запрос дважды щелкните на записи Конструктор.
- Добавьте в таблицу конструктора поле Страна.
- Выполните команду Запрос › Обновление, в результате чего к таблице будет добавлена строка Обновление.
- Область обновления следует ограничить полями со значением Россия, поэтому введите имя Россия в ячейку Условие отбора столбца Страна (при этом название поля автоматически будет заключено в кавычки).
- Поскольку все поля Россия следует заменить полем Российская Федерация, введите последнее название в ячейку Обновление столбца Россия. На данном этапе запрос должен напоминать тот, что показан на рис. 12.15 (для того чтобы избежать путаницы, запрос на выборку будет добавлен не сейчас, а немного позже).
Прежде чем создавать активные запросы, следует позаботиться о сохранности данных. Во-первых, сохраните копию изменяемой таблицы. Если запрос не вернет нужных результатов, останется копия первоначальных данных. Во-вторых, выполняйте активный запрос как запрос на выборку. Это позволит просматривать измененные записи без их модификации.
Рис. 12.15. В запросе обновления указываются записи и метод их изменения