ACCESS VBA Sortで並べ替えする方法

Sortで並べ替えする方法

ACCESSのVBAではレコードセットの並べ方にSortプロパティを使用します。

今回は、Sortで並べ替えする方法をご紹介します。


こんにちは。
はこにわガジェット (@hakoniwagadget) です。

ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは基本機能だけでも十分便利ですが、VBAを使うことで格段に使いやすいデータベースを作成可能です。
この記事ではACCESSでのVBAの使い方をご紹介していきます。

Sortプロパティ

Sortプロパティは、ACCESS VBAのADOでレコードセットを並べ替えするためのものです。

以下の構文で利用します。

レコードセット名.Sort = “並べ替えするフィールド名1 , 並べ替えするフィールド名2 , …”

並べ替えするフィールド名を右辺に指定することで、そのフィールドで並べ替えができます。
右辺はテキスト型になるよう、”(ダブルクォーテーション)で囲むことを忘れないでください。

また、複数のフィールドを指定することも可能です。
その場合は、並べ方の優先度が高いフィールドから順に、カンマで区切って記述していきます。

なお、ADOについて詳しく知りたい方は以下の記事をご覧ください。

ADOを使ったレコード操作

昇順・降順の指定

並べ替えの際は、昇順・降順の指定が可能です。
昇順の場合はフィールド名の後にASC、降順の場合はDESCと記述します。

例えば、顧客IDの昇順で並べ替えする際は


 rst1.Sort = "顧客ID ASC"
 

と記述し、降順の場合には

 
 rst1.Sort = "顧客ID DESC"
 

と記述します。

省略した場合は昇順がデフォルトで適用されます。

Sortの利用例

それでは実際のSortの利用例を示します。


'変数を定義
Dim cnn As ADODB.Connection
Dim rst1 As ADODB.Recordset

Dim kokyaku_id As Long

'変数にADOオブジェクトを代入
Set cnn = CurrentProject.Connection
Set rst1 = New ADODB.Recordset
rst1.CursorLocation = adUseClient

'レコードセットを取得
rst1.Open "test_売上", cnn, adOpenKeyset, adLockOptimistic

rst1.Sort = "顧客ID"
 

一番最後の行で


 rst1.Sort = "顧客ID"
 

でレコードセットrst1を並べ替えしています。

ADOではループ処理によってレコードを操作することが多いですので、その際に自分の意図したレコード順で操作できるように並べ替えを活用しましょう。

以上、Sortで並べ替えする方法をご紹介しました。


ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。

そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。

ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

サービス一覧

最後までお読みいただき、ありがとうございました。