當您只需要來自該欄位的任何值時,可以使用 DFirst 和 DLast 函數,從資料表或查詢中的特定欄位傳回隨機記錄。 在巨集、模組、查詢運算式或表單或報表上的計算控制項中使用 DFirst 和 DLast 函數。
語法
DFirst ( ** expr, domain [, criteria**] )
DLast ( ** expr, domain [, criteria**] )
DFirst 和 DLast 函數有下列引數:
| 引數 | 描述 |
|---|---|
| expr | 必要。 識別要從中尋找第一個或最後一個值的欄位的運算式。 它可以是識別資料表或查詢中欄位的字串運算式,或是在該欄位的資料上執行計算的運算式。 在 expr 中,您可以加入資料表中的欄位名稱、表單上的控制項、常數或函數。 如果 expr 包含函數,它可以是內建或使用者定義,但不得是另一個網域彙總或 SQL 彙總函數。 |
| domain | 必要。 識別構成範圍之記錄集的字串運算式。 |
| criteria | 可省略。 用來限制執行 DFirst 或 DLast 函數的資料範圍的字串運算式。 例如, criteria 通常相當於 SQL 運算式中的 WHERE 子句,但沒有 WHERE 字樣。 如果省略 準則 , 則 DFirst 和 DLast 函數會針對整個範圍評估 expr 。 準則 中包含的任何 欄位也必須是 範圍內的欄位;否則, DFirst 和 DLast 函式會傳回 Null。 |
註解
注意
如果您想要傳回網域) (記錄組中的第一筆或最後一筆記錄,您應該建立以遞增或遞減排序的查詢,並將 TopValues 屬性設為 1。 如需詳細資訊,請參閱 TopValues 屬性主題。 您也可以從 Visual Basic for Applications (VBA) 模組建立 ADO Recordset 物件,並使用 MoveFirst 或 MoveLast 方法傳回一組記錄中的第一筆或最後一筆記錄。
範例
| 運算式 | 結果 |
|---|---|
| SELECT DFirst (“DateofSale”,“ProductSales”) AS Expr1 FROM ProductSales GROUP BY DFirst (“DateofSale”,“ProductSales”) ; | 傳回 “ProductSales” 資料表中 “DateofSale” 欄位的隨機值。 如果資料表有「主索引鍵」,它將會根據主索引鍵的遞增順序傳回「DateofSale」的「FIRST」值。 |
| SELECT DLast (“DateofSale”,“ProductSales”) FirstDis_ID AS 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” 資料行中顯示結果。 |