ACCESS フォームに印刷ボタンを作成する方法

フォームに印刷ボタンを作成する方法

ACCESSではフォームで入力した内容を、レポートに出力する機能をよく作成します。
その際に利用するのが、フォームの印刷ボタンです。

印刷ボタンを押すことで、フォームで表示しているレコードのレポートを印刷する機能をVBAで作成することが可能です。

今回は、フォームに印刷ボタンを作成する方法をご紹介します。


こんにちは。
はこにわガジェット (@hakoniwagadget) です。

ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSで実際に作成したフォームやレポートを、その作成方法と共にご紹介していきます。

印刷ボタンの完成形

最初に、フォームに配置した印刷ボタンの完成形を見てみましょう。
以下は、売上伝票の入力フォームです。

下段に「領収書」ボタンを配置しています。
このボタンを押すと、現在表示しているレコードの内容をレポートで出力します。

このように、フォームで表示しているレコードの入力内容を、対応するレポートに出力する機能は非常に有用でACCESSではよく利用されます。
今回は、こちらの機能の作り方を見ていきましょう。

フォームの準備

まずはフォームを準備します。
フォームはデザインビューで作成しましょう。

フォームデザイン

先ほどのフォームをデザインビューで見ると以下のようになっています。

様々なオブジェクトが配置されており複雑に見えますが、今回のように表示されたレコードをレポートで印刷したい場合に注意するポイントは一つです。
それは、フォームのビューを「単票フォーム」で作成することです。

フォーム全体のプロパティシートを見てみましょう。

書式タブの既定のビューが「単票フォーム」になっていれば大丈夫です。

単票フォームとは、フォームの1画面にレコードソースの1レコードを表示する形式のフォームです。
一方、フォーム1画面で複数のレコードを表示する一覧表のような形式は「帳票フォーム」となります。

今回は、表示されたレコードをレポートに表示するために単票フォームを指定しているのです。

レポートの準備

次にレポートを準備します。
同様にレポートデザインで作成します。

レポートデザイン

デザインビューでは以下のようになっています。

こちらで注意する点は、フォームのキー値(今回の場合は売上ID)をレポート側にも持たせておくことです。
こうすることでフォームで指定したレコードと同じレコードをレポート側でも指定することが可能になります。

印刷ボタンの機能をVBAで作成する

では、フォーム側に印刷ボタンを作成しましょう。
フォームをデザインビューで開き、ボタンを設置します。

上段のメニューの「フォームデザイン」タブの中にボタンのアイコンがあるので、こちらからボタンが作成できます。
ボタンを作成した後は、名前を正しく修正しておきましょう。
今回は領収書_ボタンとしています。

さらに、ボタンを選択した状態でプロパティシートの「イベント」タブからクリック時にイベントプロシージャを設定します。
クリック時の行の一番右の「…」ボタンを押した後、ビルダーの選択で「コードビルダー」を選択しましょう。

すると、Visual Basic Editor(VBE)が起動します。
この画面でVBAのプログラミングを実施します。

今回は、以下のようにイベントプロシージャを設定しました。

DoCmd.OpenReportを利用して、レポートを表示する処理を作成しています。
DoCmd.OpenReportは以下の構文で利用します。

今回の場合は、1つ目の引数であるレポート名に「領収書」と指定して、領収書レポートを開いています。
2つ目の引数のビューは「acViewPreview」で、これは印刷プレビューで開くという指定です。

そして難しいのが4つ目の引数の抽出条件です。
今回は、

と指定しました。
これは、左辺の売上IDは開くレポート、つまり「領収書レポート」の売上IDを示しています。
一方で右辺のMe!売上IDは領収書ボタンが配置されたフォーム「売上伝票入力フォーム」の売上IDを指しています。

そのため、領収書レポートを開く際に、その売上IDは、売上伝票入力フォームで現在表示している売上IDと同じものを表示しなさい、と指示しているわけです。
この記述方法は非常によく利用しますので覚えておきましょう。

これで領収書ボタンからレポートを印刷するためのイベントプロシージャの作成が完了です。

DoCmd.OpenReportについてはこちらの記事で詳しく紹介していますので、興味がある方はご覧ください。

OpenReportでレポートを開く方法

以上、フォームに印刷ボタンを作成する方法をご紹介しました。


ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。

そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。

ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

サービス一覧

最後までお読みいただき、ありがとうございました。