Microsoft Access Club >VBAのTips解説 >このページ >次頁 < 前項  サイト内検索
 

DAOとSQLを用いてレコードを並び替える方法 : VBAのTips解説



ORDER BY句

ORDER BY句とは、指定したフィールド内のレコードを昇順、降順で並び替えするSQL構文です。昇順の場合はASC、降順の場合はDESCを指定します。ORDER BY句内で複数のフィールドに対して並び替えを指定した場合は、先に記述されたフィールドから並び替えが実施されます。なお、指定しない場合は、ASCが既定値になります。

  • 書式
〜 ORDER BY fieldname1 [ASC、DESC],fieldname2 [ASC、DESC],…
  • 引数
引数 意味 指定

fieldname

フィールド名を指定します。昇順の場合は続けてASCと記述します。降順の場合はDESCです。

省略不可

  • 並べ替えの指定
設定値 意味
ASC 昇順で並べ替えます
DESC 降順で並べ替えます

関連項目

  1. CurrentDb(DAO)
  2. Deleteメソッド(DAO)

事例 ) DAOを用いて、テーブルを元にクエリーを作成しグループ化する

DAOを用いて、「社員別売上管理」テーブルを元にクエリーを作成しグループ化します。

  1. 社員名, 売上額フィールドを持つ社員別売上管理テーブルを作成します。
  2. 連結フォームを作成します。
  3. 実行するコマンドボタンを作成します。
  4. 昇順、降順を切り替えるオプショングループを作成します。

コマンドボタンクリック時イベントプロシージャの作成

コマンドボタンクリック時イベントプロシージャを以下のように作成します。

Private Sub 実行_Click()

   On Error GoTo エラー

   Dim db As DAO.Database
   Dim qdf As DAO.QueryDef
   Dim myCK As String
   Dim mySQL As String
   Dim strName As String

   Set db = CurrentDb
   myCK = Switch(Me.選択 = 1, "ASC", Me.選択 = 2, "DESC") '--- A
   strName = "Q_社員別売上管理"
   mySQL = "SELECT ID, 社員名, 売上額 FROM 社員別売上管理 "
   mySQL = mySQL & "ORDER BY 売上額 " & myCK & ";"
   Set qdf = db.CreateQueryDef(strName, mySQL)
   DoCmd.OpenQuery qdf.Name '--- B

   db.Close: Set db = Nothing

   Exit Sub

エラー:

   If Err.Number = 3012 Then
     db.QueryDefs.Delete strName
     Resume
   Else
     MsgBox Err.Number & " : " & Err.Description
   End If

End Sub
解説
  1. 昇順、降順の並び替えを切り替えます。既定値は降順です。
  2. クエリーを実行します。

動作確認

  1. フォームをビューモードで開きます。
  2. オプショングループで、降順を選択し[実行]ボタンをクリックします。

  1. クエリが開き、売上額フィールドのレコードが降順で表示されます。

ページの先頭へ 前ページへ戻る

 


DAOとSQLを用いてレコードを並び替える方法 : VBAのTips解説


 

-Microsoft Access Club-

動画配信(ダウンロード、ストリーミング)対応の専用レンタルサーバー。データセンター設置場所はアメリカ合衆国です。: 動画サーバードットコム
動画配信(ダウンロード、ストリーミング)対応の専用レンタルサーバー。
データセンター設置場所はアメリカ合衆国です。
100Mbps〜1Gbpsまで対応できます。