DCount メソッド (Access)Application.DCount method (Access)

DCount 関数を使用すると、指定したレコードのセット (定義域) に含まれるレコードの数を特定できます。You can use the DCount function to determine the number of records that are in a specified set of records (a domain).

構文Syntax

DCount(ExprDomainCriteria)expression.DCount (Expr, Domain, Criteria)

expression**Application** オブジェクトを 表す変数。expression A variable that represents an Application object.

パラメーターParameters

名前Name 必須 / オプションRequired/Optional データ型Data type 説明Description
ExprExpr 必須Required StringString 対象となるデータが含まれているフィールドを表す式です。An expression that identifies the field for which you want to count records. テーブルまたはクエリのフィールドを表す文字列式、またはそのフィールドのデータを使用して計算を実行する式を指定できます。It can be a string expression identifying a field in a table or query, or it can be an expression that performs a calculation on data in that field. expr では、テーブルのフィールド、フォームのコントロール、定数、または関数の名前を指定できます。In expr, you can include the name of a field in a table, a control on a form, a constant, or a function. _Expr_に関数を指定する場合は、組み込み関数またはユーザー定義関数のどちらも指定できますが、他の定義域集計関数または SQL 集計関数は使用できません。If expr includes a function, it can be either built-in or user-defined, but not another domain aggregate or SQL aggregate function.
ドメインDomain 必須Required StringString ドメインを構成するレコードのセットを識別する文字列式を指定します。A string expression that identifies the set of records that constitutes the domain. パラメーターを必要としないクエリには、テーブル名またはクエリ名が指定できます。It can be a table name or a query name for a query that does not require a parameter.
CriteriaCriteria オプションOptional VariantVariant DCount関数が実行されるデータの範囲を制限するために使用するオプションの文字列式です。An optional string expression used to restrict the range of data on which the DCount function is performed. たとえば、 criteria は多くの場合、SQL 式の WHERE 句と同じ役割を果たします (ただし WHERE という語は使用しません)。For example, criteria is often equivalent to the WHERE clause in an SQL expression, without the word WHERE. _Criteria_が省略された場合、 DCount関数は、ドメイン全体に対して_expr_を評価します。If criteria is omitted, the DCount function evaluates expr against the entire domain. _抽出条件_に含まれているフィールドは、_ドメイン_のフィールドでもある必要があります。それ以外の場合は、 DCount関数はNull値を返します。Any field that is included in criteria must also be a field in domain; otherwise, the DCount function returns a Null.

戻り値Return value

バリアント型Variant

注釈Remarks

たとえば、DCount 関数をモジュール内で使用して、[受注] テーブル内の特定の日の受注数を返すことができます。For example, you could use the DCount function in a module to return the number of records in an Orders table that correspond to orders placed on a particular date.

この関数は、レコードの特定の値ではなく、定義域に含まれるレコードの総数を求めるときに使います。Use the DCount function to count the number of records in a domain when you don't need to know their particular values. 引数 expr には、フィールドのデータを使った計算式を指定することもできますが、 DCount 関数で計算されるのは、レコードの総数だけです。Although the expr argument can perform a calculation on a field, the DCount function simply tallies the number of records. _Expr_によって実行される計算の値は使用できません。The value of any calculation performed by expr is unavailable.

DCount 関数は、抽出条件を指定して関数を実行するデータ範囲を制限する必要があるときに、演算コントロールで使用します。Use the DCount function in a calculated control when you need to specify criteria to restrict the range of data on which the function is performed. たとえば、愛知県に出荷する受注の数を表示するには、テキスト ボックスの "ControlSource/コントロールソース" プロパティに次の式を設定します。For example, to display the number of orders to be shipped to California, set the ControlSource property of a text box to the following expression:

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

制限を指定せずに、_ドメイン_内のすべてのレコードをカウントするだけの場合は、 count 関数を使用します。If you simply want to count all records in domain without specifying any restrictions, use the Count function. Count 関数は、クエリのレコード数を高速で計算できるように最適化されています。The Count function has been optimized to speed counting of records in queries. クエリ式では、DCount 関数の代わりに Count 関数を使用し、必要に応じて抽出条件を指定して特定の制限を適用するようにします。Use the Count function in a query expression instead of the DCount function, and set optional criteria to enforce any restrictions on the results.

コード モジュール、マクロ、または演算コントロールで定義域に含まれるレコード数を計算する場合は DCount 関数を使ってください。Use the DCount function when you must count records in a domain from within a code module or macro, or in a calculated control.

DCount 関数では、基になるレコード ソースにはない特定のフィールドのレコード数をフォームやレポートに表示することもできます。You can use the DCount function to count the number of records containing a particular field that isn't in the record source on which your form or report is based. たとえば、[商品] テーブルに基づくフォームの演算コントロールに、[受注] テーブルから計算された受注数を表示できます。For example, you could display the number of orders in the Orders table in a calculated control on a form based on the Products table.

Expr がアスタリスク (*) ワイルドカード文字でない限り、 expr_で参照さ_ れるフィールドにNull値が含まれるレコードは、 DCount関数ではカウントされません。The DCount function doesn't count records that contain Null values in the field referenced by expr unless expr is the asterisk (*) wildcard character. ワイルドカード文字を使うと、DCount 関数は Null フィールドを持つレコードを含むすべてのレコードの総数を計算します。If you use an asterisk, the DCount function calculates the total number of records, including those that contain Null fields. 次の例では、[受注] テーブルに含まれるレコードの総数を計算します。The following example calculates the number of records in an Orders table.

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

_Domain_が主キーを含むテーブルである場合は、主キーフィールドにNull値が設定されないため、_引数 expr_を主キーフィールドに設定することによって、レコードの合計数をカウントすることもできます。If domain is a table with a primary key, you can also count the total number of records by setting expr to the primary key field because there will never be a Null in the primary key field.

引数 expr に複数のフィールドを指定する場合は、フィールド名を結合演算子のアンパサンド (&) または正符号 (+) で区切ります。If expr identifies multiple fields, separate the field names with a concatenation operator, either an ampersand (&) or the addition operator (+). アンパサンドで区切ると、DCount 関数では、指定したフィールドのいずれかにデータが入っているレコードが数えられます。If you use an ampersand to separate the fields, the DCount function returns the number of records containing data in any of the listed fields. 正符号で区切ると、DCount 関数では、指定したどのフィールドにもデータが入っているレコードのみが数えられます。If you use the addition operator, the DCount function returns only the number of records containing data in all of the listed fields. 次の例は、すべてのレコードでデータが入っている [得意先名] フィールドと、データが入っていないこともある [ファクシミリ] フィールドを指定してこれらの記号を使った場合です。The following example demonstrates the effects of each operator when used with a field that contains data in all records (ShipName) and a field that contains no data (ShipRegion).

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

注意

文字列を連結する場合は、できる限りアンパサンド (&) を使ってください。The ampersand is the preferred operator for performing string concatenation. 数値の足し算以外に正符号 (+) を使うのは、式に Null を追加するときを除いてできる限り避けてください。You should avoid using the addition operator for anything other than numeric addition, unless you specifically wish to propagate Nulls through an expression.

Example

次の関数は、指定した日付以降の指定した国または地域への受注の数を返します。The following function returns the number of orders shipped to a specified country or region after a specified ship date. 定義域は [受注] テーブルです。The domain is an Orders table.

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

次の例では、DCount 関数でさまざまな criteria の種類を使用する方法を示します。The following examples show how to use various types of criteria with the DCount function.

    ' ***************************
    ' Typical Use
    ' Numerical values. Replace "number" with the number to use.
    variable = DCount("[FieldName]", "TableName", "[Criteria] = number")

    ' Strings.
    ' Numerical values. Replace "string" with the string to use.
    variable = DCount("[FieldName]", "TableName", "[Criteria]= 'string'")

    ' Dates. Replace "date" with the string to use.
    variable = DCount("[FieldName]", "TableName", "[Criteria]= #date#")
    ' ***************************

    ' ***************************
    ' Referring to a control on a form
    ' Numerical values
    variable = DCount("[FieldName]", "TableName", "[Criteria] = " & Forms!FormName!ControlName)

    ' Strings
    variable = DCount("[FieldName]", "TableName", "[Criteria] = '" & Forms!FormName!ControlName & "'")

    ' Dates
    variable = DCount("[FieldName]", "TableName", "[Criteria] = #" & Forms!FormName!ControlName & "#")
    ' ***************************

    ' ***************************
    ' Combinations
    ' Multiple types of criteria
    variable = DCount("[FieldName]", "TableName", "[Criteria1] = " & Forms![FormName]![Control1] _
             & " AND [Criteria2] = '" & Forms![FormName]![Control2] & "'" _
            & " AND [Criteria3] =#" & Forms![FormName]![Control3] & "#")
    
    ' Use two fields from a single record.
    variable = DCount("[LastName] & ', ' & [FirstName]", "tblPeople", "[PrimaryKey] = 7")
            
    ' Expressions
    variable = DCount("[Field1] + [Field2]", "tableName", "[PrimaryKey] = 7")
    
    ' Control Structures
    variable = DCount("IIf([LastName] Like 'Smith', 'True', 'False')", "tableName", "[PrimaryKey] = 7")
    ' ***************************

サポートとフィードバックSupport and feedback

Office VBA またはこの説明書に関するご質問やフィードバックがありますか?Have questions or feedback about Office VBA or this documentation? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.