レコードを並べ替える(ADO)Sort プロパティ
データベースのレコードを並べ替える
Sort プロパティ
object.CursorLocation = adUseClient
object.Sort = “FieldName [ {ASC | DESC} ]”
引数・戻り値
- object ・・・ 対象となる Recordset オブジェクトを指定します。
- FieldName ・・・ 列名(フィールド名)を指定します。
- ASC,DESC ・・・ 昇順に並べ替えるには ASC、降順に並べ替えるには DESC を指定します。省略すると昇順に並べ替えられます。
Sort プロパティを使用するには、CursorLocation プロパティに adUseClient を設定する必要があります。
Sort プロパティに空文字列を設定すると、行は元の順序にリセットされ、一時インデックスは削除されます。既存のインデックスは削除されません。
複数列をソートする場合、,(カンマ)で区切って指定します。
例:Recordset「rs」に、[firstCol]、[middleCol]、[lastCol] という 3 つのフィールドがあるとする
rs.Sort = “lastCol DESC, firstCol ASC”
を設定した場合、Recordset は、まず「lastCol」を降順ににソートし、次に「firstCol」を昇順にソートします。このとき「middleCol」は無視します。
CursorLocation プロパティ
object.CursorLocation = CursorLocationEnum
引数・戻り値
- object ・・・ 対象となる Recordset オブジェクトを指定します。
- CursorLocationEnum ・・・ カーソルタイプの場所を表す CursorLocationEnum クラス の定数またはその値を指定します。Sort プロパティ を使用する場合は、必ず adUseClient を設定します。
定数 | 値 | 内容 |
adUseNone | 1 | カーソルサービスを使いません。 |
adUseServer | 2 | サーバー側カーソル(既定値) |
adUseClient | 3 | クライアント側カーソル |
Sort プロパティ 使用例
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
Sub Sample_Sort() '参照設定:Microsoft ActiveX Data Objects 6.1 Library Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Dim constr As String Dim DBFile As String Dim i As Long Dim j As Long DBFile = ActiveWorkbook.Path & "\mydb1.accdb" constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & DBFile Set cn = New ADODB.Connection cn.ConnectionString = constr cn.Open Set rs = New ADODB.Recordset With rs .Source = "テーブル3" .ActiveConnection = cn .CursorLocation = adUseClient .Sort = "仕入先C desc, 年度 asc, 月度 asc" .Filter = "年度 = 2009 AND 仕入先C > 1300 AND 仕入先C < 1600" .Open End With With Worksheets("Sheet1") rs.MoveFirst i = 1 .Cells.Clear Do Until rs.EOF For j = 0 To rs.Fields.Count - 1 If i = 1 Then .Cells(i, j + 1) = rs(j).Name .Cells(i + 1, j + 1) = rs(j).Value Next j rs.MoveNext i = i + 1 Loop .Columns("A:H").AutoFit End With rs.Close Set rs = Nothing cn.Close Set cn = Nothing End Sub |
実行結果
関連記事
-
Excelファイルに接続(ADO)
ADOでExcelファイルに接続 ADO を使用してExcelファイルを読み込み …
-
データベース(SQL Server)に接続する(ADO)
データベース(SQL Server)に接続 ODBC または OLE DB で接 …
-
カレントレコードの移動(ADO)MoveFirst、MoveLast、MoveNext、MovePrevious、Move
MoveFirst メソッド、MoveLast メソッド、MoveNext メソ …
-
データベース(Oracle)に接続する(OLE DB を使用)
OLE DB プロバイダ OLE DBには、Oracle 提供の Oracle …
-
レコードを指定した条件で抽出する(ADO)Filter プロパティ
データベースのレコードを指定した条件で抽出する Filter プロパティ 【書式 …
-
フィールド名(ADO)Field オブジェクト
Field オブジェクト Recordset オブジェクト内の列(フィールド)を …
-
データベースを作成する(ADOX)
ADOX を使用してデータベース(Access)を作成 Catalog オブジェ …
-
データベース(Oracle)に接続する(oo4o)
oo4o 接続 OO4O(Oracle Objects for OLE)はWin …
-
レコードの追加(ADO)AddNew メソッド,Update メソッド
データベースにレコードを追加する AddNew メソッド 新規レコードを追加し、 …
-
トランザクション(ADO)BeginTrans、CommitTrans、RollbackTrans
ADO でのトランザクション処理 【書式】 Sub Sample_Transac …