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.
См. также
- Форум для разработчиков Access
- Помощь при работе с Access на support.office.com
- Помощь при работе с Access на answers.microsoft.com
- Форумы Access на UtterAccess
- Справочный центр (FMS) для разработки и VBA программирования для Access
- Публикации по Access на StackOverflow
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.