前回はメインレポートの作成方法を紹介しました。今回は、購買品目を出力するためのサブレポートについて紹介していきます。この際の考え方は、フォームの作成でサブフォームを導入した方法と同様になります。
また、サブレポートの作成方法は前回とほとんど同じなので、似たような操作は簡単な説明にとどめたいと思います。
サブレポートの作成
レポートの作成は前回紹介したとおりなので、ここでは詳細説明は割愛します。作成されるレポート名称は「レポート2」(以下、サブレポートと呼びます。)となります。
サブレポートはメインレポートに入れ込むように設計します。これを見越してレポートフォーマットの設定をします。
まずは、作成したレポートの各セクション高さを調整していきましょう。図1に示すように、ページヘッターと詳細セクションの高さを調整し、ページフッターは非表示にします。
ここでのポイントとして、サブレポートの詳細セクションはレコードが複数ある場合は繰り返し表示されるため、あまり広げないようにすることです(図2参照)。
続いて、サブレポート向けのデータ出力をするためにクエリビルダーを開きます。
クエリビルダーでは、テーブルの追加画面が開きますので、T_購買伝票内訳テーブルとT_商品マスタテーブルを選択して追加します。
次に、T_購買伝票内訳テーブルの「購買品目」フィールドとT_商品マスタテーブルの「商品ID」フィールドをリレーション設定します。
最後に、T_購買伝票内訳テーブルの「管理番号」、「購買数量」と T_商品マスタテーブルの「品目」、「単価」フィールドを 【フィールド】項目に設定し、さらに【フィールド】項目の最後の列に「小計: [購買数量]*[単価]」と入力します。
以上で、クエリビルダーでの設定はできましたので、デザインタブの「閉じる」アイコンをクリックします。
「SQLステートメントの変更を保存し、プロパティの設定を更新しますか?」とメッセージボックスが表示されるので、「はい」をクリックします。
サブレポートのデザインビュー画面に戻りますので、レコードソースプロパティを確認します。カーソルを合わせて「Shift + F2」キーでズーム画面を表示すると、図4に示すようにSQL文が設定されていることが分かります。
次に、サブレポート上にデータを出力するためのテキストボックスを配置します。メインレポートの作成方法と同様にテキストボックスを配置することもできますが、今回は別の方法でテキストボックスを配置していきたいと思います。
まず、デザインタブのテキストボックスコントロールをクリックします。これにより、マウスアイコンが変わります。続いて、詳細セクション上で左クリックをしながら範囲を指定することでラベルとテキストボックスが配置されます。
サブレポートの詳細セクションは、レコードが複数ある場合に繰り返し表示されますので、詳細セクションにラベルがあると視認性が悪くなります。そこで、ラベルはページヘッダーセクションに、テキスボックスは詳細セクションに、それぞれ配置します。しかしながら、今配置されているラベルとテキストボックスはリンクがかかっており、セクションを分けて配置することができません。(実際に、テキストボックスだけを動かしてみてください。ラベルも一緒にくっついてくると思います。)
そこで、いったんラベルだけ削除して、別途ページヘッダーセクションにラベルを配置する必要があります。
元々あるラベルを選択し、Delキーを押下して削除します。続いてラベルコントロールをページヘッダーセクションに配置すると、キーボード入力状態に切り替わりますので、「品目」と入力します。
次に、残ったテキストボックスが何のデータを出力するためのものかを設定していきます。
現状、テキストボックス内には「非連結」と表示されていると思いますが、これはフィールドとの連結がされていないことを意味しています。そこで、このテキストボックスには先にクエリビルダーで設定した「品目」フィールドのデータが表示されるようにします。
対象となるテキストボックスを選択し、プロパティシートを開きます。名前プロパティは「テキスト0」となっていますが、これが「品目」を表示するためのテキストボックスであることが分かるように、「t_品目」と名付けます。(オブジェクト名称は、誰もが理解しやすい名称をつけることを推奨します。)次に、コントロールソースプロパティには、「品目」と入力し、これにより「品目」フィールドと連結したことになります。
同様の方法で、残りのフィールドである「購買数量」、「小計」のテキストボックスとラベルを追加しましょう。
図8に、各テキストボックスとラベルを配置したサブレポートの完成イメージを示します。各オブジェクトを配置した後、セクションの高さを調整しています。これでサブレポートの作成は完了しましたので、保存をした後にメインレポートに入れ込みましょう。
メインレポートへのサブレポート入れ込み方法
まずは、メインレポートをデザインビューで開きます。
そして、レポートデザインツールのデザインタブ中「サブフォーム/サブレポート」コントロールをクリックします。マウスアイコンが変わるので、詳細セクション上にサブレポートを設定する範囲を指定します。この際に、レポートデザインツール中デザインタブで設定できる「コントロールウィザードの使用」はチェックされていないことを確認してください。
サブレポートの範囲を設定した後、埋め込みオブジェクトとそのラベルが配置されますが、ラベルは不要のため、削除します。
この段階では、メインレポートとサブレポートとのリンクがかかっていません。そこで、埋め込んだオブジェクトがサブレポートである「レポート2」を参照するように設定します。
埋め込みオブジェクトを左クリックして選択状態にし、プロパティシートを開きます。
埋め込みオブジェクトの名前プロパティを「サブレポート」と、ソースオブジェクトプロパティに「レポート.レポート2」と、 リンク親フィールドとリンク子フィールドプロパティに「管理番号」と入力します。
※ リンク親: メインレポート、リンク子: サブレポート であり、それぞれを「管理番号」フィールドでリレーション設定することで、必要なデータだけを出力できるようにしています。
これで、埋め込みオブジェクトの設定を完了できました。したがって、メインレポートとサブレポートが連結された状態になったわけです。
印刷プレビューでの確認
さて、これまででレポートの基本的な設定が完了しましたので、実際の印刷イメージを確認するためにプレビュー画面を開きましょう。(画面右上の「表示」アイコンをクリックして印刷プレビューを開いてください。)
サブレポート内のレコードはメインレポートの情報に連結した状態で出力されているはずです。
また、画面下の「▶」ボタンをクリックすることでメインレポート側のレコードが移動します。
いかがでしょうか、上手くレポートが表示されましたか?このようにしてレポートを作成することでデータ入力画面とは別の形式で出力をすることができます。一度ひな形を作成してしまえば、同様の帳票を作成する手間が省けて業務効率の改善が期待できます。
まとめ
これまで14回にわたって、Accessファイルの作成方法を紹介してきました。データの入れ物である「テーブル」 、データを抽出するための 「クエリ」、データを入力するための「フォーム」、データを出力するための「レポート」と、いずれも簡単なものではありますが、実際のものを作成することで、Accessファイルの作成方法をご理解いただけたのではないかと思います。これらの関係性をまとめたものを図12に示します。
Accessファイルは完成までに、それなりの時間と手間を要しますが、一度作成すればその後のデータ入力・出力作業は飛躍的に向上します。Excelでは手間のかかるデータ操作ができる点は、Accessの大きな利点です。
これで「購買伝票」Accessファイルの作成については終了しますが、今後もAccessファイルを作成するための要点を紹介していきますので、引き続きご愛顧のほど宜しくお願いいたします。
スポンサーリンク
コメント