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

  特定のテーブル、クエリ、レコードセットのレコード数を、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つでしょう。

Access97/2000



戻る


Excel Word Access VBA! モーグ