即効テクニック |
●概要● 構文 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