●概要●
構文 expression.Sort 取得/設定
設定項目 内容
expression ダイナセットタイプ、またはスナップショットタイプの
Recordsetオブジェクトを指定[省略不可]
RecordsetオブジェクトのSortプロパティを設定してレコードを並び替えます。設定値はSQLステートメントのORDER BY句の予約語「ORDER BY」以降と同じ文字列を指定します。
Recordsetオブジェクトに対してSortプロパティを設定するだけでは並べ替えは行われません。Sortプロパティを設定したオブジェクトをもとに、新規にRecordsetオブジェクトを開いた時点で並べ替えられたRecordsetオブジェクトが作成されます。
また、SQLステートメントと同様に、並べ替えを行うキーは複数設定することができ、それぞれにつき昇順(ASC)と降順(DESC)を指定できます。省略すると昇順(ASC)を指定したことになります。
ここでは「社員テーブル」をデータソースとしてダイナセットタイプのRecordsetオブジェクトを作成し、Sortプロパティを設定してからReordsetオブジェクトのOpenRecordsetメソッドを使用して並べ替えを行います。
●設定●
動作確認をするためには、Visual Basic Editorのメニューから[ツール]→[参照設定]コマンドを選択し、[参照設定]ダイアログボックスで「Microsoft DAO 3.6 Object Library」にチェックを入れてください。
●サンプル●
Public Sub SortRecordSample()
Dim myDB As Database
Dim myRS As DAO.Recordset
'カレントデータベースを変数に代入する
Set myDB = CurrentDb
'[社員テーブル]をデータソースとしてレコードセットを開く
Set myRS = myDB.OpenRecordset("社員テーブル", dbOpenDynaset)
'ソートキーを指定する
'第1キー:入社年月日(降順) 第2キー:社員コード(昇順)
myRS.Sort = "入社年月日 DESC,社員コード ASC"
'ソートの結果をmyRSに代入する
Set myRS = myRS.OpenRecordset
'myRSの最後のレコードまで1件ずつレコードを表示する
With myRS
Do While Not .EOF
Debug.Print !社員コード & _
" " & !部署コード & _
" " & !名前 & _
" " & !入社年月日 & _
" " & !職種
.MoveNext '次のレコードに移動
Loop
End With
'レコードセットを閉じる
myRS.Close
End Sub