Puede usar las funciones DMin y DMax para determinar los valores mínimo y máximo de un conjunto especificado de registros (un dominio ). Use las funciones DMin y DMax 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 las funciones DMín y BdMax en controles calculados de un informe para mostrar los importes de pedido más pequeños y mayores para un cliente concreto. O bien, podría usar la función BdMin en una expresión de consulta para mostrar todos los pedidos con un descuento superior al mínimo posible.
Sintaxis
DMin ( expresión , dominio [, criterios] )
DMax ( expresión , dominio [, criterios] )
Las funciones DMin y DMax tienen estos argumentos:
Argumento |
Descripción |
---|---|
expresión |
Obligatorio. Expresión que identifica el campo cuyo valor mínimo o máximo desea encontrar. 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 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 DMaxevalúan la expresión en todo el dominio. Cualquier campo que se incluya en los criterios también debe ser un campo en el dominio; de lo contrario, las funciones DMin y DMax devuelven un valor Null. |
Comentarios
Las funciones DMin y DMax devuelven los valores mínimo y máximo que cumplen los criterios. Si expresión identifica datos numéricos, las funciones DMin y DMax devuelven valores numéricos. Si expresión identifica datos de cadena, devuelven la cadena que es la primera o la última alfabéticamente.
Las funciones DMin y DMax omiten los valores Null en el campo al que hace referencia Expresión. Sin embargo, si ningún registro cumple los criterios o si el dominio no contiene registros, las funciones DMin y DMax devuelven un valor Null.
Si usa la función DMin o DMax en una macro, módulo, expresión de consulta o control calculado, debe construir el argumento criterios cuidadosamente 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 en una consulta o en la fila Actualizar a de una consulta de actualización.
Nota: Puede usar las funciones DMín y BdMax o las funciones Mín y Máx en una expresión de campo calculado de un consulta de totales. Si usa las funciones DMín o BdMax , los valores se evalúan antes de agrupar los datos. Si usa las funciones Mín o Máx , los datos se agrupan antes de que se evalúen los valores de la expresión de campo.
Use las funciones 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 el porcentaje máximo de carga cargado para 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 encontrar el valor mínimo o máximo de todos los registros del dominio, use las funciones Mín o Máx .
Puede usar la función DMin o DMax en un módulo o macro o en un control calculado de un formulario si el campo que necesita mostrar no está en el origen de registros en el que se basa el formulario.
Sugerencia
Aunque puede usar las funciones DMin o DMax para buscar el valor mínimo o máximo de un campo en un tabla externa, puede resultar más eficaz crear una consulta que contenga los campos que necesite de ambas tablas y base el formulario o informe en esa consulta.
Nota: Los cambios no guardados en los registros del dominio no se incluyen al usar estas funciones. Si desea que las funciones DMax o DMin se basen 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 .
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 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 criterios incluye el valor actual de un cuadro de texto llamado FechaPedido. El cuadro de texto está enlazado a un campo FechaPedido de una tabla Pedidos. Tenga en cuenta que la referencia al control no se incluye en las comillas dobles (") que indican las cadenas. Así se asegura de 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 ejemplo siguiente, 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, encierran la fecha.
Dim dteOrderDate As Date
Dim curX As Currency
dteOrderDate = #03/30/2000#
curX = DMin("[Freight]", "Orders", _
"[OrderDate] = #" & dteOrderDate & "#")