Создание вычисляемых полей
Простейшим вычисляемым полем является поле, в котором должна выводиться текущая дата. Чтобы создать такое поле:
- Создайте свободный элемент управления типа Поле (Text Box) в нужном месте формы.
- Прямо в поле введите выражение =Date (). Знак равенства обязателен.
- Откройте окно Свойства (Properties) для этого элемента и задайте для свойства Формат поля (Format) желаемый формат даты, например Длинный формат даты (Long Date).
- Установите длину поля таким образом, чтобы в нем помещалось необходимое количество символов.
- Измените название метки этого текстового поля. Созданное поле будет выглядеть, как показано на рис. 9.47.
Рис. 9.47. Вычисляемое поле
Обычно для создания вычисляемых полей выбирают именно элемент управления Текстовое поле, хотя это и необязательно. Допускается использовать для этого любые элементы управления, имеющие свойство Данные (Control Source).
Именно в свойстве Данные (Control Source) должно быть задано выражение, которое вычисляет значение этого элемента. Ввод выражения допускается прямо в элемент управления, как мы и сделали это в примере. Однако, если выражение достаточно длинное, его неудобно вводить прямо в поле. Можно ввести выражение в ячейку свойства Данные (Control Source) в окне Свойства (Properties), а если выражение не помещается в ячейке свойства, просто нажать комбинацию клавиш <Shiftl>+<F2> и открыть окно Область ввода (Zoom). Еще можно воспользоваться Построителем выражений.
Вычисляемые поля создаются чаще всего в табличных или ленточных формах для отображения столбца с какими-нибудь вычисленными значениями. Например, стоимость товара рассчитывается как значение выражения Цена * Количество. Для отображения таких расчетных данных используют два способа:
- Первый способ основан на том, что форма строится на базе запроса, в который включают вычисляемые столбцы. В форме создается текстовое поле, у которого в качестве источника данных указывается вычисляемый столбец запроса. Поле блокируется, чтобы пользователь не мог изменить данные в нем, ведь эти данные вычисляются в процессе выполнения запроса.
- Во втором случае форма может строиться прямо на базе таблицы. В ней создается текстовое поле, в котором в качестве источника данных указывается выражение, например = [Цена за единицу] * Количество. При этом в выражении необязательно указываются те поля, которые включены в форму, а любые поля базовой таблицы.
Замечание
При ссылках на поля в выражениях обязательно использование квадратных скобок, если название поля содержит пробелы; в остальных случаях можно обходиться без них.
Первый способ в большинстве случаев предпочтительнее, т. к. такой запрос может быть использован не только в одной форме, но и в отчетах и в других формах. Примером такой организации расчетов может служить форма "Подчиненная форма заказов" (Orders Subform) базы данных "Борей". Она основана на запросе "Сведения о заказах" (Order Details Extended), в котором создано вычисляемое поле "ОтпускнаяЦена" (ExtendedPrice), содержащее формулу:
ОтпускнаяЦена:
CCur([Заказано].[Цена]*[Количество]*(1-[Скидка])/100}*100
в примере английской версии Access:
ExtendedPrice:
CCur([Order Details].UnitPrice*[Quantity]*(1-[Discount])/100)*100
Свойство Данные (Control Source) элемента управления ОтпускнаяЦена
(ExtendedPrice) в форме имеет значение "ОтпускнаяЦена" (ExtendedPrice) — имя вычисляемого поля запроса.
Замечание
В приведенной выше формуле CCur — это функция, которая преобразует значение выражения в тип Денежный (Currency).