#330 レポート単体で開くときにもパラメータを入力させる方法 レポート

実際のデータベースアプリケーションでは、フォーム上でその範囲や条件を指定してレポートを開くことが多いですが、ここでは、レポートをデータベースウィンドウから直接開く場合にも同様の印刷範囲のパラメータ入力用のフォームを必ず表示させるという方法について説明します。


  1. まず、レポートおよびパラメータ入力用のフォームを作成します。ここではレポート名を"rpt受注"、フォーム名を"fdlg受注印刷"とします。また、印刷範囲のパラメータを指定するテキストボックスとして"txt得意先コード"を配置するものとします。
    レポートのデザイン
    フォームのデザイン

  2. 続いて、レポートのレコードソースとなるクエリを加工し、fdlg受注印刷フォームの「txt得意先コード」テキストボックスコントロールをWhere条件として参照するようにします。
    レコードソースのクエリ

  3. パラメータ入力用のフォームで[OK]ボタンがクリックされたときのイベントプロシージャを次のようにします。ここではフォームの内容をクエリが参照するため、フォームを閉じるのではなく、非表示の状態にします(実際に閉じるのはレポートモジュール側で行います)。

    Private Sub cmdOK_Click()
    '[OK]ボタンクリック時

      'このフォームを非表示にする
      Me.Visible = False

    End Sub


  4. 最後に次のようなイベントプロシージャをレポートモジュールに記述します。

    Private Sub Report_Open(Cancel As Integer)
    'レポートを開くとき

      'パラメータ入力ダイアログを開く
      DoCmd.OpenForm "fdlg受注印刷", , , , , acDialog

    End Sub

    Private Sub Report_Close()
    'レポートを閉じるとき

      'パラメータ入力ダイアログを閉じる
      DoCmd.Close acForm, "fdlg受注印刷"

    End Sub


実行例:
  1. データベースウィンドウからレポートを開くと......
    データベースウィンドウからレポートを開くとこのダイアログが表示される

  2. そしてそのフォームで[OK]ボタンを押すと......
    レポートが表示される
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved