SortOrder 属性示例 (VB)
此示例演示已在 Index 的 Columns 集合中追加了一个 Column 的 SortOrder 属性。 以下代码将升序索引追加到“Employees”表中的“Country”列,然后显示记录。 然后,代码将降序索引追加到“Employees”表中的“Country”列,并再次显示记录。 下面显示了升序索引和降序索引之间的差异。
' BeginSortOrderVB
Sub Main()
On Error GoTo SortOrderXError
Dim cnn As New ADODB.Connection
Dim catNorthwind As New ADOX.Catalog
Dim idxAscending As New ADOX.Index
Dim idxDescending As New ADOX.Index
Dim rstEmployees As New ADODB.Recordset
' Connect to the catalog.
cnn.Open "Provider='Microsoft.Jet.OLEDB.4.0';" & _
"Data Source='Northwind.mdb';"
Set catNorthwind.ActiveConnection = cnn
' Append Country column to new index.
idxAscending.Columns.Append "Country"
idxAscending.Columns("Country").SortOrder = adSortAscending
idxAscending.Name = "Ascending"
idxAscending.IndexNulls = adIndexNullsAllow
'Append new index to Employees table.
catNorthwind.Tables("Employees").Indexes.Append idxAscending
rstEmployees.Index = idxAscending.Name
rstEmployees.Open "Employees", cnn, adOpenKeyset, _
adLockOptimistic, adCmdTableDirect
With rstEmployees
.MoveFirst
Debug.Print "Index = " & .Index
Debug.Print " Country - Name"
' Enumerate the Recordset. The value of the
' IndexNulls property will determine if the newly
' added record appears in the output.
Do While Not .EOF
Debug.Print " " & !Country & " - " & _
!FirstName & " " & !LastName
.MoveNext
Loop
.Close
End With
' Append Country column to new index.
idxDescending.Columns.Append "Country"
idxDescending.Columns("Country").SortOrder = adSortDescending
idxDescending.Name = "Descending"
idxDescending.IndexNulls = adIndexNullsAllow
'Append descending index to Employees table.
catNorthwind.Tables("Employees").Indexes.Append idxDescending
rstEmployees.Index = idxDescending.Name
rstEmployees.Open "Employees", cnn, adOpenKeyset, _
adLockOptimistic, adCmdTableDirect
With rstEmployees
.MoveFirst
Debug.Print "Index = " & .Index
Debug.Print " Country - Name"
' Enumerate the Recordset. The value of the
' IndexNulls property will determine if the newly
' added record appears in the output.
Do While Not .EOF
Debug.Print " " & !Country & " - " & _
!FirstName & " " & !LastName
.MoveNext
Loop
.Close
End With
' Delete new indexes because this is a demonstration.
catNorthwind.Tables("Employees").Indexes.Delete idxAscending.Name
catNorthwind.Tables("Employees").Indexes.Delete idxDescending.Name
'Clean up
cnn.Close
Set catNorthwind = Nothing
Set idxAscending = Nothing
Set idxDescending = Nothing
Set rstEmployees = Nothing
Set cnn = Nothing
Exit Sub
SortOrderXError:
Set catNorthwind = Nothing
Set idxAscending = Nothing
Set idxDescending = Nothing
If Not rstEmployees Is Nothing Then
If rstEmployees.State = adStateOpen Then rstEmployees.Close
End If
Set rstEmployees = Nothing
If Not cnn Is Nothing Then
If cnn.State = adStateOpen Then cnn.Close
End If
Set cnn = Nothing
If Err <> 0 Then
MsgBox Err.Source & "-->" & Err.Description, , "Error"
End If
End Sub
' EndSortOrderVB