First, Last functions (Microsoft Access SQL)

Область применения: Access 2013 | Access 2016

Возвращает значение поля из первой или последней записи в результирующем наборе, возвращенном запросом.

Синтаксис

First( expr )

Last( expr )

Заполнитель expr представляет строковое выражение, идентифицирующее поле, содержащее нужные данные, или выражение, которое выполняет вычисление с использованием данных в этом поле. Операнды в expr могут включать имя поля таблицы, константы или функции (которые могут быть встроенными или определяемыми пользователем, но не одной из других агрегатных функций SQL).

Замечания

Функции First и Last аналогичны методам MoveFirst и MoveLast объекта DAO Recordset. Они просто возвращают значение указанного поля в первой или последней записи, соответственно, результирующий набор, возвращенный запросом. Так как записи обычно возвращаются не в определенном порядке (если запрос не содержит предложение ORDER BY ), записи, возвращаемые этими функциями, будут произвольными.

Пример

В этом примере таблица Employees возвращает значения из поля LastName первой и последней записей, возвращенных из таблицы.

В этом примере вызывается процедура EnumFields, которую можно найти в примере инструкции SELECT.

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 

В следующем примере сравнивается использование функций First и Last с просто с помощью функций Min и Max для поиска самых ранних и последних дат рождения сотрудников.

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 

Об участниках

Значок участника сообщества Сообщество UtterAccess — это основной форум вики-сайта и справки Microsoft Access.

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.