Microsoft Access 掲示板

Formatイベントに関する質問 / 1

7 コメント
views
4 フォロー
1

その教材はみたことないのでコードからの推測です。

*上のコードは、まずグループヘッダーのFormatイベントで、PrintSectionプロパティにFalseを設定しています。これにより印刷時にはグループヘッダーが印刷されなくなります。

プレビュー時でも印刷時でもグループヘッダーは出力されませんね。
何のためにしているのかはわかりません。グループヘッダーの「可視」プロパティを「いいえ」にしても同じことのような気がします。

①ページヘッダーセクション_Formatイベントで、詳細セクションに配置された[改ページ]コントロールのVisibleプロパティをFalseにする理由は何ですか?

詳細セクションの[改ページ]コントロールがTrueだとレコード毎(1行毎)に改ページされてしまうからです。

②また、[カウント]テキストボックスの値を0にする理由は何ですか?
③さらに、詳細セクションに配置されている[改ページ]コントロールの設定を、ページヘッダーセクション_Formatに記述する理由は何ですか?
④同様に、グループヘッダーに配置されている[カウント]テキストボックスの設定を、ページヘッダーセクション_Formatに記述する理由は何ですか?

これらのコードでやっていることは、10レコード(10行)毎に改ページするということだと推測します。
(教材に目的が書いてありますよね。)

下記の点を理解することが必要ですね。

ページヘッダーセクションのフォーマット時イベントはページが出力される一番最初に1回発生してヘッダーを出力する。
詳細セクションのフォーマット時イベントはレコード毎に発生して1行分出力する。

つまり、
最初にページヘッダーのフォーマット時イベントが発生してヘッダーが出力される。
そのときに、改ページを非表示にして1行毎に改ページしないようにする。
「カウント」テキストボックスは現在1ページ内で何行目かを取得するものなのでまずは初期化しておくす。

詳細セクションのフォーマット時で「カウント」の数値にプラス1をする。これによって現在、1ページ内で何行目を出力するのが分かる。
その数値が10なら10行目ということなので、改ページを表示させることで改ページして次のページに移動する。
ということです。

⑤に関してはその理解であってます。

レポートのイベントの発生メカニズムはかなり複雑です。
下記がその理解を深めるのに役立つと思いますので一度目を通しておくことをお勧めします。

レポートのイベントの発生メカニズムの研究 - hatena chips

レポートのイベントの発生メカニズムの研究 その2 - hatena chips

通報 ...