
Запросы на обновление
Нередко возникает необходимость изменить значения какого – либо поля в группе записей таблицы, отобранных на основании определенного критерия или во всех записях таблицы (например, в связи с инфляцией повысить заводскую цену каждой модели на определенный процент или рассчитать значение какого-то поля по уже внесенным в таблицу данным). Для того, чтобы не вводить заново новые значения во все записи, используют ЗАПРОС НА ОБНОВЛЕНИЕ. Команда ОБНОВЛЕНИЕ вызывается из меню ЗАПРОС во время проектирования (конструирования) запроса. В этом случае в проект запроса добавляется строка ОБНОВИТЬ, которая предназначена для указания новых значений полей таблицы. В качестве таковых могут выступать и вычисляемые выражения. После нажатия кнопки ЗАПУСК Access укажет в специальном диалоговом окне, сколько записей изменится в таблице, и потребует подтвердить изменения. Рассмотрим это на примере:
З
апрос
4. Заполнить
поле Розн_цена
таблицы Модели,
рассчитав его значения по следующей
формуле: [Зав_цена]*(1+[Торг_наценка]/100)
Для реализации этого запроса загружаем Конструктор запросов, затем в меню Запрос вызываем команду ОБНОВЛЕНИЕ и в появившуюся строку ОБНОВИТЬ Конструктора запросов вводим выражение: [Зав_цена]*(1+[Торг_наценка]/100)
(можно
воспользоваться инструментом
для ввода этой формулы, изучите
самостоятельно).
После запуска запроса на выполнение появиться диалоговое окно:
Нужно нажать кнопку “ДА”.
В результате выполнения запроса поле Розн_цена будет рассчитано и его значения занесены в таблицу Модели.
Для проверки, рассчиталась ли розничная цена, необходимо выйти из объекта Запросы и войти в режим Таблицы, выбрать таблицу Модели, и убедиться что поле Розн_цена заполнено (изначально оно было пустым).
Задания для самостоятельной работы
Самостоятельно создайте следующие запросы (для их выполнения изучите таблицы Примеры использования символов задания шаблонов и Примеры условных выражений, расположенные после заданий):
Обновить поле Комиссионные таблицы Продавцы, увеличив его на 12 % (аналогично запросу 4 введите необходимую формулу). Для проверки, пересчитались ли комиссионные продавцам, выйдите из объекта Запросы и войдите в режим Таблицы, выберите таблицу Продавцы, и убедитесь, что значения поля Комиссионные изменились (например, для Зайцева значение 0,1 после увеличения на 12% станет равным 0,112).
Выбрать сведения о клиентах, фамилии которых начинаются на букву «Б» и проживающих в Витебске. В результат запроса включить поля: ФИО, Адрес.
Определить максимальную и минимальную сумму заказа, выполненную продавцом Козловым. В результат запроса вывести поля: №_продавца, ФИО, Макс_заказ, Мин_заказ. Использовать таблицы Клиенты и Продавцы.
Определить все нестоличные заказы, выполненные продавцом Зайцевым.
Примеры использования символов задания шаблонов
Использование символов |
Образец |
Какие варианты подходят |
Вопросительный знак (?); в качестве шаблона для любого символа. |
За?ор |
Забор Затор |
Звездочка (*); в качестве шаблона для любой группы символов. |
Д*нь |
День Дребедень Добрый день Длинная тень |
Звездочка (*); в качестве шаблона для любой группы начальных символов. |
*й |
Работай Последний 128-й |
Знак фунта (#); в качестве шаблона для любой цифры. |
#-й |
5-й 8-й |
Восклицательный знак (!) после первой скобки; для поиска символа, который не входит в указанный набор символов. |
Иванов[!аы] |
Иванову [но не Иванова или Ивановы] |
Примеры условных выражений
Условные выражения |
Вывод записей, которые подходят |
Витебск |
имеют значение Витебск |
Not Витебск |
не имеют значение Витебск |
in (Витебск, Минск, Брест) |
имеют значение Витебск, Минск или Брест |
<М |
начинаются с букв А-Л |
>=М |
начинаются с букв М-Я |
100 |
имеют числовое значение 100 |
<=20 |
имеют числовое значение не больше 20 |
Date() |
имеют значение текущей даты |
>01.01.08 |
имеют значение даты позднее 01.01.08 |
Between 01.04.11 AND 15.08.11 |
имеют значение даты от 1 апреля 2011 года до 15 августа 2011 года |
*.02.* |
имеют значение месяца Февраль |
Null |
содержат в поле пустое значение |
Is Not Null |
имеют не пустое значение в поле |
Р* или Like "Р*" |
начинаются с буквы Р |
ПРИЛОЖЕНИЕ 2
Модели
Код_модели |
Модель |
Мощность |
Цвет |
Зав_цена |
Торг. наценка |
Розн_цена |
12579 |
Corolla |
75 |
Торнадо |
39200 |
25 |
|
12653 |
Ferrari |
120 |
Черный |
75000 |
10 |
|
12410 |
Yaguar |
140 |
Коррида |
90000 |
15 |
|
12505 |
Cor-kombi |
90 |
Черный |
55200 |
20 |
|
12902 |
Citroen |
75 |
Белый |
45100 |
20 |
|
12810 |
Renault |
60 |
Торнадо |
32300 |
20 |
|
Клиенты
Код_модели |
№_заказа |
Сумма_заказа |
ФИО |
Адрес |
Дата_заказа |
№_продавца |
12579 |
1001 |
70000 |
Иванов |
Бобруйск |
12.01.08 |
201 |
12579 |
1003 |
65000 |
Тормозов |
Минск |
15.01.08 |
201 |
12653 |
1004 |
100000 |
Умный |
Минск |
14.04.08 |
202 |
12410 |
1005 |
112000 |
Борисов |
Витебск |
14.04.08 |
202 |
12902 |
1006 |
60000 |
Терентьев |
Витебск |
14.04.08 |
203 |
12810 |
1007 |
40000 |
Цветков |
Брест |
10.05.08 |
201 |
12902 |
1008 |
55000 |
Быстров |
Брест |
25.06.08 |
203 |
12902 |
1009 |
52000 |
Чудаков |
Брест |
20.07.08 |
203 |
12410 |
1010 |
106000 |
Сергеева |
Минск |
21.08.08 |
202 |
12505 |
1011 |
64000 |
Прохоров |
Гродно |
21.08.08 |
202 |
Продавцы
№_продавца |
ФИО |
Комиссионные |
Город |
201 |
Зайцев |
0,1 |
Минск |
202 |
Козлов |
0,15 |
Витебск |
203 |
Григорьев |
0,12 |
Брест |
1 В данном курсе не изучаются