Microsoft Access 掲示板

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

7 コメント
views
4 フォロー
3
かつん 2020/07/17 (金) 08:06:35 cd896@cf1e7

hatenaさん
解説ありがとうございます。解説を基に色々コードをいじって確認してみました。

整理しますと自分の疑問点は結局以下に集約されます。
①[改ページ]コントロールのVisibleプロパティをFalseにする理由
②[改ページ]コントロールに関する設定を、ページヘッダーセクションに記述する理由
③[カウント]テキストボックスの値を0にする理由
④[カウント]テキストボックスの設定を、ページヘッダーセクションに記述する理由

①をTrueに設定してみました。確かにレコード毎に改行されてしまいました。だからFalseに設定する。ただ、この記述自体、Me.改ページ.Visible = Falseを無くしてしまっても問題無く動作します(10行毎にちゃんと改行される)。にも関わらず、わざわざ書く理由は可読性を考慮しているからなのですかね?
②に関しては、詳細セクションに記述してもきちんと動作しました。ただ、

詳細セクションのフォーマット時イベントはレコード毎に発生して1行分出力する。

との事ですから、レコードの数だけVisible = Falseを設定することになり、明らかに冗長な処理となることから、ページ毎に1回だけイベントが発生するページヘッダーセクションに記述するのが合理的という解釈で良いのですかね?
③に関しては、Me.カウント.Value = 0をコメントアウトすると、改行がされませんでした。イミディエイトウィンドウで値を確認してみるとNull値が入ってしまいカウントアップが働いていませんでした。なので初期化は必須ということが分かりました。ただ、この手の変数の設定は初期化を省略した場合、自動的に0が設定されて問題無く動くような気がしたのですが、この認識自体間違いですかね?例えば、以下のコードだと0が返ります。

Sub Test()
    Dim i As Long
    MsgBox i
End Sub

④は、詳細セクションに記述してしまうとレコード毎に毎回最初に0がセットされてしまい、カウントが1以上から先に進まないことが確認できました。故にページヘッダーセクションに記述する必要があると理解出来ました。

以上より、①~③はまだ少しモヤモヤしています。ご回答いただけると幸いです。

hirotonさん
丁寧に解説ありがとうございました。

通報 ...