1

だからいくつかのばかげた質問:

これを何らかのイベントに含めると:

MsgBox " ", vbOkOnly, "This little message box"

次に、さらにコードを使用して、「OK」ボタンをクリックしてください。つまり、基本的にメッセージ ボックスが自動的にポップアップし、その後自動的に消えますか?

なぜメッセージボックスが必要なのか知りたいので、ばかげていることを知っています.....

a) それができるかどうか、コマンドは何になるか知りたいだけです

b) メッセージ ボックスが表示されたときに表示されるいくつかの基本的な形状 (形状オブジェクト) があります。しかし、そこにメッセージ ボックスがなければ、ボタンがクリックされるのを待っている間にコードが一時的に中断されることはありません。したがって、可視化されたきれいな画像オブジェクトはフォーム上で有効になります。

したがって、オブジェクトを表示する一時的な中断だけで、メッセージ ボックスは必要ありません。

ありがとう!

4

3 に答える 3

5

AMsgBoxはモーダルです。モダリティ関連の設定は2つだけです

  • ApplicationModal
  • SystemModal

したがって、現在のアプリケーションによってMsgboxがポップアップ表示された場合、メッセージボックスのボタンをクリックするまでコードは実行されません。

これを回避する方法は、フォームを使用して独自のメッセージボックスを設計することです。これをポップアップしてオンのままにしてから、任意のボタンを「クリック」することができます。

遅延が必要な場合は、WinAPIを使用してスリープできます

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub ApiSleep(SleepMilliseconds as Long)
    Sleep SleepMilliseconds 
End Sub
于 2010-03-19T17:26:45.640 に答える
1

これは少し前に尋ねられたことは知っていますが、私が使用する解決策は次のとおりです。

CreateObject("WScript.Shell").PopUp "Save Successful!", 1, "Save"

これがどのように機能するかというと、メッセージ ボックスは通常のメッセージ ボックスと同じように表示されますが、独自のシステム タイマーがあるため、何もしなくてもメッセージ ボックスを自動的に閉じることができます。

数値 1 は、自動的に閉じる前に表示する秒数を示します。

何かが保存されたという便利な通知としてこれを保存手順に使用しますが、ユーザーが実際に「OK」をクリックする必要はありません。

とにかく、それは私の 2 ペニー相当の答えです。これが他の誰かにも役立つことを願っています!

于 2013-04-11T09:21:46.923 に答える
-1
Sendkeys "~",false

msgboxを閉じる必要があります(フォーカスがあると仮定して)

ペイントイベントを探しているか、実際にやりたいことを達成するためにフォームを強制的に更新していると思います。

編集:ああ、ええ、それはモーダルなので、コードは中断されています... d'oh!提案されているように、独自に作成するか、別のスレッドに何かをスローして実行する必要があります。MSAccessでマルチスレッドを実行する方法がわかりません。

2番目の編集:ペイントレイアウトApplication.Echo Falseを一時停止しApplication.Echo Trueて再開することを検討しましたか?

于 2010-03-19T17:29:09.330 に答える