HOME > 即効テクニック > AccessVBA > データ操作 > レコード数をカウントする方法 (DCount関数)

即効テクニック

データ操作

レコード数をカウントする方法 (DCount関数)

(Access 97)
●概要●
特定のテーブル、クエリ、レコードセットのレコード数を、DCount関数を使用してカウントする方法を説明します。

●準備●
  1. 以下の構成で[商品マスタ]テーブルを作成します。 ---------------------------------------- フィールド名 データ型 商品ID 整数型(主キー) 商品名 テキスト型 販売価格 通貨型 ----------------------------------------
  2. テーブルに適当なデータを入力しておきます。下記を参考にして下さい。
  3. 新規標準モジュールを作成し、以下のプロシージャを記述して下さい。
●サンプルコード● Private Sub RecCount() '■ 初期設定 ■ Dim iCnt As Integer 'レコード件数 '■ DCount関数でカウント ■ Debug.Print "【DCount関数でカウント】" iCnt = DCount("商品ID", "商品マスタ") Debug.Print "商品マスタのレコード件数は " & iCnt & "件 です" '販売価格が500円以上のものを抽出 iCnt = DCount("商品ID", "商品マスタ", "販売価格 >= 500") Debug.Print "販売価格500円以上の商品は " & iCnt & "件 です" End Sub ●動作確認● 上記サンプルプロシージャを実行し、以下の文がイミディエイトウィンドウに表示されていることを確認して下さい。 ---------------------------------------- 【DCount関数でカウント】 商品マスタのレコード件数は 11件 です 販売価格500円以上の商品は 3件 です ---------------------------------------- ●詳細● ・DCount関数 DCount関数の構文は以下の通りです。 ------------------------------------------------------------------ DCount(式, 定義域 [,範囲]) ※ 範囲は省略可 ------------------------------------------------------------------ 式 :対象となるデータが含まれるフィールドを表す文字列、変数を指 定します。テーブル/クエリのフィールド名、フォームのコントロー ル、定数、関数が指定できます。 定義域 :レコードをカウントするテーブル名、クエリ名を指定します。 範囲 :データ範囲を指定する文字列式を指定します。SQL文のWhere句を Whereを省略した形で指定します。 この引数を省略すると、定義域全体が集計対象になります。 サンプルプロシージャを見ても分かる通り、非常に簡単な構文です。しかし、定義域集計関数(頭に「D」のつく関数)は実行速度が大変遅いのが弱点です。DCount関数も、1つのプロシージャ内で何度も集計を行うとストレスを感じるようになるでしょう。 また、フォームのコントロールのControlSouce/コントロールソースに直接記述できる点もメリットの1つでしょう。