Funciones DMín y DMáx

Se aplica a
Access para Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Puede usar las funciones DMin y DMax para determinar los valores mínimo y máximo en un conjunto de registros especificado (un dominio). Use las funciones DMin y DMax en un módulo de Visual Basic para Aplicaciones (VBA), una macro, una expresión de consulta o un control calculado.

Por ejemplo, podría usar las funciones DMin y DMax en controles calculados en un informe para mostrar los importes de pedido más pequeños y más grandes para un cliente determinado. O bien, podría usar la función DMin en una expresión de consulta para mostrar todos los pedidos con un descuento mayor que el descuento mínimo posible.

Sintaxis

DMin(expr, dominio [, criterios] )

DMax(expr, dominio [, criterios] )

Las funciones DMin y DMax tienen los siguientes argumentos:

Argumento Descripción
expresión Obligatorio. Una expresión que identifica el campo para el que desea encontrar el valor mínimo o máximo. Puede ser una expresión de cadena que identifica un campo en una tabla o consulta, o puede ser una expresión que realiza un cálculo de los datos de 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 estar integrada o definida por el usuario, pero no otra función de agregado de dominio o de agregado SQL.
dominio Obligatorio. Una 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 los que se realiza la función DMin o DMax . Por ejemplo, los criterios suelen ser equivalentes a la cláusula WHERE en una expresión SQL, sin la palabra WHERE. Si se omiten los criterios , las funciones DMin y DMax evalúan la expresión en todo el dominio. Cualquier campo que se incluya en los criterios también debe ser un campo de dominio, de lo contrario, las funciones DMin y DMax devuelven un valor nulo.

Observaciones

Las funciones DMin y DMax devuelven los valores mínimos y máximos que cumplen los criterios. Si expr identifica datos numéricos, las funciones DMin y DMax devuelven valores numéricos. Si expr identifica datos de cadena, devuelve la cadena primera o última alfabéticamente.

Las funciones DMin y DMax ignoran los valores nulos en el campo al que hace referencia expr. Sin embargo, si ningún registro cumple los criterios o si el dominio no contiene ningún registro, las funciones DMin y DMax devuelven un valor nulo.

Si usa la función DMin o DMax en una macro, un módulo, una expresión de consulta o un control calculado, debe construir el argumento de criterios con cuidado para asegurarse de que se evaluará correctamente.

Puede usar las funciones DMin y DMax para especificar criterios en la fila Criterios de una consulta, en una expresión de campo calculado de una consulta o en la fila Actualizar en de una consulta de actualización.

Nota

Puede usar las funciones DMin y DMax o las funciones Mín y Máximo en una expresión de campo calculado de una consulta de totales. Si usa la función DMin o DMax , los valores se evalúan antes de agrupar los datos. Si usa la función Min o Max , los datos se agrupan antes de que se evalúen los valores de la expresión de campo.

Use la función DMin o DMax 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 los gastos de transporte máximos cobrados por un pedido enviado a California, establezca la propiedad ControlSource de un cuadro de texto en la siguiente expresión:

=DMax("[Freight]", "Orders", "[ShipRegion] = 'CA'")

Si simplemente desea buscar el valor mínimo o máximo de todos los registros del dominio, use la función Min o Max .

Puede usar la función DMin o DMax en un módulo o macro, o en un control calculado en un formulario si el campo que necesita mostrar no está en el origen de registros en el que se basa el formulario.

Propina

Aunque puede usar la función DMin o DMax para buscar el valor mínimo o máximo de un campo de una tabla externa, puede ser más eficaz crear una consulta que contenga los campos que necesita de ambas tablas y basar el formulario o informe en esa consulta.

Nota

Los cambios no guardados en los registros del dominio no se incluyen cuando se usan estas funciones. Si desea que la función DMax o DMin se base en los valores modificados, primero debe guardar los cambios haciendo clic en Guardar registro en Registros en la pestaña Datos , moviendo el foco a otro registro o utilizando el método Update .

Ejemplo

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.

En el ejemplo siguiente se devuelven los valores más bajos y más altos del campo Transporte para los pedidos enviados al Reino Unido. El dominio es una tabla Pedidos. El argumento de los criterios restringe el conjunto resultante de registros a aquellos para los que ShipCountryRegion es igual a Reino Unido.


Dim curX As Currency
Dim curY As Currency
curX = DMin("[Freight]", "Orders", _
    "[ShipCountryRegion] = 'UK'")
curY = DMax("[Freight]", "Orders", _
    "[ShipCountryRegion] = 'UK'")

En el siguiente ejemplo, el argumento de los criterios incluye el valor actual de un cuadro de texto denominado FechaPedido. El cuadro de texto está enlazado a un campo FechaPedido en una tabla Pedidos. Tenga en cuenta que la referencia al control no se incluye en las comillas dobles (") que denotan las cadenas. Esto garantiza que cada vez que se llama a la función DMax , Access obtiene el valor actual del control.


Dim curX As Currency
curX = DMax("[Freight]", "Orders", "[OrderDate] = #" _
    & Forms!Orders!OrderDate & "#")

En el siguiente ejemplo, la expresión de criterios incluye una variable, dteOrderDate. Tenga en cuenta que los signos de número (#) se incluyen en la expresión de cadena, de modo que cuando las cadenas se concatenan, incluirán la fecha.


Dim dteOrderDate As Date
Dim curX As Currency
dteOrderDate = #03/30/2000#
curX = DMin("[Freight]", "Orders", _
    "[OrderDate] = #" & dteOrderDate & "#")