DAVG |
Moyenne de données |
|---|---|
| Access 2019, Access 2016, Access 2013, Access 2010, Access 2007, Access 2003, Access XP, Access 2000 | Microsoft Access |
Syntaxe
| DAvg(expression,domain, [criteria]) |
Paramètres
| Nom | Description |
|---|---|
| expression | Ce paramètre permet d'indiquer expression représentant des données numériques à laquelle il faut appliquer le calcul de la moyenne. |
| domain | Ce paramètre permet d'indiquer l'ensemble d'enregistrement correspondant au domaine. |
| criteria | Ce paramètre permet d'indiquer le critère de recherche à appliquer à l'expression. |
Description
Cette fonction permet d'effectuer la moyenne d'un ensemble de données numérique d'un domaine ou d'un ensemble d'enregistrement.
Remarques
- La fonction calcule la moyenne d'un champ dans un domaine : La fonction DAvg permet de calculer la moyenne des valeurs numériques contenues dans un champ appartenant à une table ou à une requête. Contrairement à Avg, elle ne travaille pas uniquement sur le jeu de résultats d'une requête en cours, mais sur un domaine spécifié explicitement. Cette caractéristique la rend très utile dans les formulaires et les états.
- Le paramètre domain désigne la table ou la requête à analyser : Le deuxième paramètre indique le domaine dans lequel la recherche doit être effectuée. Il peut s'agir du nom d'une table ou d'une requête enregistrée. Grâce à ce mécanisme, DAvg peut accéder à des données qui ne sont pas nécessairement affichées dans le formulaire ou la requête courante.
- Le paramètre criteria est facultatif mais très utile : Le troisième paramètre permet de limiter les enregistrements pris en compte dans le calcul de la moyenne. Par exemple, il est possible de calculer uniquement la moyenne des salaires d'un département ou la moyenne des notes d'une classe. Lorsque ce paramètre est omis, toutes les lignes du domaine sont utilisées.
- Les valeurs Null sont automatiquement ignorées : Comme la fonction SQL Avg, DAvg ne tient pas compte des valeurs Null lors du calcul de la moyenne. Seules les valeurs numériques effectivement présentes sont additionnées puis divisées par leur nombre. Cette gestion automatique évite d'avoir à filtrer les données avant d'effectuer le calcul.
- Elle est particulièrement adaptée aux formulaires et aux états : DAvg est très souvent utilisée dans les contrôles calculés des formulaires ou des états afin d'afficher des statistiques en temps réel. Par exemple, un formulaire peut afficher la moyenne des ventes ou des notes sans qu'il soit nécessaire de créer une requête spécifique. Cette approche simplifie considérablement la conception de l'application.
- La fonction peut être moins performante sur de grandes tables : Chaque appel à DAvg provoque une recherche dans le domaine spécifié. Si la fonction est exécutée de très nombreuses fois sur une table volumineuse, les performances peuvent diminuer sensiblement. Dans ce cas, il est souvent préférable d'utiliser une requête SQL contenant la fonction Avg, étant généralement plus efficace.
- Le critère doit respecter la syntaxe des expressions Access : Le paramètre criteria est exprimé sous forme de chaîne de caractères, par exemple "Ville='Montréal'" ou "Salaire>50000". Il doit respecter les règles de syntaxe des critères Access, notamment pour les guillemets, les dates et les opérateurs de comparaison. Une erreur dans cette chaîne peut empêcher le calcul ou produire un résultat inattendu.
- Elle est souvent utilisée avec d'autres fonctions de domaine : DAvg appartient à la famille des fonctions de domaine comprenant notamment DCount, DSum, DMax, DMin, DLookup, DFirst et DLast. Ces fonctions permettent d'effectuer des calculs ou des recherches directement dans une table ou une requête. Elles offrent une grande souplesse pour accéder rapidement à des informations sans écrire de requête SQL complexe.
- Elle retourne une valeur de type Variant : Le résultat renvoyé par DAvg est un Variant, généralement contenant un nombre décimal. Si aucun enregistrement ne satisfait les critères ou si aucune valeur numérique n'est disponible, la fonction retourne Null. Il est donc conseillé de tester ce cas avant d'utiliser le résultat dans un calcul.
- La fonction est compatible avec toutes les versions modernes de Microsoft Access : DAvg est disponible depuis les premières versions de Microsoft Access et son fonctionnement est demeuré stable au fil des années. Elle est compatible avec Access 2000, Access XP, Access 2003, Access 2007, Access 2010, Access 2013, Access 2016 ainsi qu'avec Microsoft 365. Cette stabilité garantit que les applications utilisant cette fonction continueront de fonctionner correctement lors d'une migration vers une version plus récente d'Access.
Exemple
Voici un exemple de comment utiliser la fonction DAvg dans Microsoft Access :
DAvg("UnitPrice", "Order Details", "OrderID = 10247")
Dans cet exemple, vous calculeriez la moyenne du champ UnitPrice de la table Order Details où l'OrderID est 10247. Cela correspond à l'instruction SQL suivante :
SELECT Avg([Order Details].UnitPrice) AS AvgOfUnitPrice
FROM [Order Details]
WHERE ((([Order Details].OrderID)=10247));
Vous pouvez également calculer la moyenne de plusieurs champs numériques. Par exemple :
DAvg("UnitPrice * Quantity", "Order Details", "OrderID = 10247")
Cet exemple calculerait la moyenne du prix unitaire multiplié par la quantité pour tous les enregistrements de la table Order Details où l'identifiant de la commande est 10247. Cela correspond à l'instruction SQL suivante :
SELECT Avg([UnitPrice]*[Quantity]) AS Expr1
FROM [Order Details]
WHERE ((([Order Details].OrderID)=10247));
Exemple de code VBA
La fonction DAvg peut être utilisée dans le code VBA de Microsoft Access.
Par exemple :
Dim LTotal As Currency
LTotal = DAvg("UnitPrice", "Order Details", "OrderID = 10247")
Dans cet exemple, la variable appelée LTotal contiendrait désormais le prix unitaire moyen de la table Détails de la commande où l'identifiant de commande est 10247.