Vous pouvez utiliser les fonctions DFirst et DLast pour retourner un enregistrement aléatoire à partir d’un champ particulier dans une table ou une requête lorsque vous avez simplement besoin d’une valeur de ce champ. Utilisez les fonctions DFirst et DLast dans un macro, un module, une expression de requête ou un contrôle calculé sur un formulaire ou un état.
Syntaxe
DFirst ( expr , domain [, criteria] )
DLast ( expr , domain [, criteria] )
Les fonctions DFirst et DLast ont les arguments suivants :
Argument |
Description |
expr |
Obligatoire. Expression qui identifie le champ à partir duquel vous souhaitez trouver la première ou la dernière valeur. 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. Par exemple, 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. |
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, les critères sont souvent équivalents à la clause WHERE dans une expression SQL, sans le mot WHERE. Si les 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 retournent une valeur Null. |
Notes
Remarque : Si vous souhaitez retourner le premier ou le dernier enregistrement d’un jeu d’enregistrements (un domaine ), vous devez créer une requête triée comme croissant ou décroissant et définir la propriété TopValues sur 1. Pour plus d’informations, consultez la rubrique relative à 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 retourner 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 ») ; |
Retourne la valeur aléatoire du champ « DateofSale » de la table « ProductSales ». Si la table a une « clé primaire », elle retourne la valeur « FIRST » de « DateofSale » en fonction de l’ordre croissant de la clé primaire. |
SELECT DLast(« DateofSale »,"ProductSales ») AS FirstDis_ID FROM ProductSales GROUP BY DLast(« DateofSale »,"ProductSales ») ; |
Retourne la valeur aléatoire du champ « DateofSale » de la table « ProductSales ». Si la table a une « clé primaire », elle retourne la valeur « LAST » de « DateofSale » en fonction de l’ordre croissant de la clé primaire. retourne le premier « ProductID » de la table « ProductSales » où la valeur « Discount » 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 « ProductID » de la table « ProductSales » où la valeur « Discount » est « 0 » et affiche le résultat dans la colonne « LastDis_ID ». |