DCount 関数

重要:  この記事は機械翻訳されています。機械翻訳についての「免責事項」をお読みください。この記事の英語版を参照するには、ここをクリックしてください。

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

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

構文

DCount ( expr ドメイン [検索条件] )

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

引数

説明

expr

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

domain

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

criteria

省略可能です。DCount関数の実行対象となるデータの範囲を制限するに使用される文字列式を指定します。抽出条件を指定する文字列式 WHERE 句には、します。抽出条件を省略すると、 DCount関数は、ドメイン全体に対してを評価します。検索条件に含まれている任意のフィールドには、ドメイン内のフィールド必要があります。DCount関数を返します。 それ以外の場合、 Null します。


解説

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

関数が実行されるデータの範囲を指定する抽出条件を指定する必要がある場合は、演算コントロールで、 DCount関数を使用します。たとえば、カリフォルニアに出荷する注文の数を表示するには、次の式にテキスト ボックスのControlSourceプロパティのように設定します。

=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")

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

tip

Count 関数は、高速でレコードをクエリでの計算に最適化されています。DCount 関数ではなくクエリ式の Count 関数を使用し、結果を制限を適用するために、省略可能な条件を設定します。コード モジュールまたはマクロ内でのドメインに、または演算コントロールでレコードをカウントする必要がありますがある場合は、DCount 関数を使用します。

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

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

intX = DCount("*", "Orders")

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

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

intW = DCount("[ShipName]", "Orders")
intX = DCount("[ShipRegion]", "Orders")
intY = DCount("[ShipName] + [ShipRegion]", "Orders")
intZ = DCount("[ShipName] & [ShipRegion]", "Orders")

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

この関数を使用すると、ドメイン内のレコードに保存されていない変更は含まれています。変更した値に基づいて、 DCount関数の場合、またはUpdateメソッドを使用して、[レコード] で [データ] タブの別のレコードにフォーカスを移動するレコードの保存] をクリックして変更を保存する必要があります最初。

注: 次の例は、Visual Basic for Applications (VBA) モジュールでのこの関数の使用方法を示しています。 VBA の使用方法の詳細については、[検索] の横にあるドロップダウン リストで [開発者用リファレンス] を選び、検索ボックスに検索する用語を入力します。

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

Public Function OrdersCount _
(ByVal strCountryRegion As String, _
ByVal dteShipDate As Date) As Integer
OrdersCount = DCount("[ShippedDate]", "Orders", _
"[ShipCountryRegion] = '" & strCountryRegion & _
"' AND [ShippedDate] > #" & dteShipDate & "#")
End Function

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

:OrdersCount "UK", #1/1/96#

注: 機械翻訳についての免責事項: この記事の翻訳はコンピューター システムによって行われており、人間の手は加えられていません。マイクロソフトでは、英語を話さないユーザーがマイクロソフトの製品、サービス、テクノロジに関するコンテンツを理解するのに役立てるため、こうした機械翻訳を提供しています。記事は機械翻訳されているため、用語、構文、文法などに誤りがある場合があります。

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

ありがとうございます。その他のフィードバックはありませんか?

改善内容をお聞かせください

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

×