- •Для выполнения лабораторных работ
- •Общие сведения
- •Технология работы с запросами на выборку
- •Создание простых запросов на выборку
- •Создание простых параметрических запросов.
- •Условия отбора в запросах
- •Создание многотабличных запросов
- •Построение вычисляемых полей в запросах
- •Групповые операции в запросах
- •Использование некоторых функций в запросах
- •Функция Format
- •Функция month
- •Функция IsNull
- •Функция iif
- •Функция Nz
- •Технология решения некоторых задач анализа с использованием запросов на выборку1
- •Технология работы с другими типами запросов
- •Запрос на создание таблицы
- •Запрос на обновление записей таблицы
- •Запрос на добавление записей
- •Запрос на удаление записей
- •Перекрестный запрос
- •Заключение
- •Содержание
-
Запрос на обновление записей таблицы
Запрос на обновление вносит общие изменения в группу записей одной или нескольких таблиц.
Запрос на создание таблицы требуется в следующих случаях:
-
Синхронизация записей дублированных таблиц распределенной базы данных.
-
Изменение справочных данных.
Задание 16. Цена продаж на заданный товар изменилась на заданный процент. Обеспечить обновление соответствующей информации в таблице ТОВАР.
Алгоритм выполнения задания:
-
Создать новый запрос. Исходная структура — обновляемая таблица ТОВАР.
-
Открыть пункт меню ЗАПРОС и выбрать команду обновление. Окно конструктора запроса изменилось (Рисунок 37):
Рисунок 37 Окно конструктора запроса на обновление
-
в строке ПОЛЕ указывается имя обновляемого поля,
-
в строке ИМЯ ТАБЛИЦЫ — имя обновляемой таблицы,
-
в строке ОБНОВЛЕНИЕ строится выражение для обновления или указывается идентификатор поля, содержащего значения для обновления,
-
в строке УСЛОВИЯ ОТБОРА вводятся необходимые ограничения.
Вывести обновляемое поле — ЦЕНА.
В строке ОБНОВЛЕНИЕ построить выражение: IIf([Товар]![код товара]=[ввести обновляемый код товара]; ([Товар]![Цена]*(1+[введите % изменения цены]/100)); [Товар]![Цена]) — если значение поля КОД ТОВАРА таблицы ТОВАР соответствует заданному значению, то цена товара изменяется на заданный процент, в противном случае цена остается старой.
. Просмотреть результат выполнения запроса (не запуская запрос) — нажать кнопку на панели инструментов. Вернуться в режим конструктора запросов.
Сохранить запрос под именем 16_обновление справочника товаров.
Запустить запрос. Прочитать информационные сообщения, подтвердить обновление записей таблицы
Просмотреть содержание обновленных записей таблицы ТОВАР.
Бланк запроса представлен на Рисунок 38.
Рисунок 38 Бланк запроса 16_обновление справочника товаров задания 16
Внимание! В связи с производственной необходимостью потребовалось изменение структур исходных таблиц:
-
таблица СЧЕТ — добавить поле ПОМЕТКА О ВЫПОЛНЕНИИ ЗАКАЗА (тип данных — логический, формат — Истина/Ложь)
-
таблица ПОКУПАТЕЛЬ — добавить поле СКИДКА (тип данных — ЧИСЛОВОЙ, формат поля — ПРОЦЕНТНЫЙ).
Задание 1_18 для самостоятельной работы. Для заданного покупателя введены новые скидки. Обеспечить обновление соответствующей информации в таблице ПОКУПАТЕЛЬ
Задание 17. Обновить записи в таблице ВЫПОЛНЕННЫЕ ЗАКАЗЫ.
Таблица ВЫПОЛНЕННЫЕ ЗАКАЗЫ была создана при выполнении задания 1_17 для самостоятельной работы. Источник для обновления — таблица ВЫПОЛНЕНИЕ ЗАКАЗОВ создана в задании 15. Перед созданием запроса ввести новый счет, для которого в таблице ПРОДАЖА ввести записи о полной продаже всех заказанных товаров. Выполнить запрос 15-3_долг, для повторного создания таблицы ВЫПОЛНЕНИЕ ЗАКАЗОВ.
Алгоритм выполнения задания:
-
Создать новый запрос на обновление. Исходные таблицы: обновляемая таблица ВЫПОЛНЕННЫЕ ЗАКАЗЫ, источник для обновления — таблица ВЫПОЛНЕНИЕ ЗАКАЗОВ.
-
Установить связь по полю № счета для обеспечения обновления связанных записей. В таблице ВЫПОЛНЕНИЕ ЗАКАЗОВ могут присутствовать новые записи о выполненных заказах (номера счетов которых не содержатся в таблице ВЫПОЛНЕННЫЕ ЗАКАЗЫ). Чтобы иметь возможность добавить соответствующие записи, изменить параметры объединения: «Объединение всех записей из ВЫПОЛНЕНИЕ ЗАКАЗОВ и только тех записей из выполненные заказы, в которых связанные поля совпадают».
-
Вывести поля для обновления: № СЧЕТА, СУММА СЧЕТА из таблицы выполненные заказы.
-
Для поля № СЧЕТА в строке обновление при помощи построителя выражений указать идентификатор [ВЫПОЛНЕНИЕ ЗАКАЗОВ]![№ счета].
-
Для поля СУММА счета в строке обновление при помощи построителя выражений указать идентификатор [ВЫПОЛНЕНИЕ ЗАКАЗОВ]![Сумма счета].
-
В свободной колонке в строке ПОЛЕ вывести идентификатор [ВЫПОЛНЕНИЕ ЗАКАЗОВ]![долг], в строке УСЛОВИЯ ОТБОРА поставить значение 0. Данное ограничение обеспечивает выборку для обновления только тех записей из таблицы ВЫПОЛНЕННЫЕ ЗАКАЗЫ, для которых значение поля ДОЛГ равно 0.
-
Просмотреть результат выполнения запроса (не запуская запрос) — нажать кнопку на панели инструментов. Вернуться в режим конструктора запросов.
-
Сохранить запрос под именем 17_обновление данных о выполнении заказов.
-
Запустить запрос. Прочитать информационные сообщения, подтвердить обновление записей таблицы
-
Просмотреть содержание обновленных записей таблицы выполненные заказы.
Бланк запроса представлен на Рисунок 39.
Рисунок 39 Бланк запроса 17_обновление данных о выполнении заказов задания 17
Задание 1_19 для самостоятельной работы. Обновить поле ОТМЕТКА О ВЫПОЛНЕНИИ ЗАКАЗА таблицы СЧЕТ в соответствии с данными таблицы ВЫПОЛНЕННЫЕ ЗАКАЗЫ.