Создайте запрос, который отбирает и объединяет записи из двух таблиц – Книги и Заказ книги, чтобы показать, какие книги были выданы читателям, и содержит вычисляемое поле с именем Пеня, которая начисляется на каждую книгу, не возвращенную своевременно. Размер пени равен 1% от стоимости книги за каждый просроченный день.
26. Создайте запрос с именем Начисление пени. Для создания запроса перейдите на вкладку Создание и выберите инструмент Конструктор запросов в группе Другие.
27. Добавьте в запрос таблицы Книги и Заказ книги. В окне схемы данных должна быть показана связь между таблицами по полю Инв№ – инвентарный номер книги.
28. Перетяните мышью в нижнюю половину окна поля, которые необходимо включить в запрос: Автор, Название, Стоимость, Инв№ (не выводить на экране), Дата выдачи, Дата возврата, Номер. Последнее поле потребуется для связи запроса с таблицей Читатели.
29. В первой свободной колонке нижней части окна создайте поле, которое вычисляется, с именем Пеня. Для этого наберите в верхней строке, где располагается имя поля, такой текст: Пеня: IIf([Дата возврата]<Date(); DateDiff("d"; [Дата возврата]; Date() )*0,01 *[Стоимость]; 0)
Рисунок 21. Конструктор запроса Начисление пени
Для создания такого выражения можно использовать Построитель выражений. Для этого в группе Настройка запроса выберите инструмент Построить на вкладке Работа с запросами/Конструктор. На экране откроется окно Построителя выражений. В этом окне можно создавать выражение последовательным добавлением к нему полей таблиц или запросов, функций, констант и операторов. Имена полей записываются в квадратных скобках.
Рисунок 22. Использование Построителя выражений
30. Сохраните запрос под именем Начисление пени. Выполните запрос. Размер пени, разумеется, зависит от текущей даты, на которую он вычислялся. Пример приведен на 29.01.09.
Рисунок 23. Результат выполнения запроса Начисление пени