Applies ToMicrosoft 365 专属 Access Access 2024 Access 2021 Access 2019 Access 2016

可以使用 DAvg 函数计算指定记录集中一组值的平均值, ( 域 ) 。 在 Visual Basic for Applications (VBA) 模块、 宏 、查询表达式或 计算控件 中使用 DAvg 函数。

例如,可以在货运成本选择查询的条件行中使用 DAvg 函数,将结果限制为货运成本超过平均值的记录。 或者,可以在计算控件中使用包含 DAvg 函数的表达式,并在新订单的值旁边显示以前订单的平均值。

语法

DAvg ( expr 、域 [, criteria] )

DAvg 函数语法具有以下参数:

参数

说明

expr

必需。 一个表达式,标识包含要求平均值的数字数据的字段。 它可以是标识表或查询中的字段的 字符串表达式 ,也可以是对该字段中的数据执行计算的表达式。 在 expr 中,可以在表中包括字段的名称、窗体上的控件、常量或函数。 如果 expr 包含函数,它可以是内置函数或用户定义的函数,但不能是其他域聚合函数或 SQL 聚合函数。

必需。 一个字符串表达式,标识构成域的记录集。 它可以是表名,也可以是不需要参数的查询的查询名称。

条件

可选。 用于限制执行 DAvg 函数的数据范围的字符串表达式。 例如, 条件 通常等效于 SQL 表达式中的 WHERE 子句,而不使用 WHERE 一词。 如果省略 条件则 DAvg 函数会针对整个域评估 exprcriteria 中包含的任何字段也必须是域中的字段;否则,DAvg 函数返回 Null。

备注

包含 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 函数确定 外表 中某个字段中值的平均值,但创建包含所有所需字段的查询,然后基于该查询创建窗体或报表的查询可能更有效。

注意: 使用此函数时,不包括 对域中 记录的未保存更改。 如果希望 DAvg 函数基于更改的值,必须先通过单击“数据”选项卡上的“记录”下的“保存记录”、将焦点移动到另一条记录或使用 Update 方法保存更改。

示例

注意: 下面的示例演示了如何在 Visual Basic for Applications (VBA) 模块中使用此函数。 有关使用 VBA 的详细信息,请在搜索旁边的下拉列表中选择“开发人员参考”,并在搜索框中输入一个或多个术语。

以下函数返回给定日期或之后发货的订单的平均运费。 域是 Orders 表。 criteria 参数根据给定的国家/地区和发货日期限制生成的记录集。 请注意,关键字 (keyword) AND 包含在字符串中,用于分隔 criteria 参数中的多个字段。 DAvg 函数计算中包含的所有记录都具有这两个条件。

Public Function AvgFreightCost _    (ByVal strCountryRegion As String, _     ByVal dteShipDate As Date) As Double    AvgFreightCost = DAvg("[Freight]", "Orders", _        "[ShipCountryRegion] = '" & strCountryRegion & _        "'AND [ShippedDate] >= #" & dteShipDate & "#")End Function

若要调用 函数,请在“即时”窗口中使用以下代码行:

:AvgFreightCost "UK", #1/1/96#

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。