Frage

So ein paar dummen Fragen:

Wenn ich schließe dies in einem Ereignisse:

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

kann ich dann mit etwas mehr Code umdrehen und ‚klicken Sie auf die Schaltfläche OK. So dass im Grunde die Nachricht boox erscheint automatisch, und dann geht automatisch weg?

Ich weiß, ihr albern, weil Sie wissen wollen, warum wollen Sie das Meldungsfeld dann .....

gut a) Ich möchte nur wissen, ob Sie das tun können, und was wäre der Befehl

b) Ich habe einige Grundformen (Form-Objekte), die sichtbar gemacht werden, wenn das Meldungsfeld angezeigt. Aber ohne dass das Meldungsfeld mit, gibt es keine vorübergehende Unterbrechung des Codes während für die Schaltfläche wartet angeklickt werden, und dafür die hübschen Bildobjekte sichtbar gemacht wird, nimmt Einfluss auf der Form.

Also habe ich wirklich nicht brauchen das Meldungsfeld, nur die temporäre Störung, dass zeigt die Objekte.

Danke!

War es hilfreich?

Lösung

Ein MsgBox ist Modal. Es gibt nur zwei Modality zugehörige Einstellungen

  • ApplicationModal
  • SYSTEMMODAL

Wenn also die Msgbox wird von Ihrer aktuellen Anwendung taucht, wird kein Code ausgeführt, bis Sie eine Taste auf dem Feld Meldung klicken.

Der Weg, dies zu umgehen, ist Ihre eigene Nachrichtenbox zu entwerfen ein Formular. Sie können diese Pop-up und halten es auf und dann können Sie „Klick“ eine beliebige Taste Sie es wollen.

Wenn Sie eine Verzögerung möchten, können Sie die Win-API verwenden Schlaf

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

Private Sub ApiSleep(SleepMilliseconds as Long)
    Sleep SleepMilliseconds 
End Sub

Andere Tipps

Ich weiß, das war ein gefragt Vor einiger Zeit, aber die Lösung, die ich verwende, ist dies:

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

Wie das funktioniert, ist ein Meldungsfeld nur als normales angezeigt würde aber es hat seine eigenen System-Timer, was bedeutet, können Sie die automatische schließen Sie das Meldungsfeld, ohne selbst etwas zu tun.

Die Zahl 1 bedeutet, wie viele Sekunden es angezeigt werden soll, bevor sie automatisch geschlossen wird.

Ich benutze dies für Sparverfahren als eine nützliche Benachrichtigung, dass etwas gespeichert hat, aber erfordert nicht die Benutzer tatsächlich auf „OK“ klicken.

Wie auch immer, das ist mein zwei Cent wert eine Antwort. Hoffe, das hilft jemand anderes auch!

Sendkeys "~",false

Sollte die msgbox entlassen (vorausgesetzt, es hat Fokus)

Ich glaube, du bist für die Farbe Ereignisse suchen, oder eine Form Refresh zwingen, obwohl zu erreichen, was Sie eigentlich tun wollen!

Edit: Ah verdammt, ja, weil es der Code modal ist ausgesetzt ... d'oh! Wie vorgeschlagen, entweder schreiben Sie Ihre eigene, oder würden Sie etwas in einem anderen Thread werfen müssen, um es zu tun, und ich habe keine Ahnung, wie Multi-Threading in MS Access zu tun!

Second Edit: Haben Sie sich Application.Echo False zu suspendieren und Application.Echo True Malerei Layout wieder aufnehmen?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top