DCount 関数

指定されたレコードのセット (ドメイン) に含まれるレコードの数を返します。DCount 関数は、Visual Basic for Applications (VBA) モジュール、マクロ、クエリ式、または演算コントロールで使うことができます。

たとえば、DCount 関数をモジュール内で使用して、 [受注] テーブル内の特定の日の受注数を返すことができます。

構文

DCount(expr, domain [, criteria] )

DCount 関数の構文には、次の引数があります。

引数

説明

expr

必ず指定します。対象となるデータが含まれているフィールドを表す式です。テーブルまたはクエリ内のフィールドを表す文字列式か、またはそのフィールドのデータを使用して計算を実行する式を指定します。テーブルのフィールド名、フォームのコントロール、定数、または関数を指定できます。関数を指定する場合は、組み込み関数またはユーザー定義関数のいずれも指定できますが、他の定義域集計関数や SQL 集計関数は指定できません。

domain

必ず指定します。定義域を構成するレコードセットを識別する文字列式。テーブル名、またはパラメータを必要としないクエリのクエリ名を指定できます。

criteria

省略可能です。演算対象となるデータの範囲を指定する文字列式です。たとえば、criteria は、多くの場合、SQL 式の WHERE 句と同じ役割を果たします (ただし WHERE という語は使用しません)。引数 criteria を省略すると、定義域全体に対して expr が適用されます。criteria に含まれるフィールドが domain のフィールドでない場合、DCount 関数は Null 値を返します。


解説

この関数は、レコードの特定の値ではなく、定義域に含まれるレコードの総数を求めるときに使います。引数 expr には、フィールドのデータを使った計算式を指定することもできますが、DCount 関数で計算されるのは、レコードの総数だけです。DCount 関数で expr の計算結果を利用することはできません。

抽出条件を指定してデータ範囲を制限する必要がある場合は、DCount 関数を演算コントロールで使用します。たとえば、愛知県に出荷する受注の数を表示するには、テキスト ボックスの "ControlSource/コントロールソース" プロパティを次のように設定します。

=DCount("[受注コード]", "受注", "[出荷先都道府県] = '愛知県'")

domain に含まれるすべてのレコード数を計算する場合は、Count 関数を使います。

tip

Count 関数は、クエリのレコード数を高速で計算できるように最適化されています。クエリ式では、DCount 関数の代わりに Count 関数を使用し、必要に応じて抽出条件を指定して特定の制限を適用するようにします。コード モジュール、マクロ、または演算コントロールで定義域に含まれるレコード数を計算する場合は DCount 関数を使ってください。

DCount 関数では、基になるレコード ソースにはない特定のフィールドのレコード数をフォームやレポートに表示することもできます。たとえば、[商品] テーブルに基づくフォームの演算コントロールに、[受注] テーブルから計算された受注数を表示できます。

expr がワイルドカード文字 (*) でない限り、expr で参照されるフィールド内にある Null 値が入ったレコードは計算対象になりません。ワイルドカード文字を使うと、Null フィールドを持つレコードも含め、すべてのレコードの総数を計算することができます。次に示すのは、[受注] テーブルに含まれるレコードの総数を計算する場合の例です。

intX = DCount("*", "受注")

指定した domain が主キーを含むテーブルである場合は、expr に主キーのフィールドを指定することでレコードの総数を計算することができます。これは、主キーのフィールドが Null 値になることはないためです。

引数 expr に複数のフィールドを指定する場合は、フィールド名を結合演算子のアンパサンド (&) または正符号 (+) で区切ります。アンパサンドで区切った場合は、指定したフィールドのいずれかにデータが入っているレコードがすべて数えられます。正符号で区切った場合は、指定したフィールドすべてにデータが入っているレコードのみが数えられます。次に示すのは、すべてのレコードでデータが入っている [出荷先名] フィールドと、データが一部しか入っていない [都道府県] フィールドを指定してこれらの記号を使った場合の例です。

intW = DCount("[出荷先名]", "受注")
intX = DCount("[都道府県]", "受注")
intY = DCount("[出荷先名] + [都道府県]", "受注")
intZ = DCount("[出荷先名] & [都道府県]", "受注")

   文字列を連結する場合は、できる限りアンパサンド (&) を使ってください。数値の足し算以外に正符号 (+) を使うのは、Null 値を意図的に式に含める場合を除き、できる限り避けてください。

domain のレコードを変更しても、保存されていない値は Dcount 関数の演算に反映されません。変更した値を使って計算する場合は、計算前に、[データ] タブの [レコード] の下にある [レコードの保存] をクリックするか、フォーカスを別のレコードに移動するか、または Update メソッドを使って変更を保存する必要があります。

使用例

  次の例は、Visual Basic for Applications (VBA) モジュールでのこの関数の使用方法を示しています。VBA の使用方法の詳細については、[検索] の横にある一覧の [開発者用リファレンス] をクリックし、検索ボックスに検索する語句を入力してください。

次の例では、指定した日付以降の特定の都道府県への受注の数が返されます。定義域は [受注] テーブルです。

Public Function OrdersCount _
(ByVal strCountryRegion As String, _
ByVal dteShipDate As Date) As Integer
OrdersCount = DCount("[出荷日]", "受注", _
"[出荷先都道府県] = '" & strCountryRegion & _
"' AND [出荷日] > #" & dteShipDate & "#")
End Function

この関数を呼び出すには、イミディエイト ウィンドウで次のコード行を使います。

:OrdersCount "愛知県", #1/1/96#

適用対象: Access 2007



この情報は役に立ちましたか?

はい いいえ

どのようにしたら改善できるでしょうか?

255 残りの文字数

お客様のプライバシーを保護するため、フィードバックには連絡先情報を含めないでください。 レビューしてください プライバシー ポリシー

ご意見をいただきありがとうございます。

サポート リソース

言語の変更