Создание запроса
- Щелкните на кнопке Запуск (Run), чтобы выполнить запрос и отобразить результаты в виде таблицы.
Измените запрос таким образом, чтобы упорядочить результаты по полю КодЗаказа, и добавьте поле для вычисления стоимости товара, которая определяется умножением цены на количество за вычетом скидки.
- Щелкните на кнопке Вид (View), чтобы вернуться в режим конструктора. Строка Сортировка (Sort) (третья на бланке) позволяет указать поле и принцип сортировки (по возрастанию или убыванию).
- Щелкните в ячейке Сортировка (Sort) в столбце КодЗаказа, щелкните на стрелке и щелкните на По возрастанию (Ascending). Поскольку ни одна из таблиц не содержит стоимость покупки, воспользуйтесь построителем выражений, чтобы вставить в бланк запроса выражение для расчета стоимости.
- Щелкните правой кнопкой мыши в ячейке Поле (Field) первого пустого столбца бланка (шестого), а затем щелкните на команде Построить (Build) в контекстном меню. Откроется диалоговое окно Построитель выражений (Expression Builder), приведенное на следующем рисунке. Нужно построить следующее выражение: "Ccur([Сведения о заказе].[Цена]*[Количество]*(1-[Скидка])/100)*100" Функция Ccur, используемая в выражении, преобразует результаты вычислений в денежный формат.
- В первом столбце области элементов щелкните дважды на папке Функции (Functions), а затем щелкните на Встроенные функции (Build-In Functions). Во втором столбце отобразятся категории встроенных функций.
- Во втором столбце щелкните на категории Преобразование (Conversion), чтобы ограничить список функций в третьем столбце этой категорией. Щелкните дважды на функции Ccur в третьем столбце.
Построитель выражений
Выражения, используемые в фильтрах или запросах, обычно вводятся вручную или создаются с помощью функции Построитель выражений (Expression Builder). Чтобы открыть окно построителя, можно воспользоваться командой Построить (Build) в контекстном меню или щелкнуть на кнопке построителя : в конце поля, куда нужно ввести выражение.
Построитель выражений не является мастером, то есть, не проводит пользователя через процедуру построения выражения. Тем не менее он оказывает существенную помощь, предоставляя иерархические списки, содержащие большинство элементов (функций, операторов, полей), которые можно включить в выражение. Выбрав нужный элемент, можно скопировать его в поле выражения, а затем щелкнуть на кнопке ОК, чтобы поместить выражение в фильтр или запрос.
Функция преобразования в денежный формат вставлена в поле выражения. Вместо заполнителя <<expr>>, заключенного в скобки, нужно вставить выражение, вычисляющее число, которое будет преобразовано в денежный формат.
- Щелкните на <<expr>>, чтобы выделить его. Элемент, который вы вставите следующим, заменит выделенный фрагмент.
- Следующий элемент, который нужно вставить в выражение, - это поле Цена из таблицы Сведения о заказе. Щелкните дважды на элементе Таблицы (Tables), щелкните на Сведения о заказе, а затем щелкните дважды на Цена. Окно построителя выражений выглядит теперь, как показано ниже. В результате последнего действия курсор оказался в конце выражения, после поля Цена, что и требуется.
- Теперь нужно умножить значение поля Цена на значение поля Количество. Щелкните на кнопке * (звездочка) в ряду операторов, расположенном под полем выражения. В выражении появится знак умножения и очередной заполнитель <<Выражение>> (<<expr>>).
- Щелкните на заполнителе <<Выражение>> (<<expr>>), чтобы выделить его, и вставьте поле Количество, щелкнув дважды на нем во втором столбце. Введенное выражение вычисляет стоимость товара, умножая цену на количество. Но, чтобы получить окончательный результат, необходимо вычесть скидки, предлагаемые на отдельные товары. Скидки указаны в поле Скидки и составляют 10-20% от стоимости товара. Проще рассчитать процент, который нужно заплатить (80-90% от стоимости), чем вычислять скидку, а затем вычитать ее из стоимости товара.
- Введите *(1-, щелкните дважды на поле Скидка и введите закрывающую скобку ). Окно построителя выражений теперь выглядит как на рисунке (расширьте окно, чтобы отобразить выражение полностью). Хотя поле Скидка определено как процентное, в базе данных оно хранится в виде чисел от 0 до 1 (то есть, на экране отображается 10%, а в памяти хранится 0,1). Поэтому, если скидка составляет 10%, результат выражения (1- Скидка) равняется 0,9. Иначе говоря, при 10% скидке стоимость составит 0,9 от произведения цены на количество.
- Щелкните на кнопке ОК. Окно построителя выражений закроется, и выражение будет скопировано в ячейку бланка запроса.
- Нажмите на клавишу (Enter), чтобы завершить ввод выражения.Совет. Чтобы быстро подогнать ширину столбца под его содержимое, щелкните дважды на правой границе серой полосы вверху столбца.
- Access присвоил выражению имя Выражение1 (Expr1). Щелкните на нем дважды, чтобы выделить, и введите более содержательное имя Окончательная цена.
- Щелкните на кнопке Вид (View), чтобы отобразить результаты в режиме таблицы. Заказы теперь отсортированы по полю КодЗаказа, а в последнем столбце указана вычисленная стоимость товара.
- Прокрутите таблицу вниз, чтобы просмотреть несколько записей со скидками. Как видите, стоимость рассчитана правильно.
- Закройте окно запроса и щелкните на кнопке Да (Yes) в ответ на предложение сохранить изменения. Введите Сведения о заказе (окончательная цена) в качестве имени запроса и щелкните на кнопке ОК.
- Закройте базу данных.