Vous pouvez utiliser la fonction DAvg pour calculer la moyenne d’un jeu de valeurs dans un jeu d’enregistrements spécifié (un domaine ). Utilisez la fonction DAvg dans un module Visual Basic pour Applications (VBA), dans un macro, dans une expression de requête ou dans un contrôle calculé.
Par exemple, vous pouvez utiliser la fonction DAvg dans la ligne critères d’une requête select sur le coût de transport pour limiter les résultats aux enregistrements où le coût de transport dépasse la moyenne. Vous pouvez également utiliser une expression incluant la fonction DAvg dans un contrôle calculé et afficher la valeur moyenne des commandes précédentes en regard de la valeur d’une nouvelle commande.
Syntaxe
DAvg ( expr , domain [, criteria] )
La syntaxe de la fonction DAvg contient les arguments suivants :
Argument |
Description |
expr |
Obligatoire. Expression qui identifie le champ contenant les données numériques que vous souhaitez moyenner. Il peut s’agir d’un 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 sur 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 le jeu 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 D Avg est exécutée. Par exemple, les critères sont souvent équivalents à la clause WHERE dans une expression SQL, sans le mot WHERE. Si critères est omis , la fonction DAvg évalue expr par rapport à l’ensemble du domaine. Tout champ inclus dans criteria doit également être un champ dans le domaine ; sinon, la fonction DAvg retourne une valeur Null. |
Remarques
Les enregistrements contenant des valeurs Null ne sont pas inclus dans le calcul de la moyenne.
Que vous utilisiez la fonction DAvg dans une macro ou un module, dans une expression de requête ou dans un contrôle calculé, vous devez construire l’argument critère avec soin pour vous assurer qu’il sera évalué correctement.
Vous pouvez utiliser la fonction DAvg pour spécifier des critères dans la ligne Critères d’une requête. Par exemple, supposons que vous souhaitiez afficher une liste de tous les produits commandés dans des quantités supérieures à la quantité moyenne de commandes. Vous pouvez créer une requête sur les tables Commandes, Détails de la commande et Produits, et inclure les champs Nom du produit et Quantité, avec l’expression suivante dans la ligne Critères sous le champ Quantité :
>DAvg("[Quantity]", "Orders")
Vous pouvez également utiliser la fonction DAvg dans une expression de champ calculé dans une requête ou dans la ligne Mettre à jour vers d’un requête Mise à jour.
Remarque : Vous pouvez utiliser la fonction DAvg ou Avg dans une expression de champ calculé dans un requête Opérations. Si vous utilisez la fonction DAvg , les valeurs sont moyennes avant que les données ne soient regroupées. Si vous utilisez la fonction Avg , les données sont regroupées avant la moyenne des valeurs de l’expression de champ.
Utilisez la fonction DAvg dans un contrôle calculé lorsque vous devez spécifier des critères pour restreindre la plage de données sur laquelle la fonction DAvg est exécutée. Par exemple, pour afficher le coût moyen du fret pour les expéditions envoyées en Californie, définissez la propriété ControlSource d’une zone de texte sur l’expression suivante :
=DAvg("[Freight]", "Orders", "[ShipRegion] = 'CA'")
Si vous souhaitez simplement effectuer la moyenne de tous les enregistrements dans le domaine, utilisez la fonction Avg .
Vous pouvez utiliser la fonction DAvg dans un module ou une macro ou dans un contrôle calculé sur un formulaire si un champ que vous devez afficher ne se trouve pas dans la source d’enregistrement sur laquelle votre formulaire est basé. Par exemple, supposons que vous disposez d’un formulaire basé sur la table Commandes et que vous souhaitez inclure le champ Quantité de la table Détails de la commande afin d’afficher le nombre moyen d’articles commandés par un client particulier. Vous pouvez utiliser la fonction DAvg pour effectuer ce calcul et afficher les données sur votre formulaire.
Conseils
-
Si vous utilisez la fonction DAvg dans un contrôle calculé, vous pouvez placer le contrôle sur l’en-tête ou le pied de page du formulaire afin que la valeur de ce contrôle ne soit pas recalculée chaque fois que vous passez à un nouvel enregistrement.
-
Si le type de données du champ dont expr est dérivé est un nombre, la fonction DAvg renvoie un type de données Double. Si vous utilisez la fonction DAvg dans un contrôle calculé, incluez une fonction de conversion de type de données dans l’expression pour améliorer les performances.
-
Bien que vous puissiez utiliser la fonction DAvg pour déterminer la moyenne des valeurs d’un champ dans un table étrangère, il peut être plus efficace de créer une requête qui contient tous les champs dont vous avez besoin, puis de baser votre formulaire ou état sur cette requête.
Remarque : Les modifications non enregistrées apportées aux enregistrements dans le domaine ne sont pas incluses lorsque vous utilisez cette fonction. Si vous souhaitez que la fonction DAvg soit basée sur les valeurs modifiées, vous devez d’abord enregistrer les modifications en cliquant sur Enregistrer l’enregistrement sous l’onglet Données, en déplaçant le focus vers un autre enregistrement ou en utilisant la méthode Update.
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 du développeur dans la liste déroulante en regard de Rechercher et entrez un ou plusieurs termes dans la zone de recherche.
La fonction suivante retourne le coût de transport moyen pour les commandes expédiées à une date donnée ou après cette date. Le domaine est une table Orders. L’argument critère restreint l’ensemble d’enregistrements résultant en fonction du pays/de la région et de la date d’expédition donnés. Notez que le mot clé AND est inclus dans la chaîne pour séparer les champs multiples dans l’argument critère. Tous les enregistrements inclus dans le calcul de la fonction DAvg ont ces deux critères.
Public Function AvgFreightCost _
(ByVal strCountryRegion As String, _ ByVal dteShipDate As Date) As Double AvgFreightCost = DAvg("[Freight]", "Orders", _ "[ShipCountryRegion] = '" & strCountryRegion & _ "'AND [ShippedDate] >= #" & dteShipDate & "#") End Function
Pour appeler la fonction, utilisez la ligne de code suivante dans la fenêtre Exécution :
:AvgFreightCost "UK", #1/1/96#