Иллюстрированный самоучитель по Microsoft Access 2002

Использование статистических функций в формах

Функция DLookup

Обычно используется для вывода в форме значения поля из таблицы, не входящей в базовый запрос. Например, в форме "Заказы" (Orders) можно отобразить дополнительные поля из таблицы "Клиенты" (Customers), которые не были включены в базовый запрос. Например, чтобы отобразить значение поля "Телефон" (Phone), в качестве значения свойства Данные (Control Source) вычисляемого элемента управления нужно ввести следующее выражение:

= DLookup("[Телефон]"; "[Клиенты]"; "[КодКлиента] = '" & Forms!{Заказы]![КодКлиента] & '"")

Для английской версии Access:

= DLookUp("[Phone]"; "[Customers]"; "[CustomerlD] = '" & Forms![Orders]![CustomerlD] & "'")

Критерием для выбора записи из таблицы "Клиенты" (Customers) является поле "КодКлиента" (CustomerlD) в форме "Заказы" (Orders).

Замечание
В данном случае выбор записей идет по полю текстового типа "КодКлиента" (CustomerlD), поэтому условие на его значение должно задаваться в виде строки, заключенной в кавычки или апострофы. Для этого необходима конкатенация заданного в условии значения с двух сторон с апострофом или кавычкой. Включение апострофа в строку не отличается от включения обычной буквы или цифры, а чтобы включить в строку символ кавычки, ее придется удвоить, чтобы она отличалась от кавычек, ограничивающих само строковое значение. Таким образом, если строка состоит из одной кавычки, она будет выглядеть так: """", в нашем примере для задания условия на текстовое значение мы использовали апострофы
.

Функции Dcount и DSum

Предположим, в форме "Заказы" (Orders) требуется создать вычисляемые поля для отображения количества заказов, сделанных клиентом, и общей суммы заказов. Для этого нужно создать два вычисляемых поля, а в качестве значений свойства Данные (Control Source) ввести следующие выражения:

= DCount("[КодЗаказа]"; "[Заказы]"; "[КодКлиента] = '" & Forms![Заказы]![КодКлиента] & '"")
= DSum("[ОтпускнаяЦена]"; "'[Счета]"; "[КодКлиента] = '" & Forms![Заказы]![КодКлиента] & "'")

Для английской версии Access, соответственно:

= DCount("[OrderID]"; "[Orders]"; "[CustomerlD] = '" & Forms![Orders]![CustomerlD] & "'")
= DSum("[ExtendedPrice]"; "[Invoices]"; "[CustomerlD] = '" & Forms![Orders]![CustomerlD] & "'")

Функция DMax

Часто требуется организовать счетчик в одном из полей формы, например номер заказа должен при вводе каждой новой записи увеличиваться на единицу. Стандартный тип поля Счетчик (AutoNumber) не всегда подходит для этих целей, т. к. значение в поле такого типа нельзя вводить вручную. Если должна допускаться ручная корректировка номера заказа, удобнее для хранения номера заказа добавить в таблицу обычное числовое поле, а в форму поместить присоединенное к нему вычисляемое поле, у которого в свойстве Значение по умолчанию (Default Value) задано выражение:

= DMax("[КодЗаказа]"; "[Заказы]") + 1

Для английской версии:

= DMax("[OrderlD]"; "[Orders]") + 1
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.