Access VBA教程:DAvg函数

使用 DAvg函数可以计算特定记录集(一个域)内一组值的平均值。可以在 Visual Basic 代码、宏、查询表达式或计算控件中使用 DAvg函数。

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

DAvg(expr, domain, [criteria])

DAvg函数具有以下参数:

参数 说明
expr 一个表达式,代表要计算其平均值的数值数据字段。可以是用来标识表或查询中字段的字符串表达式,也可以是对该字段上的数据执行计算的表达式。在 expr 中可以包括表中字段的名称、窗体上的控件、常量或函数。如果 expr 包含函数,那么它可以是内置的,也可以是用户定义的,但不能是另一个域聚合函数或 SQL 聚合函数。
domain 字符串表达式,代表组成该域的记录集。可以是表名称或不需要参数的查询名称。
criteria 可选的字符串表达式,用于限制 Davg函数执行的数据范围。例如,criteria 通常等价于 SQL 表达式中的 WHERE 子句,只是不含 WHERE 关键字。如果忽略 criteria,DAvg函数将对整个域计算 expr。任何包含在 criteria 中的字段必须同时也是 domain 中的字段,否则 DAvg函数将返回Null。

说明

包含 Null 值的记录不能在平均值的计算中使用。

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

在查询的“条件”行中可以使用 DAvg函数来指定条件。例如,要查看所有定购数量在平均订购量以上的产品列表,可以基于“Orders”、“Order Details”和“Products”表创建一个查询,包含“Product Name”和“Quantity”字段,并在“Quantity”字段下的“条件”行中加入以下表达式:


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

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

注意   在总计查询的计算字段表达式中既可以使用 DAvg函数也可以使用 Avg函数。如果使用 DAvg函数,将在数据分组之前计算平均值。如果使用 DAvg函数,则在数据分组之后计算字段表达式的平均值。

当需要指定条件来限制 DAvg函数执行的数据范围时,应在计算控件中使用 DAvg函数。例如,要显示到 California 的运费的平均值,应将文本框的 ControlSource属性设为如下表达式:


=DAvg("[Freight]", "Orders", "[ShipRegion] = 'CA'")

如果只对所有 domain 中的记录计算平均值,则可使用 Avg函数。

如果要显示的字段不在窗体的基础记录源中时,可以在模块或宏中,或者窗体上的计算控件中,使用 DAvg函数。例如,有一个基于“订单”表的窗体,希望包含“订单明细”表中的“数量”字段,以显示按特定客户排序的项目平均值,可以使用 DAvg函数来执行这项计算并在窗体中显示该数据。

提示

注意   在使用该函数时,未保存在 domain 中的记录更改将不包括在内。如果要让 DAvg函数以更改后的数据为基础,方法是单击“记录”菜单中的“保存记录”、将焦点移动到另一条记录,或者使用 Update方法。

VBA示例

下面的函数返回已发货订单或特定日期的运费的平均值。域为“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

若要调用该函数,请在“立即”窗口中使用下列代码:


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

上页:Access VBA教程:Command函数 下页:Access VBA教程:DCount函数

Access VBA教程:DAvg函数

Access VBA教程:DCount函数 Access VBA教程:DDE函数
Access VBA教程:DDEInitiate函数 Access VBA教程:DDERequest函数
Access VBA教程:DDESend函数 Access VBA教程:DFirst、DLast函数
Access VBA教程:不同字符串值的不同格式(Format函数) Access VBA教程:DLookup函数
Access VBA教程:DMin、DMax函数 Access VBA教程:DStDev、DStDevP函数
Access VBA教程:DSum函数 Access VBA教程:DVar、DVarP函数
Access VBA教程:EuroConvert函数 Access VBA教程:Eval函数
Access VBA教程:GUIDFromString函数 Access VBA教程:LoadPicture方法
Access VBA教程:Nz函数 Access VBA教程:StringFromGUID函数
Access VBA教程:隐藏的语言元素 Access VBA教程:在子窗体或子报表中调用过程
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号