可以使用 DVar 和 DVarP 函数来估算指定记录集中的一组值 ( 域 ) 的差异。 在Visual Basic for Applications ( VBA) 模块、 宏 、查询表达式或窗体或报表上的 计算控件 中使用 DVar 和 DVarP 函数。
使用 DVarP 函数评估总体方差,使用 DVar 函数评估总体样本的方差。
例如,可以使用 DVar 函数计算一组学生考试分数的方差。
语法
DVar ( expr 、domain [, criteria] )
DVarP ( expr 、domain [, criteria] )
DVar 和 DVarP 函数具有以下参数:
参数 |
说明 |
expr |
必需。 一个表达式,用于标识要查找方差的数字字段。 它可以是标识表或查询中的字段的 字符串表达式 ,也可以是对该字段中的数据执行计算的表达式。 在 expr 中,可以在表、窗体上的控件、常量或函数中包含名称字段。 如果 expr 包含函数,它可以是内置函数或用户定义的函数,但不能是其他域聚合函数或 SQL 聚合函数。 expr 中包含的任何字段都必须是数值字段。 |
域 |
必需。 一个字符串表达式,标识构成域的记录集。 它可以是表名,也可以是不需要参数的查询的查询名称。 |
条件 |
可选。 用于限制执行 DVar 或 DVarP 函数的数据范围的字符串表达式。 例如, 条件 通常等效于 SQL 表达式中的 WHERE 子句,而不使用 WHERE 一词。 如果省略 条件 , 则 DVar 和 DVarP 函数针对整个域评估 expr 。 条件中包含的任何字段也必须是域中的字段;否则,DVar 和 DVarP 函数返回 Null。 |
备注
如果 domain 引用的记录少于两条,或者满足 criteria 的记录少于两条, 则 DVar 和 DVarP 函数返回 Null,指示无法计算方差。
无论是在宏、模块、查询表达式还是计算控件中使用 DVar 或 DVarP 函数,都必须仔细构造 criteria 参数,以确保正确计算该参数。
可以使用 DVar 和 DVarP 函数在选择查询的 “条件” 行、查询的计算字段表达式或更新查询的 “更新到” 行中指定条件。
注意: 可以在 总计查询 中的计算字段表达式中使用 DVar 和 DVarP 函数或 Var 和 VarP 函数。 如果使用 DVar 或 DVarP 函数,则会在对数据进行分组之前计算值。 如果使用 Var 或 VarP 函数,则会在计算字段表达式中的值之前对数据进行分组。
如果需要指定条件来限制执行函数的数据范围,请在计算控件中使用 DVar 和 DVarP 函数。 例如,若要显示要寄送到加州的订单的方差,请将文本框的 ControlSource 属性设置为以下表达式:
=DVar("[Freight]", "Orders", "[ShipRegion] = 'CA'")
如果只想查找 域中所有记录的标准偏差,请使用 Var 或 VarP 函数。
注意: 使用这些函数时,不包括 对域中 记录的未保存更改。 如果希望 DVar 或 DVarP 函数基于更改的值,必须先通过单击“数据”选项卡上“记录”下的“保存记录”,将焦点移到另一条记录,或使用 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 & "'")