Newsgroup: it.comp.lang.visual-basic
Titolo: Maschera di attesa...

Ciao,
ho creato una form chiamata AttenderePrego da utilizzare in attesa
che
vengano eseguire query un po' lunghe
La form non è niente altro che una simulazione di una barra con 7
immagini che compaiono in sequenza
Quando apro la form vedo una barra che cresce, si spegne e ricomincia
da capo, quindi funziona.
ciò che non  funziona è se la uso avviandola durante l' attesa; qui
un
pezzo di codice :
Select Case scegli
               Case "Amministratore" 'Entra nella form Amministratore
                    DoCmd.OpenForm "AttenderePrego", , , ,
acFormReadOnly, acWindowNormal
                    DoCmd.RepaintObject acForm, "AttenderePrego"
                    DoCmd.OpenForm "M_Ricerche"
                    Forms![M_Ricerche]![NomeBenvenuto] = Forms!
[M_Login]![Utente]
                    DoCmd.Close acForm, "M_Login"
               Case "Operatore" 'Entra nella form Operatore
                    DoCmd.OpenForm "AttenderePrego", , , ,
acFormReadOnly, acWindowNormal
                    DoCmd.RepaintObject acForm, "AttenderePrego"
                    DoCmd.OpenForm "M_Ricerche"
                    Forms![M_Ricerche]![NomeBenvenuto] = Forms!
[M_Login]![Utente]
                    DoCmd.Close acForm, "M_Login"
su apertura della form successiva ho inserito close di Attendere
prego.
quando clicco sul pulsante la form AttenderePrego si apre ma non si
carica nel senso che non carica l' avanzamento della barra perchè il
PC è già impegnato ad eseguire la query che comanda la form
successiva.
vorrei pertanto sapere se è possibile fare in modo che si apra
AttenderePrego con le sue animazioni e poi parte l' elaborazione.
Spero di essermi spiegato bene
grazie
Marco

 ci� che non  funziona � se la uso avviandola durante l' attesa; qui
prova un po' cosi': aggiungi un
Application.DoEvents
prima di lanciare la query.
il doevents forza l'applicativo ad eseguire la coda dei "messaggi" tra 
l'applicativo
e il S.O., e' quest'ultimo ad eseguire "fisicamente" il disegno del form
sullo schermo, quindi se nello stesso ciclo che apre il form lanci un 
compito
gravoso senza che  il controllo sia "tornato" al S.O., gli eventi richiesti 
in
quel ciclo vengono effettuati all'uscita del ciclo stesso.

 > ciò che non  funziona è se la uso avviandola durante l' attesa; qui

Non mi funziona...
mi dice "impossibile trovare il metodo o il membro dei dati" in
DoEvents
innanzi tutto devo dirti che sto lavoranno in access, spero di non
essere OT
ora il codice l' ho messo così :
Select Case scegli
               Case "Amministratore" 'Entra nella form Amministratore
                    DoCmd.OpenForm "AttenderePrego", , , ,
acFormReadOnly, acWindowNormal
                    DoCmd.RepaintObject acForm, "AttenderePrego"
            >>>  Application.DoEvents
                    DoCmd.OpenForm "M_Ricerche"
                    Forms![M_Ricerche]![NomeBenvenuto] = Forms!
[M_Login]![Utente]
                    DoCmd.Close acForm, "M_Login"
                    ecc...
Nell' attesa faccio un po' di prove.
grazie

 essere OT
Ah ecco...
prova a mettere il doevents senza il application. davanti in pratica solo
doevents


non funziona neanche così
si apre Attendere ma non parte l' animazione e all' apertura della
maschera successiva basata sulla query che ti dicevo chiude Attendere
ci deve essere un modo...
grazie ancora
Marco