当只需要该字段中的任何值时,可以使用 DFirst 和 DLast 函数从表或查询中的特定字段返回随机记录。 在窗体或报表上的 宏 、模块、查询表达式或 计算控件 中使用 DFirst 和 DLast 函数。
语法
DFirst ( expr ,域 [, criteria] )
DLast ( expr ,域 [, criteria] )
DFirst 和 DLast 函数具有以下参数:
参数 |
说明 |
expr |
必需。 一个表达式,用于标识要从中查找第一个或最后一个值的字段。 它可以是标识表或查询中的字段的 字符串表达式 ,也可以是对该字段中的数据执行计算的表达式。 在 expr 中,可以在表中包括字段的名称、窗体上的控件、常量或函数。 如果 expr 包含函数,它可以是内置函数或用户定义的函数,但不能是其他域聚合函数或 SQL 聚合函数。 |
域 |
必需。 一个字符串表达式,标识构成域的记录集。 |
条件 |
可选。 用于限制执行 DFirst 或 DLast 函数的数据范围的字符串表达式。 例如, 条件 通常等效于 SQL 表达式中的 WHERE 子句,而不使用 WHERE 一词。 如果省略 条件 , 则 DFirst 和 DLast 函数针对整个域评估 expr 。 条件中包含的任何字段也必须是域中的字段;否则,DFirst 和 DLast 函数返回 Null。 |
备注
注意: 如果要返回一组记录中的第一条或最后一条记录 ( 域 ) ,则应创建按升序或降序排序的查询,并将 TopValues 属性设置为 1。 有关详细信息,请参阅 TopValues 属性主题。 在 Visual Basic for Applications (VBA) 模块中,还可以创建 ADO Recordset 对象,并使用 MoveFirst 或 MoveLast 方法返回一组记录中的第一条或最后一条记录。
示例
Expression |
结果 |
SELECT DFirst (“DateofSale”,“ProductSales”) AS Expr1 FROM ProductSales GROUP BY DFirst (“DateofSale”,“ProductSales”) ; |
返回表“ProductSales”字段“DateofSale”中的随机值。 如果表具有“主键”,它将根据主键的升序返回“DateofSale”的“FIRST”值。 |
SELECT DLast (“DateofSale”,“ProductSales”) AS FirstDis_ID FROM ProductSales GROUP BY DLast (“DateofSale”,“ProductSales”) ; |
返回表“ProductSales”字段“DateofSale”中的随机值。 如果表具有“主键”,它将根据主键的升序返回“DateofSale”的“LAST”值。 从表“ProductSales”返回第一个“ProductID”,其中“Discount”值为“0”,并在“FirstDis_ID”列中显示结果。 |
SELECT DLast (“ProductID”,“ProductSales”,“Discount=0”) AS LastDis_ID FROM ProductSales GROUP BY DLast (“ProductID”,“ProductSales”,“Discount=0”) ; |
返回表“ProductSales”中的最后一个“ProductID”,其中“Discount”值为“0”,并在“LastDis_ID”列中显示结果。 |