Функцию DAvg можно использовать для вычисления среднего значения набора значений в указанном наборе записей (домене). Используйте функцию DAvg в модуле Visual Basic для приложений (VBA), в макросе, в выражении запроса или в вычисляемом элементе управления.
Например, можно использовать функцию DAvg в строке критериев запроса select по стоимости фрахта, чтобы ограничить результаты теми записями, где стоимость фрахта превышает среднее значение. Кроме того, можно использовать выражение, включающее функцию DAvg , в вычисляемом элементе управления и отобразить среднее значение предыдущих заказов рядом со значением нового порядка.
Синтаксис
DAvg(expr, domain [, criteria] )
Функция DAvg имеет следующие аргументы:
| Аргумент | Описание |
|---|---|
| выражение | Обязательный аргумент. Выражение, определяющее поле с числовыми данными, для которых требуется вычислить среднее значение. Это может быть строковое выражение, идентифицирующее поле в таблице или запросе, или выражение, выполняющее вычисление данных в этом поле. В expr можно включить имя поля в таблицу, элемент управления в форме, константу или функцию. Если expr включает функцию, она может быть встроенной или определяемой пользователем, но не может быть другой агрегатной или агрегатной функцией SQL. |
| подмножество | Обязательный аргумент. Строковое выражение, определяющее набор записей, которые образуют подмножество. Это может быть имя таблицы или имя запроса, для которого не требуются параметры. |
| условия | — необязательный аргумент. Строковое выражение, используемое для ограничения диапазона данных, на котором выполняется функция DAvg . Например, критерии часто эквивалентны предложению WHERE в выражении SQL без слова WHERE. Если условие опущено, функция DAvg оценивает expr для всего домена. Любое поле, включенное в условия, также должно быть полем в домене; В противном случае функция DAvg возвращает значение NULL. |
Замечания
Записи, содержащие значения NULL, при вычислении среднего значения не учитываются.
Независимо от того, используете ли вы функцию DAvg в макросе или модуле, в выражении запроса или в вычисляемом элементе управления, необходимо тщательно создать аргумент условия , чтобы убедиться, что он будет правильно оценен.
Функцию DAvg можно использовать для задания условий в строке "Условия" запроса. Предположим, что вы хотите просмотреть список всех продуктов, заказанных в количестве выше среднего. Для этого создайте запрос по таблицам "Заказы", "Заказано" и "Товары", включите поля "Марка" и "Количество" со следующим выражением в строке "Условия" под полем "Количество":
>DAvg("[Quantity]", "Orders")
Вы также можете использовать функцию DAvg в выражении вычисляемого поля в запросе или в строке Update To запроса на обновление.
Примечание
Вы можете использовать функцию DAvg или Avg в выражении вычисляемого поля в запросе итогов. При использовании функции DAvg значения усреднены перед группировкой данных. При использовании функции Avg данные группируются до усреднения значений в выражении поля.
Используйте функцию DAvg в вычисляемом элементе управления, если необходимо указать критерии для ограничения диапазона данных, по которым выполняется функция DAvg . Например, чтобы отобразить среднюю стоимость перевозки для отправлений, отправленных в Калифорнию, задайте для свойства ControlSource текстового поля следующее выражение:
=DAvg("[Freight]", "Orders", "[ShipRegion] = 'CA'")
Если вы просто хотите усреднить все записи в домене, используйте функцию Avg .
Функцию DAvg можно использовать в модуле или макросе либо в вычисляемом элементе управления в форме, если поле, которое требуется отобразить, не принадлежит к источнику записей, на котором основана форма. Например, предположим, что имеется форма, основанная на таблице "Заказы", и требуется включить поле "Количество" из таблицы "Заказано", чтобы отображать среднее число единиц товара, заказанных определенным клиентом. Для выполнения этих вычислений и отображения данных в форме используется функция DAvg.
Советы
- Если функция DAvg используется в вычисляемом элементе управления, его можно поместить в заголовке или примечании формы, чтобы значение не пересчитывалось каждый раз при переходе к новой записи.
- Если тип данных поля, из которого наследуется expr , является числом, функция DAvg возвращает тип данных Double. Если функция DAvg используется в вычисляемом элементе управления, для повышения производительности включите в выражение функцию преобразования типа данных.
- Хотя вы можете использовать функцию DAvg для определения среднего значения в поле во внешней таблице, может оказаться более эффективным создать запрос, содержащий все необходимые поля, а затем создать форму или отчет на основе этого запроса.
Примечание
Несохраненные изменения записей в домене не включаются при использовании этой функции. Если вы хотите, чтобы функция DAvg учитывала измененные значения, необходимо сначала сохранить изменения, нажав кнопку Сохранить запись в разделе Записи на вкладке Данные, переместив фокус на другую запись или используя метод Update.
Пример
Примечание
В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.
Следующая функция возвращает среднюю стоимость доставки для заказов, отправленных в указанный день или после него. Подмножеством является таблица "Заказы" (Orders). Аргумент criteria ограничивает результирующий набор записей на основе заданной страны или региона и даты отправки. Обратите внимание, что ключевое слово AND включается в строку для разделения нескольких полей в аргументе условия. Все записи, учитываемые при вычислении функции DAvg, отвечают обоим этим условиям.
Public Function AvgFreightCost _
(ByVal strCountryRegion As String, _
ByVal dteShipDate As Date) As Double
AvgFreightCost = DAvg("[Freight]", "Orders", _
"[ShipCountryRegion] = '" & strCountryRegion & _
"'AND [ShippedDate] >= #" & dteShipDate & "#")
End Function
Чтобы вызвать функцию, используйте следующую строку кода в окне интерпретации:
:AvgFreightCost "UK", #1/1/96#