Propriedade Recordset2.Sort (DAO)
Aplica-se a: Access 2013, Office 2013
Define ou retorna a ordem de classificação dos registros em um objeto Recordset (somente em espaços de trabalho do Microsoft Access).
Sintaxe
expression .Sort
Expressão Uma variável que representa um objeto Recordset2 .
Comentários
Use a propriedade Sort com os objetos Recordset do tipo dynaset e snapshot.
Quando você definir essa propriedade para um objeto, ocorrerá a classificação durante a criação de um objeto Recordset subsequente para esse objeto. A definição da propriedade Sort substituirá qualquer ordem de classificação especificada para um objeto QueryDef.
A ordem de classificação padrão é a ascendente (A a Z ou 0 a 100).
A propriedade Sort não se aplica a objetos Recordset do tipo tabela ou somente encaminhamento. Para classificar o objeto Recordset do tipo tabela, use a propriedade Index.
Observação
Em vários casos, é mais rápido abrir um novo objeto Recordset usando uma instrução SQL que inclua os critérios de classificação.
Exemplo
Este exemplo demonstra a propriedade Sort pela alteração do seu valor e a criação de um novo Recordset. A função SortOutput será necessária para executar esse procedimento.
Sub SortX()
Dim dbsNorthwind As Database
Dim rstEmployees As Recordset2
Dim rstSortEmployees As Recordset2
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
Set rstEmployees = _
dbsNorthwind.OpenRecordset("Employees", _
dbOpenDynaset)
With rstEmployees
SortOutput "Original Recordset:", rstEmployees
.Sort = "LastName, FirstName"
' Print report showing Sort property and record order.
SortOutput _
"Recordset after changing Sort property:", _
rstEmployees
' Open new Recordset from current one.
Set rstSortEmployees = .OpenRecordset
' Print report showing Sort property and record order.
SortOutput "New 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
' Enumerate Recordset.
Do While Not .EOF
Debug.Print " " & !LastName & _
", " & !FirstName
.MoveNext
Loop
End With
End Function
Quando você conhecer os dados a serem selecionados, geralmente, será mais eficiente criar um Recordset com uma instrução SQL. Este exemplo mostra como você pode criar apenas um Recordset e obter os mesmos resultados de um exemplo anterior.
Sub SortX2()
Dim dbsNorthwind As Database
Dim rstEmployees As Recordset
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
' Open a Recordset from an SQL statement that specifies a
' sort order.
Set rstEmployees = _
dbsNorthwind.OpenRecordset("SELECT * " & _
"FROM Employees ORDER BY LastName, FirstName", _
dbOpenDynaset)
dbsNorthwind.Close
End Sub