Puede usar la función DCount para determinar el número de registros que están en un conjunto especificado de registros (un dominio ). Use la función DCount en un módulo de Visual Basic para Aplicaciones (VBA), un macro, una expresión de consulta o un control calculado.
Por ejemplo, podría usar la función DCont en un módulo para devolver el número de registros de una tabla Pedidos que corresponden a pedidos realizados en una fecha determinada.
Sintaxis
DCount ( expr , dominio [, criterios] )
La sintaxis de la función DCont tiene estos argumentos:
Argumento |
Descripción |
expresión |
Obligatorio. Expresión que identifica el campo para el que desea contar registros. Puede ser un expresión de cadena identificar un campo en una tabla o consulta, o puede ser una expresión que realiza un cálculo en los datos de ese campo. En expresión, puede incluir el nombre de un campo en una tabla, un control de un formulario, una constante o una función. Si expresión 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 |
Requerido. Expresión de cadena que identifica el conjunto de registros que constituye el dominio. Puede ser un nombre de tabla o un nombre de consulta para una consulta que no requiere un parámetro. |
criterio |
Opcional. Una expresión de cadena usada para restringir el rango de datos en el que se ejecuta la función DCount . Por ejemplo, los criterios suelen ser equivalentes a la cláusula WHERE en una expresión SQL, sin la palabra WHERE. Si omite los criterios , la función DCount evalúa expr en todo el dominio. Cualquier campo que se incluya en los criterios también debe ser un campo en el dominio; De lo contrario, la función DCount devuelve un valor Null. |
Comentarios
Use la función DCount para contar el número de registros de un dominio cuando no necesite conocer sus valores concretos. Aunque el argumento expresión puede realizar un cálculo en un campo, la función DCount simplemente alcanza el número de registros. El valor de cualquier cálculo realizado por expr no está disponible.
Use la función DCount en un control calculado cuando necesite especificar criterios para restringir el rango de datos en el que se realiza la función. Por ejemplo, para mostrar el número de pedidos que se van a enviar a California, establezca la propiedad ControlSoude 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 restricciones, use la función Contar .
Sugerencia La función Contar se ha optimizado para acelerar el recuento de registros en consultas. Use la función Contar en una expresión de consulta en lugar de la función DCont y establezca criterios opcionales para aplicar restricciones en los resultados. Use la función DCount cuando tenga que contar registros en un dominio desde un módulo de código o una macro, o en un control calculado.
Puede usar la función DCount para contar el número de registros que contienen un campo concreto que no está en el origen de registros en el que se basa el formulario o informe. Por ejemplo, podría mostrar el número de pedidos en la tabla Pedidos en un control calculado de 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 Expresión , a menos que expresión 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 en una tabla Pedidos.
intX = DCount("*", "Orders")
Si dominio es una tabla con una clave principal, también puede contar el número total de registros estableciendo expresión en el campo de clave principal, ya que nunca habrá un Null en el campo de clave principal.
Si expresión identifica varios campos, separe los nombres de campo con un operador de concatenación, ya sea un signo de y comercial (&) o el operador de suma (+). Si usa un símbolo de Y comercial para separar los campos, la función DCont devuelve el número de registros que contienen datos en cualquiera de los campos enumerados. Si usa el operador de suma, la función DCount devuelve solo el número de registros que contienen datos en todos los campos enumerados. En el ejemplo siguiente se muestran los efectos de cada operador cuando se usa con un campo que contiene datos en todos los registros (NombreDeEnvío) y un campo que no contiene datos (RegiónDeEnvío).
intW = DCount("[ShipName]", "Orders")
intX = DCount("[ShipRegion]", "Orders") intY = DCount("[ShipName] + [ShipRegion]", "Orders") intZ = DCount("[ShipName] & [ShipRegion]", "Orders")
Nota: El y comercial es el operador preferido para realizar la concatenación de cadenas. Debe evitar usar el operador de suma para cualquier cosa que no sea la suma numérica, a menos que desee propagar específicamente Nulls a través de una expresión.
Los cambios no guardados en los registros del dominio no se incluyen al usar esta función. Si quiere que la función DCount se base en los valores cambiados, primero debe guardar los cambios haciendo clic en Guardar registro en Registros en la pestaña Datos, moviendo el foco a otro registro o usando el método e Updat.
Ejemplos de consulta
Expression |
Resultados |
SELECT DCount("ProductID","ProductSales","Discount=0") AS Expr1 FROM ProductSales GROUP BY DCount("ProductID","ProductSales","Discount=0"); |
Devuelve el recuento de valores en el campo "IdProducto" de la tabla "VentasProducto" donde el valor "Descuento" es "0". |
SELECT DCount("ProductID","ProductSales","DateofSale=Date()-1") AS YesterdaySale FROM ProductSales GROUP BY DCount("ProductID","ProductSales","DateofSale=Date()-1"); |
Devuelve el recuento de valores en el campo "IdProducto" de la tabla "VentasProducto" donde "DateofSale" es un día antes de la fecha actual. |
Ejemplo VBA:
Nota: Los ejemplos siguientes muestran el uso de esta función en un módulo de Visual Basic para Aplicaciones (VBA). Para obtener más información sobre cómo trabajar con VBA, seleccione referencia para desarrolladores en la lista desplegable situada junto a búsqueda y escriba uno o varios términos en el cuadro de búsqueda.
La siguiente función devuelve el número de pedidos enviados a un país o región especificado después de una fecha de envío especificada. El dominio es una tabla Pedidos.
Public Function OrdersCount _
(ByVal strCountryRegion As String, _ ByVal dteShipDate As Date) As Integer OrdersCount = DCount("[ShippedDate]", "Orders", _ "[ShipCountryRegion] = '" & strCountryRegion & _ "' AND [ShippedDate] > #" & dteShipDate & "#") End Function
Para llamar a la función, use la siguiente línea de código en la ventana Inmediato:
:OrdersCount "UK", #1/1/96#