DLookUp関数

 テーブルやクエリに含まれる列(フィールド)で、指定した列に記録されている値を返します。対象とする行(レコード)を指定する(絞り込む)ことができます。

使用例

 例として右のようなテーブルを用います。


 クエリを作成し、次のような列を設けます。



数学点数照合: DLookUp("数学点数","成績テーブル","受験番号=3")


 データシートビューです。数学の点数のうち、「受験番号が3である」という条件を満たす行(3行目)の値、つまり55が得られています。


 上記テーブルに基づく実行結果の例をいくつか挙げてみます。

表記例出力例説明
DLookUp("数学点数","成績テーブル","受験番号=3")55
DLookUp("数学点数","成績テーブル")88条件を指定しないと指定した列の「最初の値」が返されます。ただし、最初の値とはテーブルの一番上に表示されている値とは限らず、明確なところはユーザーには判断できません。よってこの出力例はある意味偶然です。通常は上記のように、ただ1つの行を特定できるような条件を指定してください
DLookUp("英語点数","成績テーブル","受験番号>=3")81条件を満たす行が複数ある場合は、それらのうち最初の値が返されます。これについても、データの順番というものが決して明確ではないため注意が必要です

書式

DLookup(列名,レコードセット名[,条件])

 列名はダブルクォーテーション(")で囲む必要があります。
 レコードセットにはテーブルやクエリの名前をやはりダブルクォーテーションで囲って指定します。
 条件は対象となる行を絞り込むためのものです。通常は、行のうちただ1つを特定できるような条件を指定しますが、省略することもできます。

備考

 比較的多用される関数ですが、多数の値を一括して表引きするような場合は、クエリを使って結合(Join)を行うのが基本となりますので、ExcelのVLOOKUP関数ほど頻出というわけではありません。

 なお、上記の使用例は形式的なものであまり意味がありませんが、より実用的な(他のテーブルから値を参照・抽出する)例については次の記事を参考としてください。複数の条件(値)に基づき抽出する例も記載しています。

www.accessdbstudy.net

 また、ExcelのVLOOKUP関数による近似値検索(あいまい検索)のAccessにおける実現例については次の記事をご覧ください。

www.accessdbstudy.net