Описание
Задает или возвращает порядок сортировки записей в объекте Recordset (только в рабочей области Microsoft Jet).
Значение
Задаваемое или возвращаемое значение является выражением типа String, содержащим предложение ORDER BY инструкции SQL без зарезервированных слов ORDER BY.
Замечания
Свойство Sort используют с объектами Recordset типа динамического и статического набора записей.
После задания значения свойства Sort для объекта этот порядок сортировки будет использован при создании следующего объекта Recordset на основе данного объекта. Значение свойства Sort имеет приоритет над любым порядком сортировки, заданным для объекта QueryDef.
По умолчанию задается сортировка по возрастанию (от "А" до "Я" и от 0 до 100).
Свойство Sort нельзя применять к объектам Recordset типа таблицы или статического набора записей с последовательным доступом. Для сортировки записей в табличном объекте Recordset следует использовать свойство Index.
Во многих случаях быстрее открыть новый объект Recordset с помощью инструкции SQL, включающей условие сортировки.
Пример
Следующая программа демонстрирует применение свойства Sort, изменяя его значение и создавая новый объект Recordset. Для выполнения данной процедуры требуется функция SortOutput.
Sub SortX() Dim dbsNorthwind As Database Dim rstEmployees As Recordset Dim rstSortEmployees As Recordset Set dbsNorthwind = OpenDatabase("Борей.mdb") Set rstEmployees = dbsNorthwind.OpenRecordset("Сотрудники", dbOpenDynaset) With rstEmployees SortOutput "Исходный объект Recordset:", rstEmployees .Sort = "Фамилия, Имя" ' Печатает отчет, показывая значение свойства Sort ' и порядок записей. SortOutput "Объект Recordset после изменения свойства Sort:", rstEmployees ' Открывает новый объект Recordset из текущего. Set rstSortEmployees = .OpenRecordset ' Печатает отчет, показывая значение свойства Sort ' и порядок записей. SortOutput "Новый объект Recordset:", rstSortEmployees rstSortEmployees.Close .Close End With dbsNorthwind.Close End Sub Function SortOutput(strTemp As String, rstTemp As Recordset) With rstTemp Debug.Print strTemp Debug.Print " Sort = " & IIf(.Sort <> "", .Sort, "[Empty]") .MoveFirst ' Цикл по всем компонентам объекта Recordset. Do While Not .EOF Debug.Print " " & !Фамилия & ", " & !Имя .MoveNext Loop End With End Function