Fonctions DMin, DMax

S’applique à
Access pour Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Vous pouvez utiliser les fonctions DMin et DMax pour déterminer les valeurs minimales et maximales dans un jeu d’enregistrements spécifié (un domaine). Utilisez les fonctions DMin et DMax dans un module Visual Basic pour Applications (VBA), une macro, une expression de requête ou un contrôle calculé.

Par exemple, vous pouvez utiliser les fonctions DMin et DMax dans les contrôles calculés d’un état pour afficher les montants de commande les plus petits et les plus importants pour un client donné. Vous pouvez également utiliser la fonction DMin dans une expression de requête pour afficher toutes les commandes avec une remise supérieure à la remise minimale possible.

Syntaxe

DMin(expr, domaine [, critères] )

DMax(expr, domaine [, critères] )

Les fonctions DMin et DMax présentent les arguments suivants :

Argument Description
expr Obligatoire. Expression qui identifie le champ dont vous souhaitez rechercher la valeur minimale ou maximale. Il peut s’agir d’une expression de chaîne identifiant un champ dans une table ou une requête, ou d’une expression qui effectue un calcul sur les données de ce champ. Dans expr, vous pouvez inclure le nom d’un champ dans une table, un contrôle d’un formulaire, une constante ou une fonction. Si expr inclut une fonction, elle peut être intégrée ou définie par l’utilisateur, mais pas une autre fonction d’agrégation de domaine ou SQL.
domaine Obligatoire. Expression de chaîne identifiant l’ensemble d’enregistrements qui constitue le domaine. Il peut s’agir d’un nom de table ou d’un nom de requête pour une requête qui ne nécessite pas de paramètre.
critères Facultatif. Expression de chaîne utilisée pour restreindre la plage de données sur laquelle la fonction DMin ou DMax est exécutée. Par exemple, criteria est souvent équivalent à la clause WHERE dans une expression SQL, sans le mot WHERE. Si des critères sont omis, les fonctions DMin et DMax évaluent expr par rapport à l’ensemble du domaine. Tout champ inclus dans les critères doit également être un champ dans le domaine, sinon les fonctions DMin et DMax renvoient la valeur Null.

Remarques

Les fonctions DMin et DMax renvoient les valeurs minimales et maximales qui répondent aux critères. Si expr identifie des données numériques, les fonctions DMin et DMax renvoient des valeurs numériques. Si expr identifie les données de chaîne, ils renvoient la chaîne qui est la première ou la dernière par ordre alphabétique.

Les fonctions DMin et DMax ignorent les valeurs Null dans le champ référencé par expr. Toutefois, si aucun enregistrement ne répond aux critères ou si le domaine ne contient aucun enregistrement, les fonctions DMin et DMax renvoient la valeur Null.

Que vous utilisiez la fonction DMin ou DMax dans une macro, un module, une expression de requête ou un contrôle calculé, vous devez construire l’argument critère avec soin pour garantir qu’il sera évalué correctement.

Vous pouvez utiliser les fonctions DMin et DMax pour spécifier des critères dans la ligne Critères d’une requête, dans une expression de champ calculé dans une requête ou dans la ligne Mettre à jour vers d’une requête Mise à jour.

Remarque

Vous pouvez utiliser les fonctions DMin et DMax , ou les fonctions Min et Max dans une expression de champ calculé d’une requête Opérations. Si vous utilisez la fonction DMin ou DMax , les valeurs sont évaluées avant le regroupement des données. Si vous utilisez la fonction Min ou Max , les données sont regroupées avant l’évaluation des valeurs figurant dans l’expression de champ.

Utilisez la fonction DMin ou DMax dans un contrôle calculé lorsque vous devez spécifier des critères pour restreindre la plage de données sur laquelle la fonction est exécutée. Par exemple, pour afficher les frais de transport maximaux facturés pour une commande expédiée en Californie, définissez la propriété SourceContrôle d’une zone de texte sur l’expression suivante :

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

Si vous souhaitez simplement trouver la valeur minimale ou maximale de tous les enregistrements du domaine, utilisez la fonction Min ou Max .

Vous pouvez utiliser la fonction DMin ou DMax dans un module ou une macro ou dans un contrôle calculé d’un formulaire si le champ que vous devez afficher ne figure pas dans la source d’enregistrement sur laquelle votre formulaire est basé.

Conseil

Bien que vous puissiez utiliser les fonctions DMin ou DMax pour rechercher la valeur minimale ou maximale à partir d’un champ d’une table étrangère, il peut être plus efficace de créer une requête qui contient les champs dont vous avez besoin dans les deux tables et de baser votre formulaire ou état sur cette requête.

Remarque

Les modifications non enregistrées apportées aux enregistrements du domaine ne sont pas incluses lorsque vous utilisez ces fonctions. Si vous souhaitez que la fonction DMax ou DMin soit basée sur les valeurs modifiées, vous devez d’abord enregistrer les modifications en cliquant sur Enregistrer l’enregistrement sous Enregistrements sous l’onglet Données , en déplaçant le focus sur un autre enregistrement ou en utilisant la méthode Mise à jour .

Exemple

Remarque

Les exemples suivants illustrent l’utilisation de cette fonction dans un module Visual Basic pour Applications (VBA). Pour plus d’informations sur l’utilisation de VBA, sélectionnez Référence développeur dans la liste déroulante en regard de Rechercher , puis entrez un ou plusieurs termes dans la zone de recherche.

L’exemple suivant renvoie les valeurs les plus basses et les plus élevées du champ Transport pour les commandes expédiées au Royaume-Uni. Le domaine est une table Commandes. L’argument critère limite l’ensemble d’enregistrements résultant à ceux pour lesquels ShipCountryRegion est égal à UK.


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

Dans l’exemple suivant, l’argument critères inclut la valeur actuelle d’une zone de texte appelée DateCommande. La zone de texte est liée à un champ DateCommande dans une table Commandes. Notez que la référence au contrôle n’est pas incluse dans les guillemets doubles (") qui désignent les chaînes. Ainsi, chaque fois que la fonction DMax est appelée, Access obtient la valeur actuelle du contrôle.


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

Dans l’exemple suivant, l’expression de critères inclut une variable, dteOrderDate. Notez que les signes dièses (#) sont inclus dans l’expression de chaîne de sorte que, lorsque les chaînes sont concaténées, ils entourent la date.


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