レコードを並べ替える Sort

レコードを並べ替える Sort

Sub 並べ替え()
'Sort プロパティで並べ替える
Dim myCon As New ADODB.Connection, myRS As New ADODB.Recordset
Dim FileName As String
FileName = ThisWorkbook.Path & "\mdb\2-sampleDB.mdb"
myCon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FileName
'CursorLocation プロパティに adUseClient を設定
myRS.CursorLocation = adUseClient
myRS.Open "アルバイト", myCon, adOpenForwardOnly, adLockOptimistic

'「所属」フィールド昇順、「時給」フィールド降順で並べ替えて転記
myRS.Sort = "所属 ASC ,時給 DESC"
Range("A1").CopyFromRecordset myRS

myRS.Close: Set myRS = Nothing
myCon.Close: Set myCon = Nothing

End Sub

ソートを行う準備をする
Recordset オブジェクト.CursorLocation = adUseClient
CursorLocation プロパティは、カーソルの状態を変更するプロパティ

プロパティに指定できる定数 ( CursorLocationEnum )
定数 説明
adUseClient 3 ローカル カーソルライブラリより提供されたクライアント側カーソルを使います。ローカルカーソルサービスにはドライバによって提供されるカーソルよりも多くのカーソル機能があるので、この設定を利用すればより高度な機能を提供できます。以前のバージョンとの互換性を保つために、同じ意味を持つadUseClientBatch もサポートしています。
adUseNone 1 カーソルサービスを使いません。(この定数は現行バージョン用ではなく、以前のバージョンとの互換性を保つために装備されています。)
adUseServer 2 既定値です。データ プロバイダカーソルまたはドライバによって供給されるカーソルを使用します。これらのカーソルは、多くの場合柔軟性が高く、ほかのユーザーが行うデータソースへの変更を検出できます。ただし、「MicrosoftCursor Service for OLEDB」にはサーバー側カーソルではシミュレートできない機能(独立した Recordset オブジェクトなど)があり、そのような機能はこの設定では利用できません。

レコードを並べ替える
Recordset オブジェクト.Sort = 文字列

複数フィールドをソートする場合はカンマで区切って指定する。

「アルバイト」テーブル

実行結果