トップ > スキル : アプリケーション > VBA for Access > 応用編(組み込み関数)
データベースのデータを使って、集計ができる関数を紹介します。定義域集計関数には、次のような引数があり、定義域のレコードが変更されても、保存されていない値は関数の演算に反映されません。
- 演算対象:
- 対象となる数値データが含まれているフィールド名を指定。フィールド名、コントロール名になります。
- 定義域:
- 定義域を構成するレコードを指定。テーブル名やクエリ名になります。
- 演算対象条件:
- 定義域全体に対して演算対象が適用される。演算対象となるデータの範囲を指定する文字列、またはSQLのWHERE句を指定します。省略可能です。
DSum関数
指定されたレコードのセットに含まれる値の合計を返します。
DSum関数
【書式】 DSum(演算対象,定義域[,演算対象条件])
演算対象条件に適合するレコードがない時、または定義域にレコードが含まれない時は、Null値を返します。
DMテーブルのDM_IDの数値をすべて合計する場合は、次のように記述します。
(例)
Sub dsum_kansuu() MsgBox DSum("DM_ID", "DMテーブル") End Sub

DMax関数
指定したフィールドの最高値を返します。
DMax関数
【書式】 DMax(演算対象,定義域[,演算対象条件])
現在のDMテーブル内のDM_IDが何番まで振られているかを確認するには、以下のような記述を行います。
(例)
Sub dmax_kansuu() MsgBox DMax("DM_ID", "DMテーブル") End Sub
DM_IDの最大値がメッセージとなり表示されます。

DLookup関数
指定したテーブルのフィールドを検索して、そのフィールドの値を返します。複数の値が見つかった場合は、最初の値を返します。
DLookup関数
【書式】 DLookup(演算対象,定義域[,演算対象条件])
DM_IDが「2」のDM題名を表示する場合は、以下のように記述します。
(例)
Sub dlookup_kansuu() Dim box As String box = DLookup("DM題名", "DMテーブル", "DM_ID=CStr(2)") MsgBox box End Sub
DM_IDが2のDM題名がメッセージとして表示されます。この場合、DM_IDはテキスト型となっているので、「2」という数値を文字列型(CStr(2))にする必要があります。

定義域集計関数のその他の関数
関数名 | 説明 |
---|---|
DAvg | 指定したフィールドの平均を返す |
DCount | レコード数を返す |
DFirst | 指定したフィールドの先頭データを返す |
DLast | 指定したフィールドの最終データを返す |
DMin | 指定したフィールドの最小値を返す |