Запрос "расчет" (обработка имеющейся информации и формирование новых данных на ее основе), страница 2

Перед тем, как выполнить запрос, еще раз отметим разницу его запуска. Если запрос закрыт, то войти в него можно либо в режиме конструктора, либо в режиме табли­цы, выполнив команду "Открыть". Находясь в режиме конструктора, мы можем либо перейти в режим таблицы, либо нажать на кнопку "Выполнить" (или выполнить ко­манду "Запрос - Выполнить"). Действия, связанные с кнопками "Открыть" и "Выполнить" вызывают выполнение запроса, в результате чего и будет создана таблица "Расчетный лист". При выполнении запроса будут зада­ваться различные вопросы, отвечая на которые можно от­менить или продолжить выполнение запроса.

При переходе из режима конструктора в режим таб­лицы запрос не выполняется, т.е. таблица "Расчетный лист" не создается, но соответствующие данные выводятся на экран. Этот режим, называемый режимом предвари­тельного просмотра, можно сравнить с этапом отладки при программировании. Вообще-то, погружаясь в Access, Вы в один прекрасный момент поймете, что стали программи­ровать, хотя, возможно, и не собирались этого делать.

Выполните запрос, предварительно просмотрев его в режиме таблицы. Откройте таблицу "Расчетный лист". Столбец, содержащий число прожитых дней, называется " Выражение 1". Вернемся в запрос и изменим имя этого поля на "Число дней". Для присвоения полю другого име­ни выделите его и замените другим.

Кроме имени поля в запросе можно указать и имя таблицы, в которой есть это поле. Выражение при этом имеет вид: [Имя таблицы]![Имя поля].

Введем следующее поле "Категория номера" (таблица "Номера") - теперь в расчетном листе будет и категория номера.

В следующее поле, которое назовем "Стоимость проживания", мы занесем сумму, которую необходимо за­платить за время проживания в номере. Очевидно, что она равна произведению стоимости номера за сутки на число дней.

Вы можете  присваивать имя вычисляемому полю непосредственно при вводе. В этом случае Вам нужно на­брать с клавиатуры следующее выражение: Стоимость проживания:([Выезд]-[Поселение])*[Стоимость]

Вы можете заменить ([Выезд]-[Поселение]) на [Число дней]. При этом Вы вводите в выражение вычисляемое поле (получается тавтология: вычисляемое поле в вычисляемом поле). Мы не рекомендуем этого де­лать без особой необходимости по двум причинам. Во-первых, это усложняет читаемость формулы и, во-вторых, Вы уже не сможете удалить поле "Число дней", оставив поле "Стоимость проживания".

При создании вычисляемых полей можно восполь­зоваться построителем выражений, который запускается щелчком на кнопке "Построить" (на кнопке изображены три точки). Вы можете вызвать построитель с помощью контекстно-зависимого меню, выбрав в нем команду "Построить..." Контекстно-зависимое меню вызывается щелчком правой кнопки на имени поля в режиме кон­структора.

Мы не будем подробно останавливаться на работе с построителем, т.к. Вам не составит особого труда познако­миться с ним самостоятельно. Опишем только, как доба­вить поле в выражение. Для этого необходимо открыть папку "Tables", а затем папку той таблицы, которую хотите использовать. Для добавления поля в выражение дважды щелкните на этом поле. Построитель включит и имя таб­лицы с восклицательным знаком перед именем поля.

Теперь приступим к конструированию полей оплаты за телефон и телевизор. Назовем их для краткости соответ­ственно: "Опл тел" и "Опл ТВ". Предположим, что стои­мость пользования телефоном в сутки (без учета междуго­родных переговоров) равна 10 , а телевизором - 5 рублей.

После определения цены осталось умножить эти суммы на число дней в тех номерах, где есть телефон и (или) телевизор. Правда, при этом пока непонятно, где находятся назначенные суммы (10 и 5 ), да и как опре­делить, в каком номере нужно умножать? Мы предлагаем воспользоваться следующими выражениями:

Опл тел: ([Выезд]-[Поселение])*[Телефон]*(-10)

Опл ТВ: ([Выезд]-[Поселение])*[Телевизор]*(-5)

Очевидно, что в первой скобке этих выражений на­ходится число дней. Последний множитель - это стоимость телефона или телевизора за сутки со знаком минус - тоже очевиден, если не обращать внимание на знак.