Метод Application.DAvg (Access)
Используйте функцию DAvg для вычисления среднего значения набора значений в указанном наборе записей (домене).
Синтаксис
expression. DAvg (expr, domain, criteria)
выражение: переменная, представляющая объект Application.
Параметры
Имя | Обязательный или необязательный | Тип данных | Описание |
---|---|---|---|
Expr | Обязательный | String | Выражение, идентифицирующее поле, содержащее числовые данные, которые требуется усреднить. Это может быть строковое выражение, идентифицирующее поле в таблице или запросе, или выражение, выполняющее вычисление данных в этом поле. В Expr_можно включить имя поля в таблицу, элемент управления в форме, константу или функцию. Если Expr включает функцию, она может быть встроенной или определяемой пользователем, но не может быть другой агрегатной или агрегатной функцией SQL. |
Домен | Обязательный | String | Строковое выражение, идентифицирующее набор записей, составляющих домен. Это может быть имя таблицы или имя запроса, который не требует параметра. |
Criteria | Необязательный | Variant | Необязательное строковое выражение, используемое для ограничения диапазона данных, на котором выполняется функция DAvg . Например, критерии часто эквивалентны предложению WHERE в выражении SQL без слова WHERE. Если условие опущено, функция DAvg оценивает Expr для всего домена. Любое поле, включенное в критерии, также должно быть полем в домене; В противном случае функция DAvg возвращает значение NULL. |
Возвращаемое значение
Variant
Примечания
Например, можно использовать функцию DAvg в строке критериев запроса select по стоимости фрахта, чтобы ограничить результаты теми записями, где стоимость перевозки превышает среднее значение. Кроме того, можно использовать выражение, включающее функцию DAvg , в вычисляемом элементе управления и отобразить среднее значение предыдущих заказов рядом со значением нового порядка.
Записи, содержащие значения NULL , не включаются в вычисление среднего значения.
Независимо от того, используете ли вы функцию DAvg в макросе или модуле, в выражении запроса или в вычисляемом элементе управления, необходимо тщательно создать аргумент Criteria , чтобы убедиться, что он будет правильно оценен.
Используйте функцию 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 можно использовать для определения среднего значения поля во внешней таблице, может оказаться более эффективным создать запрос, содержащий все необходимые поля, а затем создать форму или отчет на основе этого запроса.
Пример
Следующая функция возвращает среднюю стоимость фрахта для заказов, отправляемых на указанную дату или после нее. Домен — это таблица Orders. Аргумент Criteria ограничивает результирующий набор записей на основе заданной страны и даты отправки. Обратите внимание, что ключевое слово AND включается в строку для разделения нескольких полей в аргументе Criteria . Все записи, включенные в вычисление функции DAvg , будут иметь оба этих условия.
Public Function AvgFreightCost(ByVal strCountry As String, _
ByVal dteShipDate As Date) As Double
AvgFreightCost = DAvg("[Freight]", "Orders", _
"[ShipCountry] = '" & strCountry & _
"'AND [ShippedDate] >= #" & dteShipDate & "#")
End Function
В следующих примерах показано, как использовать различные типы условий с функцией DAvg .
' ***************************
' Typical Use
' Numerical values. Replace "number" with the number to use.
variable = DAvg("[FieldName]", "TableName", "[Criteria] = number")
' Strings.
' Numerical values. Replace "string" with the string to use.
variable = DAvg("[FieldName]", "TableName", "[Criteria]= 'string'")
' Dates. Replace "date" with the string to use.
variable = DAvg("[FieldName]", "TableName", "[Criteria]= #date#")
' ***************************
' ***************************
' Referring to a control on a form
' Numerical values
variable = DAvg("[FieldName]", "TableName", "[Criteria] = " & Forms!FormName!ControlName)
' Strings
variable = DAvg("[FieldName]", "TableName", "[Criteria] = '" & Forms!FormName!ControlName & "'")
' Dates
variable = DAvg("[FieldName]", "TableName", "[Criteria] = #" & Forms!FormName!ControlName & "#")
' ***************************
' ***************************
' Combinations
' Multiple types of criteria
variable = DAvg("[FieldName]", "TableName", "[Criteria1] = " & Forms![FormName]![Control1] _
& " AND [Criteria2] = '" & Forms![FormName]![Control2] & "'" _
& " AND [Criteria3] =#" & Forms![FormName]![Control3] & "#")
' Use two fields from a single record.
variable = DAvg("[LastName] & ', ' & [FirstName]", "tblPeople", "[PrimaryKey] = 7")
' Expressions
variable = DAvg("[Field1] + [Field2]", "tableName", "[PrimaryKey] = 7")
' Control Structures
variable = DAvg("IIf([LastName] Like 'Smith', 'True', 'False')", "tableName", "[PrimaryKey] = 7")
' ***************************
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.