Application.DAvg 方法 (Access)
使用 DAvg 函数可以计算指定记录集中一组值的平均值, (域) 。
语法
表达式。DAvg (Expr、 域、 条件)
expression:表示 Application 对象的变量。
参数
名称 | 必需/可选 | 数据类型 | 说明 |
---|---|---|---|
Expr | 必需 | 字符串 | 一个表达式,标识包含要求平均值的数字数据的字段。 它可以是标识表或查询中的字段的字符串表达式,也可以是对该字段中的数据进行计算的表达式。 在 Expr_中,可以在表中包括字段的名称、窗体上的控件、常量或函数。 如果 Expr 包含函数,它可以是内置函数或用户定义的函数,但不能是其他域聚合函数或 SQL 聚合函数。 |
域 | 必需 | 字符串 | 字符串表达式,用于标识组成域的记录集。 可以是表名称或不需要参数的查询的查询名称。 |
Criteria | 可选 | Variant | 可选的字符串表达式,用于限制作为 DAvg 函数执行对象的数据的范围。 例如, Criteria 通常等效于 SQL 表达式中的 WHERE 子句,而不使用 WHERE 一词。 如果省略 Criteria , 则 DAvg 函数针对整个域评估 Expr 。 Criteria 中包含的任何字段也必须是域中的字段;否则,DAvg 函数返回 Null。 |
返回值
Variant
备注
例如,可以在选择查询的运费字段所对应的条件行中使用 DAvg 函数,来限制返回运费超过平均值以上的记录。 或者在计算控件中使用包含 DAvg 函数的表达式,在新订单值旁边显示以前订单的平均值。
包含 Null 值的记录不计入平均值的计算。
无论是在宏或模块、查询表达式还是计算控件中使用 DAvg 函数,都必须仔细构造 Criteria 参数,以确保正确计算它。
使用 DAvg 函数在查询的“条件”行中指定条件。 例如,假设你想要查看按数量超过平均订单数量的所有订购产品的列表。 可以针对“订单”、“订单详细信息”和“产品”表创建查询,并在“数量”字段下的“条件”行中包含“ 产品名称” 字段和“ 数量 ”字段,其表达式如下:
>DAvg("[Quantity]", "Orders")
还可以在查询的计算字段表达式或更新查询的“更新到”行中使用 DAvg 函数。
注意
在总计查询的计算字段表达式中使用 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 支持和反馈,获取有关如何接收支持和提供反馈的指南。