當您只需要來自該欄位的任何值時,您可以使用 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 一詞。 如果省略 criteria,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」數據表中「折扣」值為「0」的「產品標識碼」,並在「LastDis_ID」欄中顯示結果。 |