Схема построения запроса на добавление записей имеет много общего с разработкой запросов на создание таблицы. Записи из результирующего набора могут быть добавлены как в таблицу уже открытой базы данных, так и в какую-либо другую базу данных Access. Безусловно, структура запроса должна соответствовать структуре таблицы-получателя. Чтобы продемонстрировать, каким образом создается запрос на добавление записей в таблицу, создадим в базе данных таблицу, в которой указаны товары, которые должны подвести на склад (рис.15).
Рис. 15.
Чтобы построить запрос на добавление записей, выполните следующее.
1. Создайте новый запрос. В нашем примере бланк запроса включает три поля таблицы ОжидаемыеТовары (рис. 16).
Рис. 16.
2. Чтобы преобразовать запрос на выборку в запрос на добавление, щелкните на кнопке Добавление группы Тип запроса. На экране появится диалоговое окно Добавление.
3. Выберите из раскрывающегося списка поля имя таблицы название той таблицы, в которую необходимо добавить записи новой таблицы (для нашего примера это таблица Товары, как показано на рис. 17), затем примите предложенную по умолчанию опцию в текущей базе данных и щелкните на кнопке ОК.
Рис. 17.
В бланке запроса теперь появилась новая строка — Добавление (рис. 18).
При условии, что имена полей исходной таблицы, указанные в бланке запроса, совпадают с именами тех полей, куда должны быть добавлены данные, программа Access по умолчанию вносит эти имена в ячейки строки Добавление.
4. Щелкните на кнопке Выполнить группы Результаты. Программа Access сообщит о том, какое число записей будет добавлено в таблицу. Щелкните на кнопке Да, чтобы завершить выполнение запроса.
|
5. Если необходимо, сохраните запрос.
6. Чтобы проверить полученные результаты, обратитесь к категории Таблицы области переходов и откройте целевую таблицу Товары.
Запросы на удаление
Как и следует из названия, главное и единственное назначение запросов такого типа — удалять из таблиц (или нескольких таблиц) записи, соответствующие определенному критерию. Именно записи, а не значения отдельных полей, для удаления которых можно воспользоваться запросом на обновление. Применение запросов на удаление обязывает быть предельно внимательным, поскольку удаление записей выполняется без возможности их последующего восстановления.
Порядок действий при создании запроса на удаление аналогичен приводимым выше процедурам для других запросов на изменение.
1. Создайте запрос на выборку, результирующими записями которого должны стать строки исходной таблицы, подлежащие удалению.
2. Перейдя в режим таблицы, убедитесь, что в результирующей таблице отображены именно те данные, которые следует удалить.
3. Вернитесь в режим конструктора запросов и воспользуйтесь для выбора типа запроса (на удаление записей) кнопкой Удаление группы Тип запроса. Запрос на выборку будет преобразован в запрос на удаление, а в бланке запроса вместо строки Сортировка появится новая строка — Удаление. Простой пример бланка запроса на удаление приведен на рис. 18.
Рис. 18.
4. Щелкните на кнопке Выполнить группы Результаты. Программа Access сообщит о том, сколько записей будет удалено и запросит подтверждение операции. Щелкните на кнопке Да, если вы готовы расстаться с указанными записями.
|
Таков сценарий удаления записей из одной, не связанной с другими таблицы. Однако на практике таблицы базы данных, как правило, связаны между собой, и наличие этих связей в схеме базы данных обязательно учитывается программой Access при попытке удалить записи одной из связанных таблиц. Напомним, что если между таблицами определено отношение "один ко многим" и в диалоговом окне Изменение связей установлен флажок опции каскадное удаление связанных записей, при удалении записи в главной таблице автоматически будут удалены все связанные записи подчиненной таблицы, даже если ее поля не фигурировали в бланке запроса на удаление.
Если флажок каскадного удаления не установлен, но для данного отношения между таблицами опция Обеспечение целостности данных активизирована, удалить записи из родительской таблицы не удастся до тех пор, пока не будут удалены записи из подчиненной таблицы. При попытке удаления записей программа Access выдает соответствующее предупреждение о наличии связанных записей в подчиненной таблице.
Запрос на обновление
Такой запрос позволяет указать критерий отбора записей, подлежащих обновлению, а также новые значения для одного или нескольких полей исходной таблицы. Значения указанных полей будут изменены в тех записях исходной таблицы, которые соответствуют записям результирующего набора. Запросы на обновление позволяют с помощью одного выражения модифицировать сразу множество записей. Например, можно снизить или повысить стоимость доставки всех или некоторой группы товаров на определенный процент.
|
Прежде чем выполнить запрос, обновляющий данные, убедитесь в том, что изменения затронут только требуемые записи. Для этого достаточно, указав все критерии отбора, выполнить запрос на выборку и просмотреть в режиме таблицы результирующие записи.
Чтобы проиллюстрировать, как может быть использован запрос на обновление, обратимся к простому примеру. Предположим, что необходимо снизить стоимость всех товаров на 5%.
Чтобы внести изменения в записи таблицы, выполните следующее.
1. Создайте новый запрос на выборку и добавьте в него таблицу Товары. Добавьте в бланк запроса поле ЦенаПродажи.
2. Чтобы преобразовать запрос на выборку в запрос на обновление, воспользуйтесь для выбора типа запроса (на обновление записей) кнопкой Обновление группы Тип запроса.
Теперь запрос является запросом на обновление. Кроме того, в бланк запроса добавлена новая строка Обновление.
3. Введите новое значение для обновляемого поля. Так, в ячейку строки Обновление, соответствующую столбцу ЦенаПродажи, следует ввести выражение [ЦенаПродажи]*0,95 (рис. 19).
Если в бланке запроса на обновление не указан критерий отбора записей (строка Условие отбора остается пустой), при выполнении запроса будут модифицированы значения во всех записях таблицы.
4. Щелкните на кнопке Выполнить группы Результаты. Программа Access сообщит о том, какое число записей будет обновлено в таблице. Щелкните на кнопке Да, чтобы завершить выполнение запроса. Чтобы отменить операцию обновления, щелкните на кнопке Нет.
Как и в случае запросов на удаление, при выполнении запросов на обновление записей связанных таблиц программа Access следит за тем, чтобы не были нарушены условия целостности данных.
Рис. 19. Бланк запроса на обновление