ACCESS VBA Sortで並べ替えする方法
ACCESSのVBAではレコードセットの並べ方にSortプロパティを使用します。
今回は、Sortで並べ替えする方法をご紹介します。
こんにちは。
はこにわガジェット (@hakoniwagadget) です。
ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは基本機能だけでも十分便利ですが、VBAを使うことで格段に使いやすいデータベースを作成可能です。
この記事ではACCESSでのVBAの使い方をご紹介していきます。
Sortプロパティ
Sortプロパティは、ACCESS VBAのADOでレコードセットを並べ替えするためのものです。
以下の構文で利用します。
レコードセット名.Sort = “並べ替えするフィールド名1 , 並べ替えするフィールド名2 , …”
並べ替えするフィールド名を右辺に指定することで、そのフィールドで並べ替えができます。
右辺はテキスト型になるよう、”(ダブルクォーテーション)で囲むことを忘れないでください。
また、複数のフィールドを指定することも可能です。
その場合は、並べ方の優先度が高いフィールドから順に、カンマで区切って記述していきます。
なお、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の操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。
最後までお読みいただき、ありがとうございました。