レポートのタイトルを動的に指定する方法

◆概要
レポートのタイトルやサブタイトルをユーザーが入力した文字列やリストボックスで選択した値に設定したいときがあります。この資料では、OpenReportメソッドの引数openargesを利用して、レポートのタイトルを動的に指定する方法を説明します。

◆OpenReportメソッドのopenargs引数

OpenReportメソッドのopenargs引数を利用すると、レポートに文字列を渡すことができます。渡した値は開いたレポートのOpenArgsプロパティに代入され、プログラムの中で自由に使うことができます。


次の例は、レポートに出力する内容によって、レポートのサブタイトルを変更します。

◆レポートを開くプログラム

フォームに2つのボタンを配置し、それぞれ次のプロシージャーを割り当ててください。


1.cmd東京支店_Clickプロシージャ

レポートのサブタイトルを東京支店にします。

レポートに渡す引数は「東京支店」です。「クリック時/OnClick」プロパティに作成してください。

Private Sub cmd東京支店_Click()
       DoCmd.OpenReport "rpt売上実績", acViewPreview, , _
       , , _
       "東京支店"
    
End Sub

2.cmd福岡支店_Clickプロシージャ レポートのサブタイトルを福岡支店にします。 レポートに渡す引数は「福岡支店」です。「クリック時/OnClick」プロパティに作成してください。

Private Sub cmd福岡支店_Click()
    DoCmd.OpenReport "rpt売上実績", acViewPreview, , _
       , , _
       "福岡支店"
End Sub

◆レポート側に設定するプログラム

「rpt売上実績]のレポートの[開く時/OnOpen]プロパティに、次のイベントプロシージャを作成してください。

Private Sub Report_Open(Cancel As Integer)
    ' 引数が渡されたとき
   If OpenArgs <> "" Then  'レポートのOpenArgsプロパティに値が空でなければ
       Me!lblSubTitle.Caption = OpenArgs
   ' 引数がないとき
   Else
       Me!lblSubTitle.Caption = "全支店"
   End If
End Sub

 OpenReportメソッドのopenargs引数の値は、開いたレポートのOpenArgsプロパティに代入されます。この値が空のときは、openargs引数が設定されていません。


なお、Access97ではOpenReportメソッドのopenargs引数を利用できないので、public変数を利用します。



▼ページトップに戻る