Applies ToAccess pour Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Vous pouvez utiliser la fonction DCount pour déterminer le nombre d’enregistrements qui se trouvent dans un jeu d’enregistrements spécifié (un domaine ). Utilisez la fonction DCount dans un module Visual Basic pour Applications (VBA), un macro, une expression de requête ou un contrôle calculé.

Par exemple, vous pouvez utiliser la fonction DCount dans un module pour retourner le nombre d’enregistrements dans une table Orders qui correspondent aux commandes passées à une date donnée.

Syntaxe

DCount ( expr , domain [, criteria] )

La syntaxe de la fonction DCount contient les arguments suivants :

Argument

Description

expr

Obligatoire. Expression qui identifie le champ pour lequel vous souhaitez compter les enregistrements. 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 DCount 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 DCount évalue expr par rapport à l’ensemble du domaine. Tout champ inclus dans les critères doit également être un champ dans le domaine ; sinon, la fonction DCount retourne une valeur Null.

Notes

Utilisez la fonction DCount pour compter le nombre d’enregistrements dans un domaine lorsque vous n’avez pas besoin de connaître leurs valeurs particulières. Bien que l’argument expr puisse effectuer un calcul sur un champ, la fonction DCount calcule simplement le nombre d’enregistrements. La valeur de tout calcul effectué par expr n’est pas disponible.

Utilisez la fonction DCount 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 le nombre de commandes à expédier en Californie, définissez la propriété ControlSource d’une zone de texte sur l’expression suivante :

=DCount("[OrderID]", "Orders", "[ShipRegion] = 'CA'")

Si vous souhaitez simplement compter tous les enregistrements dans le domaine sans spécifier de restrictions, utilisez la fonction Count .

Conseil La fonction Count a été optimisée pour accélérer le comptage des enregistrements dans les requêtes. Utilisez la fonction Count dans une expression de requête au lieu de la fonction DCount et définissez des critères facultatifs pour appliquer des restrictions sur les résultats. Utilisez la fonction DCount lorsque vous devez compter les enregistrements dans un domaine à partir d’un module de code ou d’une macro, ou dans un contrôle calculé.

Vous pouvez utiliser la fonction DCount pour compter le nombre d’enregistrements contenant un champ particulier qui ne se trouve pas dans la source d’enregistrement sur laquelle votre formulaire ou état est basé. Par exemple, vous pouvez afficher le nombre de commandes dans la table Commandes dans un contrôle calculé sur un formulaire basé sur la table Products.

La fonction DCount ne compte pas les enregistrements qui contiennent des valeurs Null dans le champ référencé par expr , sauf si expr est le caractère générique astérisque (*). Si vous utilisez un astérisque, la fonction DCount calcule le nombre total d’enregistrements, y compris ceux qui contiennent des champs Null . L’exemple suivant calcule le nombre d’enregistrements dans une table Orders.

intX = DCount("*", "Orders")

Si domaine est une table avec un clé primaire, vous pouvez également compter le nombre total d’enregistrements en définissant expr sur le champ de clé primaire, car il n’y aura jamais de Valeur Null dans le champ de clé primaire.

Si expr identifie plusieurs champs, séparez les noms de champs par un opérateur de concaténation, soit une esperluette (&) soit l’opérateur d’addition (+). Si vous utilisez une esperluette pour séparer les champs, la fonction DCount retourne le nombre d’enregistrements contenant des données dans l’un des champs répertoriés. Si vous utilisez l’opérateur d’addition, la fonction DCount retourne uniquement le nombre d’enregistrements contenant des données dans tous les champs répertoriés. L’exemple suivant illustre les effets de chaque opérateur lorsqu’il est utilisé avec un champ qui contient des données dans tous les enregistrements (ShipName) et un champ qui ne contient pas de données (ShipRegion).

intW = DCount("[ShipName]", "Orders")intX = DCount("[ShipRegion]", "Orders")intY = DCount("[ShipName] + [ShipRegion]", "Orders")intZ = DCount("[ShipName] & [ShipRegion]", "Orders")

Remarque :  L’esperluette est l’opérateur préféré pour effectuer la concaténation de chaînes. Vous devez éviter d’utiliser l’opérateur d’addition pour autre chose que l’addition numérique, sauf si vous souhaitez spécifiquement propager des valeurs Null par le biais d’une expression.

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 DCount 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 vers un autre enregistrement ou en utilisant la méthode Update .

Exemples de requêtes

Expression

Résultats

SELECT DCount(« ProductID »,"ProductSales »,"Discount=0 ») AS Expr1 FROM ProductSales GROUP BY DCount(« ProductID »,"ProductSales »,"Discount=0 ») ;

Retourne le nombre de valeurs dans le champ « ProductID » de la table « ProductSales » où la valeur « Discount » est « 0 ».

SELECT DCount(« ProductID »,"ProductSales »,"DateofSale=Date()-1 ») AS YesterdaySale FROM ProductSales GROUP BY DCount(« ProductID »,"ProductSales »,"DateofSale=Date()-1 ») ;

Retourne le nombre de valeurs dans le champ « ProductID » de la table « ProductSales » où « DateofSale » est un jour avant la date actuelle.

Exemple VBA

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 nombre de commandes expédiées vers un pays/région spécifié après une date d’expédition spécifiée. Le domaine est une table Orders.

Public Function OrdersCount _    (ByVal strCountryRegion As String, _    ByVal dteShipDate As Date) As Integer    OrdersCount = DCount("[ShippedDate]", "Orders", _        "[ShipCountryRegion] = '" & strCountryRegion & _        "' AND [ShippedDate] > #" & dteShipDate & "#")End Function

Pour appeler la fonction, utilisez la ligne de code suivante dans la fenêtre Exécution :

:OrdersCount "UK", #1/1/96#

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.