- •Предметная область.
- •Определение в таблице Каталог ключевого поля:
- •Маска ввода
- •Определите в таблице Продажи за год ключевые поля.
- •Заполнение таблицы данными
- •Работа с формой в режиме Конструктора.
- •Задайте заголовок форме: Каталог изделий
- •Установите в форме кнопку автоматического закрытия формы.
- •Создание сложной формы.
- •Необходимо запомнить, что имя параметра запроса не должно совпадать с наименованием столбца
- •Создание запроса на обновление.
- •Создание отчета.
- •Расчет прибыли, получаемой агентом до конца 01 месяца.
- •[Forms]![Отчетная форма]![ПолеСоСписком0]
Создание запроса на обновление.
Прежде чем приступить к созданию и выполнению запроса на обновление записей в БД, создайте однотабличный запрос на выборку данных в режиме Конструктора, с добавлением таблицы Каталог.(Создать - Конструктор - вкладка Таблицы …) Вставьте в запрос поле «Цена за единицу».
Далее выполните команду: Запрос-Обновление (из главного меню). В Конструкторе запроса появилась новая строка Обновление
В строку Обновление поля Цена за единицу измерения с помощью построителя выражений введите:
CCur(CLng([Каталог].[Цена за единицу]*1,01))
!В строке обновление может быть введено любое правильно построенное выражение. В выражении Вы можете использовать одно или несколько полей из исходных полей запроса.
В данном случае условие увеличения цен на 1% задано формулой:
CCur(CLng([Каталог].[Цена за единицу]*1,01)), где
Каталог-таблица в которую вносятся изменения;
Цена за единицу-поле в которое непосредственно вносятся изменения;
CLng-функция преобразования к длинному, целому числу, выполняет «банковское» округление: значит больше 50 округляются с избытком; значения меньше 50 округляются с недостатком; значение 50 округляется с избытком, если целая часть числа нечетная, если четная то с недостатком. Например:
1,51 преобразуется в 2;
1,49 в 1; с недостатком
1,50 в 2; с избытком
CСur - преобразование к денежному типу, чтобы получить нужный формат.
Округление с помощью этих функций особенно важно при таких операциях, как вычисление скидки для заказа.
Сохраните (Файл- Сохранить) запрос под названием: «Запрос на обновление.»
Запустите запрос в режиме просмотра (Выполнить запрос - !), подтвердив обновление записей. Итоги запроса должны отразиться в таблице Каталог. Сравните исходные и полученные данные .
Задание 18:
Внесите данные в таблицу Агенты о заказчиках, ставших агентами, с номером менее 23.
Такое изменение данных возможно с помощью запроса на добавление.
!С помощью запроса на добавление можно скопировать выбранные записи и вставить их в другую таблицу.
Запрос на добавление, подобно запросу на создание таблицы, позволяет собрать вычисленные итоговые данные и сохранять их в определенной таблице.
Создание запроса на добавление:
Создайте запрос в режиме конструктора на основании таблицы Заказчики.
Добавьте поля таблицы в запрос:
№ заказчика
ФИО заказчика
Телефон
Далее выполните команду Запрос-Добавление.
Автоматически появляется окно: Добавление:
Введите имя таблицы: Агенты
Добавление записей в таблицу: в текущей БД
В строке Добавление необходимо вписать (согласно рисунку) название полей таблиц в которые вносится добавление.
Так как агентами стали заказчики у которых номер менее 23, следовательно необходимо ввести параметр: < 23.
Сохраните запрос под наименованием «Запрос на добавление» .
Запустите Запрос на добавление(подтвердив изменения) и закройте его.
Затем просмотрите таблицу Агенты, ее вид:
-
№ агента
ФИО агента
Телефон
11
Котов
238-14-02
12
Никулин
222-25-74
13
Великанов
230-32-05
21
Никитина
668-46-46
22
Давиденко
354-35-43
Добавились два Агента : 21 и 22 номера.
Задание19:
Удалите из таблицы Заказчики заказчиков, которые стали агентами.
В данном задании Вам необходимо удалить из таблицы Заказчики тех заказчиков, которые стали агентами, т. е. С номерами менее 23. Но при удалении заказчиков из таблицы , желательно оставить о них сведения в таблице продажи за год , т. к.. учет продаж велся еще до того, как заказчики стали Агентами.
Создайте однотабличный запрос на выборку в режиме Конструктора, на основании таблицы Заказчики. Установите в форме поля таблицы:
№ заказчика
ФИО заказчика
Телефон
Далее, выполните команду Запрос-Удаление. В окне запроса появится строчка Удаление:
Так как вам нужно удалить всех заказчиков , имеющих порядковый номер < 23, следовательно в условие отбора, в поле № заказчика введите : < 23.
Таким образом Вы создали запрос на Удаление, но если его сейчас запустить , то удалятся из БД все данные , касающиеся 21 и 22 Заказчиков, а нам необходимо сохранить записи в таблице Продажи за год
Следовательно, для осуществления запроса необходимо изменить связь в Схеме данных. Для этого:
Закройте запрос, сохранив его под именем: «Запрос на удаление»
В БД вернитесь в окно Таблицы и вызовите Схему данных.(Сервис- Схема данных)
В схеме данных найдите связь между таблицами Продажи за год и Заказчики.
Выделите связь левой кнопкой мыши, а затем правой кнопкой выберите свойство связи: Изменить связь. Автоматически появится диалоговое окно Связи: удалите флажки с пункта
Обеспечение целостности данных.
ОК.
Закройте Схему данных, подтвердив сохранение.
Запустите (откройте) Запрос на удаление, подтвердив удаление записей, а затем откройте таблицы: Заказчики и Продажи за год.
Заказчики:
№ заказчика |
ФИО заказчика |
Телефон |
23 |
Петров |
454-45-66 |
24 |
Иванов |
545-66-66 |
25 |
Федоров |
546-46-54 |
26 |
Иванчук |
546-54-44 |
Продажи за год:
№ по каталогу |
№ агента |
№ заказчика |
Месяц |
Проданное количество |
Договорная цена за единицу |
6 |
11 |
21 |
01 |
2 |
27р. |
5 |
12 |
22 |
02 |
1 |
100р. |
2 |
12 |
23 |
08 |
1 |
9р. |
4 |
11 |
23 |
04 |
1 |
375р. |
4 |
13 |
23 |
03 |
1 |
375р. |
6 |
13 |
23 |
12 |
1 |
26р. |
1 |
11 |
24 |
07 |
2 |
10р. |
3 |
11 |
24 |
04 |
4 |
103р. |
Задание 20:
Выведите общий итог покупок товаров заказчиками за год.
Необходимо иметь таблицу о том сколько и какой продукции покупали заказчики в течении года. В таком случае применяют запрос на создание таблицы.
!Запрос на создание таблицы создает новую таблицу на основе всех или части данных из одной или нескольких таблиц. Запрос на создание таблицы полезен в случаях:
- ее отправки в другую БД
- когда невозможно построить запрос непосредственно на другом вопросе
-
для создания резервной копии таблицы
-
для повышения быстродействия форм и отчетов базирующихся на многотабличных запросах.
Создайте многотабличный запрос на выборку , состоящий из таблиц:
Заказчики
Продажи за год
Каталог
Выберите поля согласно виду запроса:
Далее выполните команду Запрос- Создание таблицы
Появится диалоговое окно:
Задайте имя таблицы: Покупки заказчиками в течении года.
Ок.
Сохраните запрос под именем «Запрос на создание таблицы»
Запустите запрос, подтвердив изменения, и закройте его. Откройте в окне Таблицы таблицу : Покупки заказчиками в течении года:
ФИО заказчика |
Наименование изделия |
Проданное количество |
Месяц |
Петров |
дискета 5,25 |
1 |
08 |
Петров |
бумага для принтера |
1 |
04 |
Петров |
бумага для принтера |
1 |
03 |
Петров |
скоросшиватели |
1 |
12 |
Иванов |
дискета 3,5 |
2 |
07 |
Иванов |
картридж для принтера |
4 |
04 |
Иванов |
картридж для принтера |
2 |
03 |
Иванов |
чернила |
4 |
11 |
Федоров |
дискета 5,25 |
3 |
02 |
Федоров |
дискета 5,25 |
3 |
05 |
Федоров |
бумага для принтера |
2 |
10 |
Федоров |
скоросшиватели |
3 |
06 |
Иванчук |
дискета 3,5 |
5 |
01 |
Иванчук |
дискета 3,5 |
1 |
06 |
Иванчук |
картридж для принтера |
1 |
09 |
Иванчук |
чернила |
4 |
05 |
Задание 21:
Создайте отчет: «Расчет прибыли, полученной заданным агентом до конца определенного месяца.
Данный отчет создается на основании запроса: "Запрос группировка данных".