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 関数を実行するデータの範囲を制限するために使用される文字列式。 たとえば、 条件 は、多くの場合、WHERE という単語を含まない SQL 式の 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"); "割引" 値が "0" であるテーブル "ProductSales" から Last "ProductID" を返し、結果を列 "LastDis_ID" に表示します。