可以使用 DMinDMax 函数来确定指定记录集中的最小值和最大值, ( 域 ) 。 在 Visual Basic for Applications 中使用 DMinDMax 函数 (VBA) 模块、 宏 、查询表达式或 计算控件 。

例如,可以在报表的计算控件中使用 DMinDMax 函数来显示特定客户的最小和最大订单量。 或者,可以在查询表达式中使用 DMin 函数来显示折扣高于可能的最低折扣的所有订单。

语法

DMin ( expr 、域 [, criteria] )

DMax ( expr 、域 [, criteria] )

DMinDMax 函数具有以下参数:

参数

说明

expr

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

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

条件

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

备注

DMinDMax 函数返回满足条件的最小值和最大值。 如果 expr 标识数值数据, 则 DMinDMax 函数返回数值。 如果 expr 标识字符串数据,则按字母顺序返回第一个或最后一个字符串。

DMinDMax 函数忽略 expr 引用的字段中的 Null 值。 但是,如果没有记录满足 条件 不包含任何记录, 则 DMinDMax 函数返回 Null

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

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

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

如果需要指定条件来限制执行函数的数据范围,请在计算控件中使用 DMinDMax 函数。 例如,若要显示发往加州的订单的最高运费,请将文本框的 ControlSource 属性设置为以下表达式:

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

如果只想查找 域中所有记录的最小值或最大值,请使用 MinMax 函数。

如果需要显示的字段不在窗体所基于的记录源中,则可以在模块、宏或窗体上的计算控件中使用 DMinDMax 函数。

提示

尽管可以使用 DMin 或 DMax 函数从 外表 中的字段中查找最小值或最大值,但创建包含表中所需字段的查询并基于该查询创建查询可能更有效。

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

示例

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

以下示例返回发往英国的订单的“货运”字段中的最低值和最大值。 域是 Orders 表。 criteria 参数将生成的记录集限制为 ShipCountryRegion 等于 UK 的记录集。

Dim curX As Currency
Dim curY As Currency
curX = DMin("[Freight]", "Orders", _
    "[ShipCountryRegion] = 'UK'")
curY = DMax("[Freight]", "Orders", _
    "[ShipCountryRegion] = 'UK'")

在下一个示例中, criteria 参数包括名为 OrderDate 的文本框的当前值。 文本框绑定到 Orders 表中的 OrderDate 字段。 请注意,对 控件的引用不包括在双引号中, (“) 表示字符串。 这可确保每次调用 DMax 函数时,Access 都会从控件获取当前值。

Dim curX As Currency
curX = DMax("[Freight]", "Orders", "[OrderDate] = #" _
    & Forms!Orders!OrderDate & "#")

在下一个示例中,criteria 表达式包含变量, dteOrderDate。 请注意,数字符号 (#) 包含在字符串表达式中,以便在串联字符串时,它们将括起日期。

Dim dteOrderDate As Date
Dim curX As Currency
dteOrderDate = #03/30/2000#
curX = DMin("[Freight]", "Orders", _
    "[OrderDate] = #" & dteOrderDate & "#")

需要更多帮助?

需要更多选项?

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

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