#639 再クエリやフィルタ実行でチラつきが気になるときの対処法 フォーム、VBA

画面にデータシートで多くのレコードが表示されているときや多くのコントロールが配置されているような場合、フォームを再クエリしたときやフィルタを実行したとき、あるいは条件付き書式を使っているようなときなど、それらの多くのオブジェクトが再描画されたり再計算されたりするため、ディスプレイ上画面がチラつくように見えることがあります。

そのような症状に対しては、『Echoメソッド』を使います。このメソッドは画面を再描画するかどうかを設定するもので、引数がTrueで再描画され、Falseにすると再描画されません。

たとえば次のように使います。

Echo False

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
(ここで再描画を元なう一連の処理)
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

Echo True


いったんFalseに設定するとTrueに設定変更しない限りすべての描画が停止状態になります。一連の処理が完了したかどうか分からなかったり変更後のデータ内容に画面が変わらないだけでなく、あたかもAccessがフリーズしてしまったかのようになってしまいます。したがって、最後に必ず「Echo True」のコードを実行させるようにしてください。

また途中の処理で何らかの実行時エラーが発生する可能性もあります。そのような流れの場合でも「Echo True」が実行されるよう、エラートラップしてエラールーチンでそれを実行させる(もしくはエラーを無視して最後まで続行させる)ようにしてください。

なお、もしデバッグ作業において、EchoをFalseとしたあとに処理の途中でプログラムを一時停止させ、そのまま終了させてしまったような場合には、イミディエイトウィンドウから「Echo True」の1行を実行することで元に戻すことができます。
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved