DVar、DVarP 函数

应用对象
Microsoft 365 专属 Access Access 2021 Access 2019 Access 2016

可以使用 DVarDVarP 函数来估算指定记录集中的一组值 (域) 的差异。 在Visual Basic for Applications (VBA) 模块、宏、查询表达式或窗体或报表上的计算控件中使用 DVarDVarP 函数。

使用 DVarP 函数评估总体方差,使用 DVar 函数评估总体样本的方差。

例如,可以使用 DVar 函数计算一组学生考试分数的方差。

语法

DVar (expr、域 [, criteria] )

DVarP (expr、域 [, criteria] )

DVarDVarP 函数具有以下参数:

参数 说明
expr 必需。 一个表达式,用于标识要查找方差的数字字段。 它可以是标识表或查询中的字段的字符串表达式,也可以是对该字段中的数据执行计算的表达式。 在 expr 中,可以在表、窗体上的控件、常量或函数中包含名称字段。 如果 expr 包含函数,它可以是内置函数或用户定义的函数,但不能是其他域聚合函数或 SQL 聚合函数。 expr 中包含的任何字段都必须是数值字段。
必需。 一个字符串表达式,标识构成域的记录集。 它可以是表名,也可以是不需要参数的查询的查询名称。
条件 可选。 用于限制执行 DVar 或 DVarP 函数的数据范围的字符串表达式。 例如, 条件 通常等效于 SQL 表达式中的 WHERE 子句,而不使用 WHERE 一词。 如果省略 条件则 DVarDVarP 函数针对整个域评估 expr 条件中包含的任何字段也必须是域中的字段;否则,DVarDVarP 函数返回 Null。

备注

如果 引用的记录少于两个,或者满足 条件的记录少于两个, 则 DVarDVarP 函数返回 Null,指示无法计算方差。

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

可以使用 DVarDVarP 函数在选择查询的 “条件” 行、查询的计算字段表达式或更新查询的 “更新到” 行中指定条件。

注意

可以在总计查询的计算字段表达式中使用 DVarDVarP 函数或 VarVarP 函数。 如果使用 DVarDVarP 函数,则会在对数据进行分组之前计算值。 如果使用 VarVarP 函数,则会在计算字段表达式中的值之前对数据进行分组。

如果需要指定条件来限制执行函数的数据范围,请在计算控件中使用 DVar 和 DVarP 函数。 例如,若要显示要寄送到加州的订单的方差,请将文本框的 ControlSource 属性设置为以下表达式:

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

如果只想查找 域中所有记录的标准偏差,请使用 VarVarP 函数。

注意

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

查询示例

Expression 结果
SELECT DVar (“unitprice”,“productSales”,“unitprice>140”) AS DVar_Value, DVarP (“unitprice”,“productSales”,“unitprice<140”) AS DVarP_Value FROM productSales GROUP BY DVar (“unitprice”,“productSales”,“unitprice>140”) , DVarP (“unitprice”,“productSales”,“unitprice<140”) ; 计算“单位价格”大于 140 的“ProductSales”表的“UnitPrice”的方差,并在DVar_Value中显示结果。 还将计算“UnitPrice”的方差 (将给定数据视为整个总体) 其中“unitprice”小于 140,并在DVarP_Value中显示结果。

VBA 示例

注意

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

以下示例返回总体方差的估计值,以及运往英国的订单的总体样本。 域是 Orders 表。 criteria 参数将生成的记录集限制为 ShipCountryRegion 等于 UK 的记录集。

Dim dblX As Double
Dim dblY As Double
' Sample estimate.
dblX = DVar("[Freight]", "Orders", _
    "[ShipCountryRegion] = 'UK'")
' Population estimate.
dblY = DVarP("[Freight]", "Orders", _
    "[ShipCountryRegion] = 'UK'")

下一个示例通过使用 criteria 参数中的变量 strCountryRegion返回估计值。 请注意,字符串表达式中包含单引号 (') ,因此,当串联字符串时,字符串文本 UK 将括在单引号中。

Dim strCountryRegion As String
Dim dblX As Double
strCountryRegion = "UK"
dblX = DVar("[Freight]", "Orders", _
    "[ShipCountryRegion] = '" & strCountryRegion & "'")