Partager via


First, Last functions (Microsoft Access SQL)

S’applique à : Access 2013 | Access 2016

Utilisées pour renvoyer une valeur d'un champ du premier ou du dernier enregistrement dans les résultats produits par une requête.

Syntaxe

First( expr )

Last( expr )

L'espace réservé expr représente une expression chaîne identifiant le champ qui contient les données que vous voulez utiliser ou une expression qui effectue un calcul à partir des données dans ce champ. Les opérandes dans expr peuvent inclure le nom d'un champ de table, une constante ou une fonction (qui peut être intrinsèque ou définie par l'utilisateur mais pas une autre fonction d'agrégation SQL).

Remarques

Les fonctions First et Last sont analogues aux méthodes MoveFirst et MoveLast d'un objet Recordset DAO. Elles renvoient la valeur d’un champ spécifié respectivement dans le premier ou le dernier enregistrement des résultats produits par une requête. Étant donné que les enregistrements ne sont en général renvoyés dans aucun ordre particulier (sauf si la requête comporte une clause ORDER BY), les enregistrements renvoyés par ces fonctions sont arbitraires.

Exemple

Dans cet exemple, la table Employees est utilisée pour renvoyer les valeurs du champ LastName des premier et dernier enregistrements extraits de la table.

La procédure EnumFields (que vous pouvez trouver dans l'exemple d'instruction SELECT) est appelée dans cet exemple.

Sub FirstLastX1() 
 
    Dim dbs As Database, rst As Recordset 
 
    ' Modify this line to include the path to Northwind 
    ' on your computer. 
    Set dbs = OpenDatabase("Northwind.mdb") 
     
    ' Return the values from the LastName field of the  
    ' first and last records returned from the table. 
    Set rst = dbs.OpenRecordset("SELECT " _ 
        & "First(LastName) as First, " _ 
        & "Last(LastName) as Last FROM Employees;") 
     
    ' Populate the Recordset. 
    rst.MoveLast 
     
    ' Call EnumFields to print the contents of the  
    ' Recordset. Pass the Recordset object and desired 
    ' field width. 
    EnumFields rst, 12 
 
    dbs.Close 
 
End Sub 

Dans l'exemple suivant, l'utilisation des fonctions First et Last est comparée à celle des fonctions Min et Max pour rechercher les dates de naissance des employés les plus vieux et les plus jeunes dans la table Employees.

Sub FirstLastX2() 
 
    Dim dbs As Database, rst As Recordset 
 
    ' Modify this line to include the path to Northwind 
    ' on your computer. 
    Set dbs = OpenDatabase("Northwind.mdb") 
     
    ' Find the earliest and latest birth dates of 
    ' Employees. 
    Set rst = dbs.OpenRecordset("SELECT " _ 
        & "First(BirthDate) as FirstBD, " _ 
        & "Last(BirthDate) as LastBD FROM Employees;") 
     
    ' Populate the Recordset. 
    rst.MoveLast 
     
    ' Call EnumFields to print the contents of the  
    ' Recordset. Pass the Recordset object and desired 
    ' field width. 
    EnumFields rst, 12 
     
    Debug.Print 
 
    ' Find the earliest and latest birth dates of 
    ' Employees. 
    Set rst = dbs.OpenRecordset("SELECT " _ 
        & "Min(BirthDate) as MinBD," _ 
        & "Max(BirthDate) as MaxBD FROM Employees;") 
     
    ' Populate the Recordset. 
    rst.MoveLast 
     
    ' Call EnumFields to print the contents of the  
    ' Recordset. Pass the Recordset object and desired 
    ' field width. 
    EnumFields rst, 12 
 
    dbs.Close 
 
End Sub 

À propos des collaborateurs

Icône membre de la communauté La communauté UtterAccess est le premier wiki et forum d’aide Microsoft Access.

Voir aussi

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.