「定義域集計関数」は、特定のテーブルやクエリから統計的な情報を取得するための関数群です。集計クエリのような機能をVBAから簡易的に使うための関数と考えられます。
一般の関数としてクエリの演算フィールドなどからも呼び出すことができますが、VBAのオブジェクト階層においては、Applicationオブジェクトのメソッドとなっています。
定義域集計関数の構文 |
※Exprでは、レコード数を求めるような場合は、データの重複しない主キーなどのフィールドを指定します。
※返り値については、もし該当するデータが見つからない場合はNullが返されます。これを利用して、Where条件に一致するレコードがあるかないかを1行のコードで確認することもできます。
|
■定義域集計関数の種類
メソッド |
返り値 |
DAvg |
平均値 |
DCount |
レコード数 |
DFirst |
先頭 |
DLast |
最後 |
DLookup |
定義域に含まれるフィールドの値 |
DMax |
最大値 |
DMin |
最小値 |
DstDev |
定義域を母集団の標本とする標準偏差の概算値 |
DstDevP |
定義域を母集団とする標準偏差の概算値 |
DSum |
合計値 |
DVar |
定義域を母集団の標本とする分散の概算値 |
DVarP |
定義域を母集団とする分散の概算値 |
■定義域集計関数の使用例
次のプログラムは、すべて「tbl書籍情報」テーブルからさまざまな情報を取得する例です。
'先頭レコードのタイトルを取得します
Debug.Print DFirst("タイトル", "tbl書籍情報")
'価格が3000円以上の最初のレコードのタイトルを取得します
Debug.Print DFirst("タイトル", "tbl書籍情報", "価格 >= 3000")
'価格が3000円以上の最後のレコードのタイトルを取得します
Debug.Print DLast("タイトル", "tbl書籍情報", "価格 >= 3000")
'全レコード数を取得します
Debug.Print DCount("ISBN", "tbl書籍情報")
'タイトルに"入門"を含むレコード数を取得します
Debug.Print DCount("ISBN", "tbl書籍情報", "タイトル Like '*入門*'")
'もっとも高い価格を取得します
Debug.Print DMax("価格", "tbl書籍情報")
'もっとも安い価格を取得します
Debug.Print DMin("価格", "tbl書籍情報")
'タイトルに"Excel"を含むもっとも安い価格を取得します
Debug.Print DMin("価格", "tbl書籍情報", "タイトル Like '*Excel*'")
'価格の合計を取得します
Debug.Print DSum("価格", "tbl書籍情報")
'価格の平均を取得します
Debug.Print DAvg("価格", "tbl書籍情報")
'発行日が2008/06/01以降の価格の平均を取得します
Debug.Print DAvg("価格", "tbl書籍情報", "発行日 >= #2008/06/01#")
|