Microsoft Access Club >Access裏技Tips >このページ >次頁 < 前項 サイト内検索


3通りの異なる請求IDを1つのレポートで印刷する : Access裏技Tips



請求書を発行する際、取引先によっては異なる表記を求められることがあります。 ここでは、3種類の異なる請求IDをレコードソースを切り替えることによって1つのレポートで対応する技を紹介します。

異なる請求IDを1つのレポートで印刷する

  1. サンプルテーブル(tbl_sample)をもとにして、「請求明細リスト」の 帳票レポート(rpt_sample)を作成します。
  2. なお、レポートの作成に制約はありませんので全ての帳票レポートに対応します。
  3. フォーム(frm_sample)を作成します。
  4. オプショングループ(OptionGroupName)を作成し、オプションボタンを3個配置します。
  5. このオプショングループでレポートのレコードソースを選択します。
  6. コマンドボタン(Cmdコマンド)を配置し、レポートを印刷します。

「請求明細リスト」の レポートを作成

  1. 「請求明細リスト」の レポートを作成します。
  2. サンプルデータを元に、請求明細リストを作成します。

レポートを開く時イベントプロシージャ

レポートを開く時イベントプロシージャを作成します。

Private Sub Report_Open(Cancel As Integer)

    DoCmd.SetWarnings False ' --- A

End Sub
解説
  1. SetWarningsメソッドの引数にFalseを設定して、システムメッセージをオフにします。

レポートを閉じる時イベントプロシージャ

レポートを閉じる時イベントプロシージャを作成します。

Private Sub Report_Close()
    
    DoCmd.SetWarnings True ' --- A

End Sub
解説
  1. SetWarningsメソッドの引数にTrueを設定して、システムメッセージをオンに戻します。
今回のおすすめポイント

システムメッセージ

Accessでは、デザインビューで変更を加えた場合、その変更を保存するか否かをメッセージボックスを立ち上げユーザーに確認します。
この時、ユーザーが作成者であれば問題ないですが、単なるユーザーである場合、このメッセージを非表示にした方がより親切な設計となります。
よつて、SetWarningsメソッドの引数をFalseとしてプロシージャ内に記述します。
しかし、このままでは大事なメッセージも非表示のままになるので、ころあいを見計らってTrueに戻しておきます。

「住所録内の氏名抽出」の フォームを作成

  1. 「レコードソース選択」の フォームを作成します。
  2. 非連結フォームを作成します。
  3. 詳細セクションにオプショングループを作成し、オプションボタン3個を配置します。
  4. 詳細セクションに印刷を実行するコマンドボタンを作成します。

オプショングループの更新後処理イベントプロシージャ

オプショングループの更新後処理イベントプロシージャを作成します。

Private Sub OptionGroupName_AfterUpdate()

    Dim OGSelect As OptionGroup
    Dim MyReport As Report
        
    DoCmd.OpenReport "rpt_sample", acViewDesign ' --- A
    DoCmd.SelectObject acReport, "rpt_sample", False ' --- B
    DoCmd.Minimize
    
    Set OGSelect = Me.OptionGroupName
    Set MyReport = Reports!rpt_sample
            
    Select Case OGSelect ' --- C
        Case 1
           MyReport.RecordSource = "qry_sample1"
        Case 2
           MyReport.RecordSource = "qry_sample2"
        Case 3
           MyReport.RecordSource = "qry_sample3"
    End Select
        
End Sub
解説
  1. レポート事前にデザインビューで開く必要があります。
  2. 最小化するために、SelectObjectメソッドを用いて開いたレポートを特定します。
  3. Select Caseステートメントを用いて、オプショングループから渡された値(1〜3)を受け取り、Case節で処理を分岐します。
    例えば、1の値がオプショングループから渡されれば、Select Caseステートメントは qry_sample1 を返します。
今回のおすすめポイント

デザインビューで開く

レコードソースを変更する場合は、一旦レポートをデザインビューで開く必要があります。 サンプルでは、開いた瞬間に最小化処理を行っていますが、スムーズな動作ではありません。
なお、よりスマートに見せるためにフォームを最大化するなどの方法があります。

コマンドボタンクリック時イベントプロシージャの作成

コマンドボタンクリック時イベントプロシージャを作成します。

Private Sub Cmdコマンド_Click()

    DoCmd.OpenReport "rpt_sample", acViewPreview ' --- A
    
End Sub
解説
  1. サンプルでは、印刷プレビューモードで開いています。印刷する場合は、acViewPreview を acNormal に書き換えて下さい。

動作確認

  1. フォームを開きます。オプショングループの第二ボタンをクリックします。
  2. 開いたレポートが最小化されます。

  1. コマンドボタンをクリックしも、印刷プレビューでレポートを開きます。

今回のおすすめポイント

オプション設定でメッセージのオン/オフ

Accessのシステムオプションとして、メニューバーのツールからオプション設定が可能です。 このオプション類のなかに"編集/検索"の項目があります。

  1. レコードの変更
  2. オブジェクトの削除
  3. アクション クエリ

の3項目に限り、オン/オフを切り替えることができます。

関連ページ

ページの先頭へ 前ページへ戻る

 


3通りの異なる請求IDを1つのレポートで印刷する : Access裏技Tips


 

-Microsoft Access Club-

cPanel と PLESKをインストールした専用・共有レンタルサーバーを銀行振込でご提供中。契約書は一切不要です。
cPanel や PLESKをインストールした専用・共有レンタルサーバー
まずは1ヶ月から...。
日本国内の銀行振込がOK、契約書は不要です。