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

レポートでセクション高の最大値以上の出力

1レコード当たりの項目数、データ量が非常に多くて、例えば、A4用紙3ページ分必要という場合、仕様により高さに制限がありますので、詳細セクションに項目をすべて配置できません。

このような場合、この制限を乗り越える方法を紹介します。

ヘルプより

Accessの仕様
 フォームおよびレポート
  属性        最大値 
  セクションの高さ  22 in. (55.87 cm) 

RptMaxHeightOver.png

難易度:

セクションの高さ制限を超えるには

レコードソースのテーブルのフィールド構成は、主キー ID, F1, F2, F3 ・・・・とします。

レポートのメニューより[表示]-[並べ替え/グループ化の設定]で、ID(主キーフィールド)でグループ化して、グループヘッダー と グループフッターを「はい」にします。

デザインビューで各セクションの高さを1ページ分の高さにして、コントロールを配置します。各セクションの「改ページ」プロパティを「カレントセクションの後」に設定します。

RptMaxHeightOverD.png

これで最大55.87cm×3 までの高さに対応できます。

もし、これでも高さが不足する場合は、[並べ替え/グループ化の設定]で、ID のグループを どんどん追加していけばいいですね。

Access2003の[並べ替え/グループ化の設定]ダイアログ [並べ替え/グループ化の設定]

Access2016の[グループ化、並べ替え、集計] [並べ替え/グループ化の設定]

ヘルプのAccessの仕様より
レポート内のヘッダーおよびフッターの数
 レポート ヘッダー/フッター 1、ページ ヘッダー/フッター 1、グループ ヘッダー/フッター 10

グループ ヘッダー/フッター 各10、さらにレポートヘッダー/フッター が各1 と 詳細 も使えますので、 最大55.87cm×23 まで対応できます。これだけあればまず不足することはないでしょう。(^_^;)

複数レイアウトを条件により切り替える

2016.11.04追記

条件により複数のレイアウトを切り替えたいという質問がとある掲示板でありました。現状は詳細セクションに複数のレイアウト用のコントロール群を重ねて配置して、フォーマット時にVBAで可視を切り替えているが、メンテナンス性が著しく悪いので、なんとかならないか、という質問です。

上記のセクションを増やす方法を使えば簡単にできますね。

必用なレウアウトのパターンの数だけグループヘッダ/フッターのセクションを上記の方法で増やします。一つのセクションに一つパターンを配置します。

それぞれのセクションのフォーマット時のイベントプロシージャでそのセクションを出力するかどうかVBAで制御します。例えば[レイアウトパターン]フィールドにパターンNo.が入っているとして、

フォーマット時のCancel引数に True を代入するとそのセクションは出力されません。なにもしなければ出力されます。

拍手する

Leave a reply






Trackbacks

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