Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Используйте функцию 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 и обратная связь.