如果只需要表或查询中的特定字段的任何值,可以使用 DFirst 和 DLast 函数从该字段返回随机记录。 在窗体或报表上的宏、模块、查询表达式或计算控件中使用 DFirst 和 DLast 函数。
语法
DFirst ( ** expr, domain [, criteria**] )
DLast ( ** expr, domain [, criteria**] )
DFirst 和 DLast 函数具有以下参数:
| 参数 | 说明 |
|---|---|
| expr | 必需。 标识要从中查找第一个或最后一个值的字段的表达式。 它可以是标识表或查询中字段的字符串表达式,也可以是对该字段中的数据执行计算的表达式。 在 expr 中,您可以包含表中的字段名称、窗体上的控件、常量或函数的名称。 如果 expr 包含一个函数,则它可以是内置的或用户定义的,但不能是另一个域聚合或 SQL 聚合函数。 |
| 域 | 必需。 标识构成域的记录集的字符串表达式。 |
| 条件 | 可选。 用于限制对其执行 DFirst 或 DLast 函数的数据范围的字符串表达式。 例如, criteria 通常等效于 SQL 表达式中的 WHERE 子句,而不包含单词 WHERE。 如果省略 条件 , DFirst 和 DLast 函数将针对整个域计算 expr 。 条件中包含的任何字段也必须是域中的字段;否则,DFirst 和 DLast 函数返回 Null。 |
备注
注意
如果要返回域) (一组记录中的第一条或最后一条记录,则应创建一个按升序或降序排序的查询,并将 TopValues 属性设置为 1。 有关详细信息,请参阅 TopValues 属性主题。 在 Visual Basic for Applications (VBA) 模块中,还可以创建 ADO 记录集对象,并使用 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”中。 |