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
参照
Column オブジェクト (ADOX)
Columns コレクション (ADOX)
Index オブジェクト (ADOX)
SortOrder プロパティ (ADOX)