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

グループ化して両面印刷するときに、グループ毎に分けて出力したい

グループ化してグループ毎に改ページするレポートで両面印刷するとき、別グループが用紙の表と裏に出力される場合があります。これはちょっと具合が悪いですね。

グループの最終ページが奇数のとき、裏面を白紙で出力するようにできれば、グループ毎に用紙を分けることができます。

下記のサンプルを改良して、上記のことを実現する方法を紹介します。

グループ毎に Page/Pages 形式のページ数を表示する - hatena chips

リンク無し画像

難易度:

概要

グループフッターセクションの「改ページ」プロパティは「カレントセクションの後」にします。これでグループ毎に改ページされます。

さらに、グループフッターセクションに改ページコントロールを配置します。改ページコントロールは最下部に配置せずに下に少し余白を持たせます。

これにより、グループの最後に空白のページが追加されます。ただし、最終ページが偶数ページのときは、VBAで改ページコントロールの可視を「いいえ」にして空白を挿入しないようにします。

これで、グループ最終ページが奇数のときだけ空白ページが挿入されます。ただ、空白ページにもページヘッダー、ページフッターが表示されますので、これを表示しないようにするコードを追加します。

Page/Pages を表示するロジックについては、上記のリンク先を参照してください。

ページフッターに Page/Pages を表示する場合

サンプルファイルの「R_商品」

ページフッターに Page/Pages表示用のテキストボックス「txtGrpPages」を配置する。

レポートのモジュールを下記のように設定します。

なお、グループヘッダーに印刷時拡張「はい」のテキストボックスが配置してあり、グループヘッダーが2ページにわたることがある場合は、ページ数がおかしくなるので、グループヘッダーのフォーマット時を下記のように変更してください。

Me.Page Mod 2 = 1 の式で奇数のときTrue、偶数のときFalseになります。
これを、
Me.改ページ1.Visible = (Me.Page Mod 2 = 1)
と改ページのVisibleに代入することで、奇数ページのときだけ改ページされます。

ページヘッダーに Page/Pages を表示する場合

サンプルファイルの「R_商品1」

ページヘッダーに Page/Pages表示用のテキストボックス「txtGrpPages」を配置する。

あとは上記と同じに。

サンプルファイルが下記からダウンロードできます。
RptPagePagesDuplex_07.zip (Access 2007-2010 形式 - 51kb)
RptPagePagesDuplex.zip (Access 2002-2003 形式 - 47kb)
RptPagePagesDuplex_2k.zip (Access 2000 形式 - 47kb)

拍手する

Leave a reply






Trackbacks

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