#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'sWareのワンポイトテクニカルアドバイスをご利用ください。3000円/件〜でご支援します。
スタンドアロンからSQL Server対応まで、オーダーメイドのシステムを短納期・安価でお届けします


Copyright © T'sWare All rights reserved