#093 フォームを強制的に再描画する方法 フォーム、VBA

描画が不完全なフォーム「ただいま処理中です!」のようなメッセージを表示するフォームを開いて直ちにその処理に入ってしまうと、その処理の方だけにWindowsが占有されてしまうため、処理中メッセージのフォームが不完全な、外枠だけの表示になってしまいます。

そのような問題を回避するには、次のような方法があります。

1.DoEventsを使う方法
DoEvents を使って、フォームを開いた後にいったん制御をWindowsに渡して、フォームを描画させる時間を与えます。

DoCmd.OpenForm "frm処理中メッセージ"
DoEvents
'*******************************
'ここでさまざまな処理をします
'*******************************

2.RepaintObjectメソッドを使う方法
DoCmdのRepaintObjectメソッドを使って、文字通り、オブジェクトを強制的に再描画します。
DoCmd.OpenForm "frm処理中メッセージ"
DoCmd.RepaintObject acForm, "frm処理中メッセージ"
'*******************************
'ここでさまざまな処理をします
'*******************************
| Index | Prev | Next |



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