改訂版テーブル定義書の作成(4)

5.レポートの作成

5.1 テーブル一覧表

「T_DB」と「T_TB」から配置しますが、「レポートウィザード」を利用すると、両テーブルは連結フィールドを持っていないので、先に進むことができません。
「レポートデザイン」から作成すると、ページフッターの作成日やページも自前で設定しなければならないので面倒です。
そこで、「レポートウィザード」で「T_TB」のみを指定してから、後で「T_DB」を追加しています。

「T_TB」に「T_DB」の「DB_ID」を連結キーとして持たせれば同時に指定することは
できますが、その場合は他のテーブル(「T_FLD」、「T_IX」、「T_IXFLD)にも
「DB_ID」をキーに持たせるようにしてください。

①「レコードソース」の「…」をクリックしてビルダーを開きます。
②ビルダーの空白の領域で右クリックすると、テーブル一覧が表示されますので、
  「T_DB」を追加します。
③「T_DB」から「*」すべてのフィールドを選択。
  「DB_ID」の抽出条件は1です。
④「T_TB」から「*」すべてのフィールドを選択。
  並び順は、「TB_TableID」の昇順です。
⑤ビルダーを閉じて、メニューの「既存のフィールドの追加」をクリックして下さい。
  選択された全フィールドが表示されますので、ドラッグ&ドロップで配置します。
  すでに、ページヘッダーには「T_TB」のラベル、
    詳細には「T_TB」のテキストボックスが配置されていますが、
  枠を拡張して「T_TB」のすべてのラベルをページヘッダーの最下方に移動させます。
⑥空けた領域には「T_DB」のラベルとテキストボックスを追加します。
  サンプルでは「T_DB」のラベルとテキストボックスは1行に並べています。
⑦印刷結果のレポートは動かせるように「ポップアップ」を「はい」にします。
「開くとき」に最大化し、「閉じる時」に元に戻すイベント処理をVBAで作成します。

<VBAのイベント処理>
'------------------------
Private Sub Report_Open(Cancel As Integer)
DoCmd.Maximize              '開くときに最大化する
End Sub
'-------------------------
Private Sub Report_Close()
DoCmd.Restore               '閉じる時に元に戻す
End Sub

⑧レポート名を「テーブル一覧表」として閉じます。
  「テーブル一覧表」は、フォームの印刷マクロで選択するレポート名です

5.2 テーブルレイアウト

※ 少しわかりにくいので、段階的に説明します。

5.2.1「レポートウィザード」で「T_FLD」を選択する

①「レポートウィザード」で「T_FLD」を選択します。
②グループレベルで「FLD_TableID」を選択します。
  「FLD_Tableヘッダー」が追加され、上記のようなレポートが作成されます。
  (「FLD_Tableフッター」は「並び替え/グループ化の設定」から追加できます。)
③「レポートヘッダー」のラベルの標題を変更します。
  ここでは「テーブルレイアウト」としました。
④「FLD_TableIDヘッダー」の領域を拡張してください。
 次のステップで、テーブル情報を追加サブレポート「T_IXsub」を挿入します。
「ページヘッダー」に配置されている「T_FLD」のすべてのラベルを「FLD_TableIDヘッダー」の最下方へ移動させます。「T_FLD」の見出しです。

5.2.2 ビルダーを開いて「T_DB」「T_TB」を追加する

①レコードソースの「…」をクリックしてビルダーを開き、
  「T_DB」と「T_TB」を追加します。
②「T_DB」「T_TB」「T_FLD」は、すべて全フィールド「*」を選択します。
③「DB_ID」の抽出条件は1です。
④「T_TB」は「TB_TableID」の昇順、「T_FLD」は「FLD_FieldID」の昇順です。
⑤「ページヘッダー」には「T_DB」のラベルとテキストボックスを配置します。
⑥「FLD_TableIDヘッダー」に「T_TB」のラベルとテキストボックスを配置します。
 サブレポート「T_IXsub」の挿入は、まずレポートを作成してからの作業になります。
 この段階ではまだ空白のままです。
⑦印刷結果のレポートを動かせるよう、「ポップアップ」を「はい」にします。
⑧「開くとき」に最大化し、「閉じる時」に元に戻すイベントをVBAで作成します。
⑨レポート名は、「テーブルレイアウト」としました。
 「テーブルレイアウト」は、フォームの印刷マクロで選択するレポート名です

5.2.4 サブレポート「T_IXsub」を作成する

①「レポートウィザード」で「T_IX」を選択します、
②グループラベルで、「IX_TableID」と「IX_IndexID」を指定します。
③上記のようなレポートが作成されますが、「レポートヘッダー」、「ページヘッダー」、「IX_TableIDヘッダー」、「ページフッター」、「レポートフッター」は不要なので項目を削除して領域幅を縮小します。
④「IX_IndexIDヘッダー」に「T_IX」のラベルとテキストボックスを移動します。
⑤詳細領域には、更にインデックスの構成フィールドの情報を印字するサブレポート「T_IXFLDsub」を挿入しますので領域はそのまま空けておきます。
⑥サブレポートなので、「ポップアップ」は「いいえ」です。
 「開いたとき」も「閉じたとき」もイベント処理は不要です。

5.2.5 サブレポート「T_IXFLDsub」を作成する

サブレポート「T_IXsub」の詳細領域にインデックスの構成フィールドの内容を印字するためのサブレポートです。

①「レポートウィザード」で「T_IXFLD」を選択します、
②グループラベルで、「IXFLD_TableID」と「IXFLD_IndexID」を指定します。
③詳細領域に「T_IXFLD」のラベルとテキストボックスを編集します。
④すべてのヘッダー、フッターは不要です。詳細領域のみを残してください。
⑤サブレポートなので、「ポップアップ」は「いいえ」です。
 「開いたとき」も「閉じたとき」もイベント処理は不要です。
⑥レポート名は「T_IXFLDsub」としました。

5.2.6 サブレポート「T_IXsub」にサブレポート「T_IXFLDsub」を挿入する

①レポート「T_IXsub」をデザインビューで開きます。
②メニューから「サブフォーム/サブレポート」をクリックします。
③詳細領域でクリックして、サブレポートの挿入する位置を指定します。
④レポートウィザードが起動がしますので、レポート「T_IXFLDsub」を選択します。
⑤親レポートと子レポートのリンクフィールドの確認画面が出ます。
  そのままでOKです。

⑥サブレポート「T_IXsub」にサブレポート「T_IXFLDsub」が挿入されます。
 プロパティには、親レポートと子レポートのリンクフィールドが登録されます。

5.2.7 親レポート「テーブルレイアウト」にサブレポート「T_IXsub」を挿入する

5.2.6の「T_IXFLDsub」の挿入手順と同様に
①レポート「テーブルレイアウ」をデザインビューで開きます。
②レポートウィザードを起動して、レポートから「T_IXsub」を選択します。
③親レポートのプロパティには、リンクフィールドが登録されます。
                  

テーブルレイアウトの作成手順は以上です。
ラベルの標題やボックスの大きさなど、見やすいように編集してください。

5.3 デザインの編集ツール・その他

(1)コンテンツの移動

ドラッグ&ドロップすると、ラベルとテキストが同時に作成されます。別々に移動させたい場合は、左上の■をクリックしたまま移動して下さい。但し、領域を超えて移動させることはできません。
領域を超える場合は、コピー&ペーストです。

(2)一括指定

ラベルやテキストなどのコントロールは、ルーラーをクリックするか、マウスで囲んでから、「サイズ/間隔」や「配置」を利用すると一括でそろえることができます。

(3)その他

①ちょっとしたコツですが、直線はシフトキーを押しながら引くと真直ぐに引けます
②見出し行の下に、直線を引くとデザインが引き締まります。
③ラベルとテキストボックスを並列に並べる場合は、それぞれを四角で囲むと見やすいです。
④レポートヘッダーに配置したコントロールは、レポートの1頁目のみに印字されます。
 レポート名などすべてのページに印字したい場合は、ページヘッダーに配置します。
⑤A4 の場合のサイズは21X29.7ですが、ここから余白を引いた分が印字できるサイズです。
⑥コントロールの移動は、上下左右の矢印を使用するとドット単位で移動できます。
  シフトキーを押しながら操作すると幅を変更することができます。
⑦印刷内容がボックスの幅より長くなった場合は、途中で切れてしまいます。
  「印刷時拡張」を「はい」にすると、2行に分けて印字してくれます。
   最初から2行分の枠をとっておくと、「いいえ」でも2行に分けて印字してくれます。

6.Accessオプションの設定

最後に、Accessのオプションを設定します。
①「現在のデータベース」の 「フォームの定義」を「TBL定義書の作成」にします。
  起動時に表示されるフォームです。
②「閉じる時に最適化」のチェックを入れます。

サブレポート(フォーム)は、便利な機能だと思います。参考になれば幸いです。
改訂版テーブル定義書の作成は以上です。最後まで御覧くださりありがとうございました。