Поделиться через


Метод 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 и обратная связь.