DFirst、DLast 関数

適用先
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

DFirst および DLast 関数を使うと、テーブルやクエリの特定のフィールドの値を何でもいいから 1 つ必要なときに、そのフィールドからランダムにレコードを取得できます。 フォームまたはレポートのマクロ、モジュール、クエリ式、または演算コントロールで DFirst 関数と DLast 関数を使用します。

構文

DFirst( ** expr, domain [, criteria**] )

DLast( ** expr, domain [, criteria**] )

DFirst 関数および DLast 関数の引数は次のとおりです。

引数 説明
expr 必須。 最初または最後の値を取得するフィールドを示す式。 テーブルまたはクエリ内のフィールドを識別する文字列式でも、そのフィールド内のデータに対して計算を実行する式でもかまいません。 expr では、テーブル内のフィールド名、フォーム上のコントロール、定数、または関数の名前を含めることができます。 expr に関数が含まれている場合は、組み込み関数またはユーザー定義関数にすることができますが、別のドメイン集約関数または SQL 集約関数は含まれません。
domain 必須。 定義域を構成するレコード セットを識別する文字列式。
criteria 省略可能です。 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" に結果を表示します。