ACCESS VBAでレポートの並べ替えをする方法
ACCESSのレポートで複数のレコードを表示する場合、並び順が重要だったりします。
レポートの並び順は、VBAで制御が可能です。
今回は、VBAでレポートの並べ替えをする方法をご紹介します。
こんにちは。
はこにわガジェット (@hakoniwagadget) です。
ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは基本機能だけでも十分便利ですが、VBAを使うことで格段に使いやすいデータベースを作成可能です。
この記事ではACCESSでのVBAの使い方をご紹介していきます。
レポートの並べ替え方法
ACCESSでレポートの並べ替えを行う場合は、OrderByを利用します。
OrderByの基本的な構文は以下の通りです。
レポート名.OrderBy = “並べ替え条件”
例えば、現在開いているフォームを売上日の昇順で並べ替えをする場合は以下にように記述します。
Me.OrderBy = "売上日 ASC"
右辺にある”売上日 ASC”が並べ替え条件の設定です。
売上日のフィールドをASC(昇順)で並べ替えるように指示しています。
逆に降順の場合はDESCと記載します。
並べ替え条件は”(ダブルクォーテーション)で囲ってテキスト型にする必要がある点にご注意ください。
左辺のMeは現在開いているオブジェクト、この場合はレポートを指しています。
Meキーワードについて詳しくは以下の記事をご覧ください。
VBAを使ってレポートを並べ替える方法
では、OrderByを使って実際にレポートを並べ替えてみましょう。
今回準備したレポートは下記の、売上情報を一覧表示するレポートです。
この時点では順番がバラバラなので、売上日順に並べてみます。
対象のレポートをデザインビューで開きます。
レポート全体を選択し、プロパティシートの「イベント」タブから「読み込み時」イベントにイベントプロシージャを設定します。
Visual Basic Editorで設定するコードは以下の通りです。
Private Sub Report_Load()
Me.OrderBy = "売上日"
Me.OrderByOn = True
End Sub
OrderBYを使って売上日で並べ替えるように設定しています。
OrderByOnは並べ替えを有効するにコマンドで、Trueに設定することで並べ替えを実行しています。
では、レポートを印刷プレビューで表示して結果を見てみましょう。
このように、売上日順で並べ替えることができました。
VBAでの並べ替えがうまくいかない原因
基本的に上記の方法でレポートのVBAでの並べ替えは可能です。
しかし、VBAで設定している通りの並べ替えができないというケースもあります。
こうした場合はレポート側で並べ替え設定がされていないかを確認してください。
上記の赤枠のように、レポート側で並べ替え設定が行われていると、VBAでの並べ替えよりも優先されてしまいます。
VBAで並べ替えを行いたい場合は、レポート側の並べ替え設定は解除しておきましょう。
詳しくは以下の記事をご覧ください。
以上、VBAでレポートの並べ替えをする方法をご紹介しました。
ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。
そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。
ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。
最後までお読みいただき、ありがとうございました。