Вы можете видеть, что в таблице Заказы появились шесть новых записей по количеству товаров в таблице Товары (рис. 6.10).
Рис. 6.10. Таблица Заказы после выполнения запроса на добавление записей
Примечание
Следует помнить, что типы данных, заданные для полей в исходной таблице, должны быть совместимыми с типами данных для полей конечной таблицы. Например, можно добавить числа в текстовое поле, но нельзя добавить текст в числовое поле, если только не используется выражение вида (Val(ТекстовоеПоле)), чтобы сначала преобразовать данные в числовой тип данных.
Создание запросов на обновление таблиц
Запрос на обновление данных используется для изменения существующих записей в таблицах. Основное отличие таких запросов от запросов на добавление и удаление – это то, что изменяются значения отдельных полей записей. Можно удалять значения полей, оставляя те пустыми, при этом операция будет равносильна удалению части записи. Кроме того, можно заполнять пустые значения отдельных полей данными, что равносильно добавлению данных. Но если необходимо добавить или удалить строки целиком, необходимо использовать запросы на добавление или удаление записей соответственно.
Обновлять данные можно не во всех полях. Ниже приводится список полей, значения которых нельзя изменить запросом на обновление:
• поля, содержащие результаты вычислений, потому что их значения не хранятся в базе данных постоянно;
• поля, источником записей для которых служат итоговые запросы или перекрестные запросы, которые будут рассмотрены далее в этой главе;
• поля-счетчики, потому что их значение изменяется только при добавлении записей в таблицу;
• поля в запросах на объединение, так как эти данные не хранятся в базе, а выбираются из указанных таблиц;
• поля в запросах на уникальные значения и запросах на уникальные записи – запросах, возвращающих неповторяющиеся значения или записи;
• первичные ключи, участвующие в отношениях между таблицами, кроме тех случаев, когда эти отношения были настроены на автоматическое выполнение каскадного обновления через поля ключа и любые связанные поля.
Внимание!
Перед выполнением запроса на обновление следует создать резервную копию базы данных. Результаты запроса на обновление невозможно отменить, однако создание резервной копии позволяет отменить все изменения.
Для надежности сначала следует создать запрос на выборку, просмотреть, какие записи будут изменены, а потом преобразовать запрос в запрос на обновление.
Создайте запрос на обновление данных в учебной базе Отдел продаж . Итак, имеется таблица с заказами, в которой указывается полная стоимость заказа. Пусть при заказе на сумму более 5000 руб. клиент получает скидку в 10 %. Сначала создайте запрос на выборку нужных записей из таблицы Заказы .
1. Откройте базу данных Отдел продаж .
2. На вкладке Создание в группе Другие нажмите кнопку Конструктор запросов .
3. В окне Добавление таблицы дважды щелкните кнопкой мыши на названии таблицы Заказы . Нажмите кнопку Закрыть .
4. Дважды щелкните кнопкой мыши на полях, которые необходимо добавить в выборку. Выберите поля Номер и Сумма .
5. В бланке запроса в строке Условие отбора для поля Сумма введите условие выборки [Заказы]![Сумма] > 5000.
Результирующий бланк запроса на выборку показан на рис. 6.11.
Рис. 6.11. Результирующий бланк запроса на выборку
Текст запроса на выборку приведен в листинге 6.5.
Листинг 6.5.
Запрос на выборку
SELECT Заказы. [Номер (ID)], Заказы. Сумма
FROM Заказы
WHERE (((Заказы. Сумма)>5000));
6. Перейдите на вкладку Конструктор и выберите команду Выполнить (рис. 6.12). Если результат выборки содержит только записи с суммой более 5000 руб., то запрос составлен верно.
Рис. 6.12. Результат выполнения запроса на выборку