Application.DAvg 方法 (Access)

使用 DAvg 函数可以计算指定记录集中一组值的平均值, (域) 。

语法

表达式DAvg (Expr条件)

expression:表示 Application 对象的变量。

参数

名称 必需/可选 数据类型 说明
Expr 必需 字符串 一个表达式,标识包含要求平均值的数字数据的字段。 它可以是标识表或查询中的字段的字符串表达式,也可以是对该字段中的数据进行计算的表达式。 在 Expr_中,可以在表中包括字段的名称、窗体上的控件、常量或函数。 如果 Expr 包含函数,它可以是内置函数或用户定义的函数,但不能是其他域聚合函数或 SQL 聚合函数。
必需 字符串 字符串表达式,用于标识组成域的记录集。 可以是表名称或不需要参数的查询的查询名称。
Criteria 可选 Variant 可选的字符串表达式,用于限制作为 DAvg 函数执行对象的数据的范围。 例如, Criteria 通常等效于 SQL 表达式中的 WHERE 子句,而不使用 WHERE 一词。 如果省略 Criteria则 DAvg 函数针对整个域评估 ExprCriteria 中包含的任何字段也必须是中的字段;否则,DAvg 函数返回 Null

返回值

Variant

备注

例如,可以在选择查询的运费字段所对应的条件行中使用 DAvg 函数,来限制返回运费超过平均值以上的记录。 或者在计算控件中使用包含 DAvg 函数的表达式,在新订单值旁边显示以前订单的平均值。

包含 Null 值的记录不计入平均值的计算。

无论是在宏或模块、查询表达式还是计算控件中使用 DAvg 函数,都必须仔细构造 Criteria 参数,以确保正确计算它。

使用 DAvg 函数在查询的“条件”行中指定条件。 例如,假设你想要查看按数量超过平均订单数量的所有订购产品的列表。 可以针对“订单”、“订单详细信息”和“产品”表创建查询,并在“数量”字段下的“条件”行中包含“ 产品名称” 字段和“ 数量 ”字段,其表达式如下:

>DAvg("[Quantity]", "Orders")

还可以在查询的计算字段表达式或更新查询的“更新到”行中使用 DAvg 函数。

注意

在总计查询的计算字段表达式中使用 DAvgAvg 函数。 如果使用 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。