MS Access Tips/Sample and VBA and Blog customize etc...

印刷プレビューに[印刷][閉じる]ボタンを付加するOpenReport互換関数

前回の記事
レポートの印刷プレビューウィンドウにボタンを配置する - hatena chips
では、実験的に印刷プレビューウィンドウにコマンドボタンを配置してみました。

あくまで、どのように実装するのがいいのか、検証するためのものだったので、レポート名は定数で固定でした。複数のレポートがあり、すべて同じボタン付き仕様にしたい場合は、使いやすいものではありませんでした。

そこで、もし少し実用的な DoCmd.OpenReportメソッドと同じ仕様の汎用関数を作成しました。

タイトル

難易度:

概要・仕様

前回の記事で、ボタンを配置したフォームを、親ウィンドウとする方法と子ウィンドウにする方法を検証しましたが、汎用関数にする場合、レポートが親ウィンドウの方が通常のレポートと同様に扱えるので、使いやすいと思われたので、子ウィンドウ方法で行くことにしました。
汎用関数の引数は、DoCmd.OpenReport とまったく同じにしました。また、Function にすることで、コマンドボタンの「クリック時」プロパティに直接 =OpenReport("レポート名") と記述するだけで動作させることも可能にしました。

関数名は、あえて、OpenReport にしました。コード中の DoCmd.OpenReport を OpenReoprt に置換するだけで簡単にボタン付プレビューに変換できます。

モジュール名は、Z にしました。

使用法

【構文】

Z.OpenReport(ReportName, View, FilterName, WhereCondition, WindowMode, OpenArgs)

Z. は省略可。
引数は、DoCmd.OpenReport と同じなので、ヘルプか下記ページで確認してください。

DoCmd.OpenReportメソッド(Access)

【使用例】

Where条件を指定して、最大化で開く場合

標準モジュール名を Z にしてあるので、VBE で Z. と入力するとリスト(インテリセンス)が出て選択できるので入力が楽できます。
VBEインテリセンス表示

また、Function にしてあるのでプロパティの「クリック時」欄等に直接、

=OpenReport("レポート名",2)

と設定することもできます。第2引数は、プレビューのときは 2、印刷のときは 0 または省略してください。
プロパティのイベント欄に設定例

導入法

このページ下部のリンクから、お使いのAccessバージョンにあったサンプルファイルをダウンロードします。
Zipファイルになってますので、適当なフォルダーにコピーして開いて正常に動作することを確認してください。

この関数を利用したデータペースファイルに上記のサンプルファイルから下記のオプジェクトをインポートしてください。

フォーム F_PreViewChildMenu
標準モジュール Z

あるいはVBEでサンプルファイルを参照設定しても利用することができます。

コード

標準モジュール Z

フォームモジュール フォーム名 F_PreViewChildMenu

2015/03/05追記:Access2003以前でコマンドボタンで閉じるときエラーが出てAccessが強制終了する不具合があったのでコードを修正しました。サンプルを入れ替えましたので再ダウンロードしてください。

サンプルファイルが下記からダウンロードできます。
RptPreViewMenuFunc_07.zip (Access 2007-2013 形式 - 39kb)
RptPreViewMenuFunc.zip (Access 2002-2003 形式 - 34kb)
RptPreViewMenuFunc_2k.zip (Access 2000 形式 - 33kb)

拍手する

Leave a reply






Trackbacks

trackback URL
http://hatenachips.blog34.fc2.com/tb.php/398-f3fb929e
該当の記事は見つかりませんでした。