Método Application.DCount (Access)

Use la función DCount para determinar el número de registros que se encuentran en un conjunto especificado de registros (un dominio).

Sintaxis

expresión. DCount (Expr, Domain, Criteria)

expresión Variable que representa un objeto Application.

Parámetros

Nombre Obligatorio/opcional Tipo de datos Descripción
Expr Obligatorio String Expresión que identifica el campo del cual se desea obtener el número de registros. Puede ser una expresión de cadena que identifica un campo de una tabla o consulta, o bien, una expresión que realiza un cálculo con los datos de ese campo. En expr, puede incluir el nombre de un campo en una tabla, un control de un formulario, una constante o una función. Si expr incluye una función, puede ser integrada o definida por el usuario, pero no otra función de agregado de dominio o de agregado de SQL.
Dominio Obligatorio String Expresión de cadena que identifica el conjunto de registros que constituye el dominio. Puede ser un nombre de tabla o de consulta para una consulta que no requiere ningún parámetro.
Criteria Opcional Variant Expresión de cadena opcional que se usa para restringir el intervalo de datos en el que se realiza la función DCount . Por ejemplo, criteria suele ser equivalente a la cláusula WHERE en una expresión SQL, sin la palabra WHERE. Si se omite criteria , la función DCount evalúa expr en todo el dominio. Cualquier campo incluido en los criterios también debe ser un campo en el dominio; De lo contrario, la función DCount devuelve un valor Null.

Valor devuelto

Variant

Observaciones

Por ejemplo, puede usar la función DCount en un módulo para devolver el número de registros de una tabla denominada Pedidos que corresponden a los pedidos realizados en una fecha concreta.

Use la función DCount para contar el número de registros de un dominio cuando no necesite conocer sus valores particulares. Aunque el argumento expr puede realizar un cálculo en un campo, la función DCount solo cuenta el número de registros. Ninguno de los valores de los cálculos que realiza expr está disponible.

Use la función DCount en un control calculado cuando necesite especificar criterios para restringir el intervalo de datos con el que se va a ejecutar la función. Por ejemplo, para mostrar el número de pedidos que se van a enviar a California, establezca la propiedad ControlSource de un cuadro de texto en la siguiente expresión:

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

Si simplemente desea contar todos los registros del dominio sin especificar ninguna restricción, use la función Count . La función Count se optimizó para acelerar el recuento de los registros en las consultas. Use la función Count en una expresión de consulta en vez de la función DCount y establezca criterios opcionales para aplicar restricciones a los resultados.

Use la función DCount cuando deba contar los registros, bien de un dominio desde un módulo de código o una macro, o bien de un control calculado.

Use la función DCount para contar el número de registros que contienen un campo determinado que no está en el origen del registro en el que se basa el formulario o informe. Por ejemplo, puede mostrar el número de pedidos de la tabla denominada Pedidos en un control calculado ubicado en un formulario basado en la tabla Productos.

La función DCount no cuenta los registros que contienen valores Null en el campo al que hace referencia expr a menos que expr sea el carácter comodín asterisco (*). Si usa un asterisco, la función DCount calcula el número total de registros, incluidos los que contienen campos Null. En el ejemplo siguiente se calcula el número de registros de una tabla denominada Orders (Pedidos).

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

Si domain es una tabla con una clave principal, también puede contar el número total de registros estableciendo expr en el campo de clave principal, ya que nunca habrá un valor Null en el campo de clave principal.

Si expr identifica varios campos, separe los nombres de campo con un operador de concatenación, ya sea una y comercial (&) o el operador de suma (+). Si usa la Y comercial para separar los campos, la función DCount devuelve el número de registros que contienen datos en cualquiera de los campos enumerados. Si usa el signo más, la función DCount devuelve solo el número de registros que contienen datos en todos los campos enumerados. En el ejemplo siguiente se demuestran los efectos de cada operador cuando se usan con un campo que contiene datos en todos los registros (ShipName) y un campo que no contiene datos (ShipRegion).

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

Nota:

La Y comercial es el operador preferido para concatenar cadenas. Se debe evitar el signo más para toda operación que no sea la suma de números, a menos que quiera propagar específicamente Nulls en una expresión.

Ejemplo

La función siguiente devuelve el número de pedidos enviados a un país o región especificados después de una fecha de envío determinada. El dominio es la tabla Orders (Pedidos).

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

Los ejemplos siguientes muestran cómo usar varios tipos de criterios con la función DCount.

    ' ***************************
    ' 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")
    ' ***************************

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.