ACCESS レポートにパラメータを渡す方法
ACCESSでレポートを開く場合は、フォームにボタンを設置してそこから開くことが一般的です。
この際、フォーム側に保持しているパラメータの値をレポートに引数的に渡すことが可能です。
今回はレポートにパラメータを渡す方法をご紹介ます。
こんにちは。
はこにわガジェット (@hakoniwagadget) です。
ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは基本機能だけでも十分便利ですが、VBAを使うことで格段に使いやすいデータベースを作成可能です。
この記事ではACCESSでのVBAの使い方をご紹介していきます。
レポートにパラメータを渡す、とは
レポートにパラメータを渡す、とは、レポートを開く際にレポート側で利用したい値を変数に格納しておくことです。
例えば、レポートの並べ替え条件を渡りたり、レポートに表示する値をフォームから渡したり、といったケースが該当します。
レポートを単純に開くだけでなく、直前に操作していたフォームの状態によって、動的に変化する値をレポートに反映する場合に有効です。
OpenArgsでパラメータを渡す
ACCESSでVBAからレポートを開くときは、DoCmd.OpenReportメソッドを使用します。
今回ご説明するレポートにパラメータを渡すのも、このDoCmd.OpenReportメソッドで行います。
DoCmd.OpenReportメソッドの構文は以下の通りです。
DoCmd.OpenReport レポート名 , ビュー , フィルター名 , 抽出条件 , ウィンドウモード , OpenArgs
この最後の引数であるOpenArgsが、レポートに渡すことができるパラメータです。
OpenArgsに値を格納することで、レポート側でも値を利用することが可能です。
なお、DoCmd.OpenReportについて詳しく知りたい方は以下の記事をご覧ください。
レポート側で受け取ったパラメータを使う
一方、レポート側で受け取ったパラメータを利用する時には以下の記述で利用できます。
Me.OpenArgs
レポートの「開く時」イベント等でVBAを利用して処理を作成し、そこで上記の記述を行えばDoCmd.OpenReportで受け取ったOpenArgsの値を利用可能です。
レポートへパラメータを渡す具体例
最後に、レポートへパラメータを渡す処理の具体例をご紹介します。
以下の記事は、フォームの並べ替え結果をを引き継いで、レポートを並べ替えする処理をご紹介しています。
フォームの並べ替え設定である、Me.OrderByをDoCmd.OpenReport時にOpenArgsに格納し、一方でレポートを開く際にレポートのMe.OrderByにOpenArgsの値を入れることで実現しています。
以上、レポートにパラメータを渡す方法をご紹介しました。
ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。
そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。
ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。
最後までお読みいただき、ありがとうございました。