Share via


Méthode Application.DMax (Access)

Utilisez la fonction DMax pour déterminer la valeur maximale dans un jeu d’enregistrements spécifié (un domaine).

Syntaxe

expression. DMax (Expr, Domaine, Critères)

expressionUne variable qui représente un objetApplication.

Paramètres

Nom Requis/Facultatif Type de données Description
Expr Obligatoire Chaîne Expression qui identifie le champ pour lequel vous voulez trouver la valeur minimale ou maximale. Il peut s'agir d'une expression 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 de table, un contrôle de 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 Chaîne Expression chaîne identifiant les enregistrements qui constituent le domaine. Il peut s'agir d'un nom de table ou d'un nom de requête qui ne requiert aucun paramètre.
Criteria Facultatif Variant Expression chaîne facultative servant à limiter la plage des données sur laquelle porte la fonction DMax. Par exemple, criteria est souvent équivalent à la clause WHERE d'une expression SQL sans le mot WHERE. En cas d'omission de criteria, la fonction DMax évalue expr par état à l'intégralité du domaine. Tout champ inclus dans les critères doit également être un champ dans le domaine ; sinon, la fonction DMax retourne une valeur Null.

Valeur renvoyée

Variant

Remarques

Par exemple, vous pouvez utiliser la fonction DMax dans les contrôles calculés d’un rapport pour afficher le montant de commande le plus élevé pour un client particulier.

La fonction DMax retourne la valeur maximale qui répond aux critères. Si expr identifie des données numériques, la fonction DMax retourne des valeurs numériques. Si expr identifie des données de type String, elle renvoie la première ou la dernière chaîne du classement alphabétique.

La fonction DMax ignore 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, la fonction DMax renvoie une valeur Null.

Utilisez la fonction 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 de mise à jour.

Remarque

Utilisez la fonction DMax ou la fonction Max dans une expression de champ calculé d’une requête de totaux. Avec la fonction DMax, le calcul des valeurs s'effectue avant le regroupement des données. Avec la fonction Max, les données d'abord regroupées, puis le calcul des valeurs incluses dans l'expression de champ est effectué.

Utilisez la fonction DMax dans un contrôle calculé lorsque vous devez déterminer des critères visant à limiter la plage des données sur laquelle porte la fonction. Par exemple, pour afficher le montant maximal des frais de port pour une commande à livrer en Californie, affectez l'expression suivante à la propriété ControlSource d'une zone de texte :

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

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

Même si la fonction DMin ou DMax vous permet de trouver la valeur minimale ou maximale d’un champ qui appartient à une table externe, il peut s’avérer plus efficace de créer une requête contenant les champs nécessaires et de baser votre formulaire ou état sur cette requête.

Exemple

L'exemple ci-dessous retourne les valeurs minimum et maximum du champ Port pour les commandes livrées au Royaume-Uni. Le domaine consiste en la table Commandes. L’argument critère limite l’ensemble d’enregistrements obtenu à ceux pour lesquels ShipCountry est égal au Royaume-Uni.

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

Dans l’exemple suivant, l’argument critère inclut la valeur actuelle d’une zone de texte appelée OrderDate. La zone de texte est liée à un champ OrderDate dans une table Orders. Remarquez que la référence au contrôle n'est pas entourée des guillemets doubles (") caractérisant les chaînes. Ceci garantit qu'à chaque appel de la fonction DMax, Microsoft Access extrait la valeur en cours du contrôle.

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

Les exemples suivants montrent comment utiliser différents types de critères avec la fonction DMax.

    ' ***************************
    ' Typical Use
    ' Numerical values. Replace "number" with the number to use.
    variable = DMax("[FieldName]", "TableName", "[Criteria] = number")

    ' Strings.
    ' Numerical values. Replace "string" with the string to use.
    variable = DMax("[FieldName]", "TableName", "[Criteria]= 'string'")

    ' Dates. Replace "date" with the string to use.
    variable = DMax("[FieldName]", "TableName", "[Criteria]= #date#")
    ' ***************************

    ' ***************************
    ' Referring to a control on a form
    ' Numerical values
    variable = DMax("[FieldName]", "TableName", "[Criteria] = " & Forms!FormName!ControlName)

    ' Strings
    variable = DMax("[FieldName]", "TableName", "[Criteria] = '" & Forms!FormName!ControlName & "'")

    ' Dates
    variable = DMax("[FieldName]", "TableName", "[Criteria] = #" & Forms!FormName!ControlName & "#")
    ' ***************************

    ' ***************************
    ' Combinations
    ' Multiple types of criteria
    variable = DMax("[FieldName]", "TableName", "[Criteria1] = " & Forms![FormName]![Control1] _
             & " AND [Criteria2] = '" & Forms![FormName]![Control2] & "'" _
            & " AND [Criteria3] =#" & Forms![FormName]![Control3] & "#")
    
    ' Use two fields from a single record.
    variable = DMax("[LastName] & ', ' & [FirstName]", "tblPeople", "[PrimaryKey] = 7")
            
    ' Expressions
    variable = DMax("[Field1] + [Field2]", "tableName", "[PrimaryKey] = 7")
    
    ' Control Structures
    variable = DMax("IIf([LastName] Like 'Smith', 'True', 'False')", "tableName", "[PrimaryKey] = 7")
    ' ***************************

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.