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

レコードがない場合も用紙の最後まで罫線を出力する NextRecord版

レポートでの罫線固定の方法は、当ブログでは既に、レコードがない場合も用紙の最後まで罫線を出力するレコードがない場合も用紙の最後まで罫線を出力する関数、の2つの方法を紹介しています。が、あえて、もう一つ、NextRecordプロパティを利用する方法を紹介します。

MSのサポート技術情報のレコードがない場合も用紙の最後まで罫線を出力する方法もNextRecordプロパティを利用してますがかなり長大なコードを書く必要があります。それよりシンプルなコードで実現できます。

Accessでは、ひとつの仕様を実現するのにいろいろなアプローチがありますが、それを知っておくことで状況に応じて適切な方法を選択できるし、応用の幅も広がります。

ページ最後まで罫線表示

難易度:

デザインビューでの設定

ヘッダー項目でグループ化して、グループヘッダーとグループフッターを表示させます。例えば、納品伝票テーブルと納品明細テーブルをリンクさせたクエリをレコードソースとした場合、納品伝票の主キー(伝票番号)でグループ化します。

グループ化するフィールドがない場合は、=1 というような固定値の式を設定してグループ化します。

グループヘッダーに、ヘッダー項目を配置します。さらに下記のテキストボックスを配置します。
これでグループ全体の行数を取得します。

名前  GCnt
コントロールソース  =Count(*)
可視 いいえ 

詳細セクションに、詳細項目、罫線等を配置して、さらに下記のテキストボックスを配置します。
これでグループ内で何行目かを取得します。

名前  Cnt
コントロールソース  =1
集計実行  グループ全体
可視 いいえ 

詳細セクションの罫線(直線コントロール)をコピーして、グループフッターに貼り付けます。

イベントプロシージャ

各セクションのイベントプロシージャを下記のように記述します。

サンプルファイルが下記からダウンロードできます。
RptFixRowNextRecord_07.zip (Access 2007-2010 形式 - 71kb)
RptFixRowNextRecord.zip (Access 2002-2003 形式 - 62kb)
RptFixRowNextRecord_2k.zip (Access 2000 形式 - 60kb)

拍手する

2 Comments

渡辺 says..."レコードがない場合も用紙の最後まで罫線を出力する NextRecord版"

この「レコードがない場合も用紙の最後まで罫線を出力する」
とても参考になったのでお礼のコメントを書きます。

最初、このホームページだけを見てやってみましたがうまく行かず数十分・・・・・。

サンプルMDB がダウンロードできるので
その中のレポートをインポートして、
またまた四苦八苦しましたが、
やっと目的のレポートが完成した時は、
とてもうれしかったです。


そのサンプルファイルにあるBVAの
Me.グループフッター1.ForceNewPage = 2 'カレントセクションの後で改ページ

「Me.グループフッター1.ForceNewPage = 0 '改ページしない」
に変更しただけで思い道理のものができました。
この完成まで二時間くらいだったでしょうか
でも、
このホームページを見なければ完成できるものでもなかったと今でも思っています。

ここは、
たくさんの完成されたサンプルファイルが無料でダウンロードできるのでうれしく、感謝しています。

今回、
このコメントの投稿が初めてです。

最後ですが、
ありがとうございます。






2011.01.26 21:48 | URL | #- [edit]
muuuuuw says..."質問させてください"

初めて投稿します。
win7でACCESS2010です。上記VBAを参考にさせていただこうと思います。
いろいろ探してるのですが、どのかたのも、みなサブフォーム組み込みのレポートではなかったり、サブフォームであっても、2枚目は、罫線が引けないものでした。
サブフォーム組み込みで、2枚目になる場合でも、罫線を最後まで引くことは、可能でしょうか?
当方、まだ初心者に毛が生えたぐらいのれべるですが、かなりハードルが、たかいものでしょうか?

2015.02.07 20:21 | URL | #JnNhHBMA [edit]

Leave a reply






Trackbacks

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