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 Visual Basic para Aplicaciones (VBA), una macro, una expresión de consulta o una control calculado.
Por ejemplo, puede usar la función DCount en un módulo para devolver el número de registros de una tabla Pedidos que corresponden a los pedidos realizados en una fecha determinada.
Sintaxis
DCount ( expr , domain [ ,criteria] )
La sintaxis de la función DCount tiene estos argumentos:
argumento |
Descripción |
expresión |
Obligatorio. Expresión que identifica el campo cuyos registros desea contar. Puede ser una expresión de cadena un campo en una tabla o consulta, o puede ser una expresión que realiza un cálculo de datos en ese campo. En expr, puede incluir el nombre de un campo en una tabla, un control en un formulario, una constante o una función. Si expr incluye una función, puede ser integrada o definida por el usuario, pero no otro agregado de dominio o SQL función de agregado. |
dominio |
Obligatorio. 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. Expresión de cadena que se usa para restringir el rango de datos en el que se realiza la función DCount. Por ejemplo, los criterios suelen ser equivalentes a la cláusula WHERE en una SQL expresión, sin la palabra WHERE. Si se omiten 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 de dominio; de lo contrario, la función DCount devuelve un valor Null. |
Observaciones
Use la función DCount para contar el número de registros de un dominio cuando no necesite conocer sus valores específicos. Aunque el argumento expr puede realizar un cálculo en un campo, la función DCount simplemente registra 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 enviarán 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 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 DCount y establezca criterios opcionales para aplicar restricciones a los resultados. Use la función DCount cuando debe contar registros en un dominio desde un módulo de código o macro, o en un control calculado.
Puede usar la función DCount para contar el número de registros que contienen un campo determinado que no está en el origen de registros en el que se basa el formulario o informe. Por ejemplo, puede mostrar el número de pedidos en la tabla Pedidos en un control calculado 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 Nulos. En el ejemplo siguiente se calcula el número de registros de una tabla Pedidos.
intX = DCount("*", "Orders")
Si dominio es una tabla con un 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 un operador de adición (&) o el operador de suma (+). Si usa un ampersand 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 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 (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: El ampersand es el operador preferido para realizar la concatenación de cadenas. Debe evitar usar el operador de adición para cualquier cosa que no sea la adición 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 desea 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 Update.
Ejemplos de consulta
Expresión |
Resultados |
SELECT DCount("IdDeCuerto","VentasDeVentas","Discount=0") COMO Expr1 FROM ProductSales GROUP BY DCount("IdDeVentas","VentasDeCuertos","Descuento=0"); |
Devuelve el recuento de valores en el campo "Id.producto" de la tabla "Ventas de productos" donde el valor "Descuento" es "0". |
SELECT DCount("IdDeUsuario","ProductSales","DateofSale=Date()-1") AS YesterdaySale FROM ProductSales GROUP BY DCount("ProductID","ProductSales","DateofSale=Date()-1"); |
Devuelve el recuento de valores en el campo "Id.producto" de la tabla "Ventas de productos" donde "DateofSale" es un día antes de la fecha actual. |
Ejemplo de VBA
Nota: Los ejemplos siguientes muestran el uso de esta función en un módulo 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 junto a Buscar y escriba uno o más 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 especificados 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#