Access使い集合! Ver2.0

このエントリーをはてなブックマークに追加
440デフォルトの名無しさん
長文質問失礼します。

使用環境 Access2000 + ADO(今回は関係ないかも) + Win2000

レポートにおいて、ページフッターとレポートフッターの表示(Visibleプロパティ)を
切り替える処理をしています。各ページにはページフッターでページの単価の合計を
印刷、最後のページだけはページフッターを非表示にして、レポートフッターのみを
表示し、全体の合計を印刷する処理です。

レポートのデザイン上、詳細セクションの大きさは常に一定になっています。
下から4分の1ほどの大きさにページフッター、もしくはレポートフッターが印刷され
るような形です。

ここから質問なんですが、ページフッターセクションのVisibleプロパティを
フォーマット時イベントで切り替えてもプレビューに反映されません。

そのセクションのフォーマットイベントでは自セクション自体の可視プロパティは
有効にならないんでしょうか?

もう一つ、不思議な挙動があるのですが、プレビューが呼ばれる前にフォーマット時
イベントが数回呼ばれるようですが、これはなぜなんでしょうか。このときにpagesプロパティ
などを取得しようにも、0が代入されていたりとよく分かりません。

以上、どなたかよろしくご教授ください。
441440:03/03/26 14:08
>>440
で質問させていただいたものですが、一応ソースを載せますと

If Me.page < Me.Pages Then
Me.Section("ページフッターセクション").Visible = True
Else
Me.Section("ページフッターセクション").Visible = False
End If

上記のような単純な処理なのですが・・・

宜しくお願いします。
>>441
ページフッターセクションのフォーマット時イベントプロシージャの先頭に

  If Page = Pages Then
    Cancel = True
    Exit Sub
  End If

を追加すれば、最終ページでページフッターセクションが実行されない。
443440:03/03/26 19:54
>>442さんありがとうございます。
確かにかかれていたコードでページフッターの処理は飛ばせました。
が、更なる問題が発生しました。

状況としては最終ページがレポートフッターのみ印刷される状態になっています。

原因は、プレビューを実行したときに一ページ目が表示される前に
フォーマットイベントが起き、憶測ですが一通りのページがフォーマット
され、全ページ数が決定されるようですが、この時点では"Pages"プロパティ
に値が入っていないため"Page=Pages"の評価が正しく行われません。
よって、本来は最終ページにはページフッターじゃなくレポートフッターのみ
印刷されるところが、両方印刷されてしまい、結果的にレポートフッターが
入りきらず最終ページに印刷されてしまいます。

もう一度だけヒントだけでもいただければと思うのですが。