2012-01-17 10 views
1

私はAccess 2003とVBAで何かしています。私は多くの繰り返しを行い、時には何かが起こり、MsgBoxではなくテキストフィールド内でユーザーを停止して通知したいと考えています。Access 2003でビジー待機を避ける

したがって、メッセージを出力し、グローバルな「ホールド」ブール値をチェックするループを使用します。 DoEventsを使用すると、WindowsはKeyDownをチェックし、KeyDownが存在する場合、holdがFalseに設定され、反復が続行されます。

しかし、「忙しい待っている」という例ではないので、良い方法があると思われますか?ブーリアンチェックではありませんが、私のコンピュータが音を鳴らすほど忙しく、全体的な印象は堅牢ではありません。

ただ待って(何もしない)、キーダウン割り込みを続行する方法はありますか?

+0

これは可能ですが、メッセージボックスが破損しているためにポップアップメッセージボックスを表示したくありません。たとえば、10回または15回のようにCを押す( "continue iteration"の場合)と想像してみてください。私は良い方法があると確信しています。 –

+0

@EmanuelBergあなたの解決策は良いようですが、一定のブールチェックが意味を理解していることを理解しています。残念ながら、これはおそらくキーダウンイベントを常に待って確認する最良の方法です。 –

+0

情報を表示している場合ユーザーに「キーダウン割り込み」を待つ場合、Enterキーを押してMsgBoxを受け入れられない状態にするのはなぜですか? – mischab1

答えて

1

msgboxを使用する必要はありません。独自のフォームにテキストボックスと適切なコードを定義することができます。このフォームをacDialogのパラメータで開くと、msgboxと同じコードが停止します。

+0

私はMsgBoxを使用していません。それは事です:もし私がいたら、停止は暗黙のうちだろう、そうですか?あなたは自分のMsgBoxを作っているように聞こえます。私はMsgBoxが必要な場合、なぜ私は組み込みのMsgBoxを使用しないのですか? (あるいは多分私はあなたを誤解していましたか?)私は、ログ出力をテキストフィールドにダンプすることは非常にうれしく、時には実行を中止して入力を待つことが時々あります。グローバル変数と "busy wait"ループはこれを実現しますが、私が言ったように私はその解決策に満足していません。 –

関連する問題