AccessのVBAでSQLのSELECT ORDER BYを使い、複数フィールドで並べ替えレコードを抽出する|フォーム実行例

複数のフィールドで並べ替えは、半角のコンマ(,)で並べ替えしたい順に指定する

SELECT フィールド名 FROM テーブル名 ORDER BY 並べ替えフィールド名1 , 並べ替えフィールド名2 , ・・・
複数のフィールドで並べ替えるには、半角のコンマ(,)で並べ替えしたい順に指定します。

例: SQL = "SELECT 製品No FROM 製品マスター ORDER BY 製品名,製品コード,単価 "
この場合、「製品名」次に「製品コード」次に「単価」の順で製品Noを取り出します。



BackHome BackSQL Tips

サンプルソフト
[実行時の画面]
「ORDER BY 打席 安打」ボタンをクリックすると、野球データベーステーブルから、打数の次に安打で並び替えレコードを表示します。

■打数と安打で並び替え抽出した画面
  2行目と3行目は同じ打数ですが、次に安打で並べ替えられているのが分かります。
打席と安打

[野球データベース テーブル]
選手ID 打数  安打
10    130   30
11    150   25
13    130   20
16    100   45
選手別打席と安打

[コード]
Option Compare Database

Private Sub コマンド8_Click()
    Dim SQL As String
    Dim rs As Recordset
    Me!テキスト1 = Null
    SQL = "SELECT 選手ID,打数,安打 FROM 野球データベース ORDER BY 打数,安打"
    Set rs = CurrentDb.OpenRecordset(SQL)
    Do Until rs.EOF
        Me!テキスト1 = Me!テキスト1 & rs![選手ID] & ": " & rs![打数] & ": " & rs![安打] & vbCrLf
        rs.MoveNext
    Loop
    Set rs = Nothing
End Sub

サンプルソフトのダウンロード

BackHome BackSQL Tips

Copyright(C) FeedSoft