SortOrder プロパティの使用例 (VB)
この例では、Indexの Columns コレクションに追加された 列 の 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)