Domanda

Quindi un paio di domande stupide:

Se includo questo in qualche evento:

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

potrei poi con un po 'di codice di girarsi e 'fare clic sul pulsante OK. Così che in fondo il messaggio Boox appare automaticamente, e poi va automaticamente via?

So che la sua stupida perché si vuole sapere, perché vuoi la finestra di messaggio, allora .....

bene a) voglio solo sapere se si può fare questo, e quale sarebbe il comando

b) ho alcune forme di base (oggetti di forma) che sono fatti visibili quando viene visualizzata la finestra di messaggio. Ma senza avere la finestra di messaggio c'è, non c'è alcuna interruzione temporanea del codice durante l'attesa per il pulsante per essere cliccato, e per questo gli oggetti di immagine piuttosto essere reso visibile non ha effetto il modulo.

Così ho davvero non ho bisogno la finestra di messaggio, solo l'interruzione temporanea che mostra gli oggetti.

Grazie!

È stato utile?

Soluzione

Un MsgBox è modale. Ci sono solo due impostazioni relative Modality

  • ApplicationModal
  • SystemModal

Quindi, se il Msgbox è spuntato dalla vostra applicazione corrente, nessun codice verrà eseguito fino a quando si fa clic su un pulsante sulla finestra di messaggio.

Il modo per aggirare questo è quello di progettare il proprio finestra di messaggio utilizzando un modulo. È possibile pop questo e tenerlo su e poi si può ogni pulsante che si desidera su di esso "click".

Se volete un ritardo, è possibile utilizzare l'API Win a dormire

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

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

Altri suggerimenti

So che questo è stato chiesto qualche tempo fa, ma la soluzione che uso è questo:

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

Come funziona è una finestra di messaggio viene visualizzato come una normale sarebbe tuttavia ha un proprio timer di sistema, che significa che è possibile auto chiudere la finestra di messaggio senza nemmeno fare nulla.

Il numero 1 indica quanti secondi si desidera mostrare per prima di chiudere automaticamente.

Io lo uso per salvare le procedure come una notifica utile che qualcosa è salvato, ma non richiede che l'utente in realtà fai clic su "OK".

In ogni caso questo è i miei due centesimi vale la pena di una risposta. Spero che questo aiuti qualcun altro troppo!

Sendkeys "~",false

respingere il msgbox (supponendo che è attivo)

Credo che siete alla ricerca di eventi di vernice, o forzare un aggiornamento modulo anche se per ottenere ciò che si vuole realmente fare!

Edit: Ah accidenti, sì, perché è modale il codice è sospesa ... d'oh! Come suggerito, o scrivere il proprio, o che avrebbe dovuto gettare qualcosa in un altro thread per farlo, e non ho idea di come fare Multi threading in MS Access!

Secondo Edit: Hai guardato Application.Echo False di sospendere e Application.Echo True per riprendere la pittura layout?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top