Fonctions DFirst, DLast

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

Vous pouvez utiliser les fonctions DFirst et DLast pour renvoyer un enregistrement aléatoire à partir d’un champ spécifique d’une table ou d’une requête lorsque vous avez simplement besoin d’une valeur de ce champ. Utilisez les fonctions DFirst et DLast dans une macro, un module, une expression de requête ou un contrôle calculé sur un formulaire ou un état.

Syntaxe

DFirst( ** expr, domaine [, critères**] )

DLast( ** expr, domaine [, critère**] )

Les fonctions DFirst et DLast présentent les arguments suivants :

Argument Description
expr Obligatoire. Une expression qui identifie le champ à partir duquel vous souhaitez rechercher la première ou la dernière valeur. Il peut s’agir soit d’une expression de chaîne identifiant un champ dans une table ou une requête, soit 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.
critères Facultatif. Expression de chaîne utilisée pour restreindre la plage de données sur laquelle la fonction DFirst ou DLast 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 DFirst et DLast é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 DFirst et DLast renvoient la valeur Null.

Remarques

Remarque

Si vous souhaitez renvoyer le premier ou le dernier enregistrement d’un jeu d’enregistrements (un domaine), vous devez créer une requête triée par ordre croissant ou décroissant et définir la propriété TopValues sur 1. Pour plus d’informations, consultez la rubrique sur la propriété TopValues . À partir d’un module Visual Basic pour Applications (VBA), vous pouvez également créer un objet Recordset ADO et utiliser la méthode MoveFirst ou MoveLast pour renvoyer le premier ou le dernier enregistrement d’un jeu d’enregistrements.

Exemples

Expression Résultats
SELECT DFirst(« DateofSale »,"ProductSales ») AS Expr1 FROM ProductSales GROUP BY DFirst(« DateofSale »,"ProductSales ») ; Renvoie la valeur aléatoire du champ « DateofSale » de la table « ProductSales ». Si la table a une « clé primaire », elle renvoie la valeur « FIRST » de la valeur « DateofSales » en fonction de l’ordre croissant de la clé primaire.
SELECT DLast(« DateofSale »,"ProductSales ») AS FirstDis_ID FROM ProductSales GROUP BY DLast(« DateofSale »,"ProductSales ») ; Renvoie la valeur aléatoire du champ « DateofSale » de la table « ProductSales ». Si la table a une « clé primaire », elle renvoie la valeur « LAST » de la date de vente en fonction de l’ordre croissant de la clé primaire. renvoie le premier « ProductID » de la table « ProductSales » où la valeur « Remise » est « 0 » et affiche le résultat dans la colonne « FirstDis_ID ».
SELECT DLast(« ProductID »,"ProductSales »,"Discount=0 ») AS LastDis_ID FROM ProductSales GROUP BY DLast(« ProductID »,"ProductSales »,"Discount=0 ») ; Renvoie le dernier « IDProduit » de la table « ProductSales » où la valeur « Remise » est « 0 » et affiche le résultat dans la colonne « LastDis_ID ».