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 メソッドを使って、レコード セットの最初のレコードまたは最後のレコードを取得することもできます。
例
式 |
結果 |
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" に表示します。 |