Newsgroup: it.comp.appl.access
Titolo: Barra di progressione su apertura maschera

Ciao a tutti. Ho un applicazione access che gestisce centinaia di
migliaia di records e alcune maschere impiegano anche 10 secondi per
l'apertura e vorrei quindi associare all'evento apertura della
maschera una barra di progressione che simuli al caricamento di della
maschera. Ho fatto dei tentativi ma quando si visualizza la barra
prima che si apra la maschera la barra deve finire il suo corso e poi
si attiva la procedura di apertura della maschera e quindi i tempi si
allungano, cosa sbaglio? come posso fare affinche' la barra rimanga
visualizzata fino all'apertura della maschera e scompaia anche se non
ha finito il suo corso? grazie in anticipo e ciao

 ha scritto nel messaggio 
news:dcb1a1bd-e1f2-4828...@w3g2000yqc.googlegroups.com...

Credo che potresti riuscirci se apri la maschera senza che questa sia 
associata ad un recordset, poi sull'evento Form_Open imposti il recordset (a 
questo punto inizia l'attesa piuttosto lunga). La maschera la imposti con un 
evento Su Timer ed un TimerInterval valorizzato a 100, così entra nella 
routine 10 volte al secondo. La routine dovrà mostrare una barra che 
progredisce ogni volta che viene richiamata. Il dubbio che ho è se la 
routine viene invocata anche mentre si sta costruendo il recordset.
Ciao
Antonio

 Antonio
[risposta]
Grazie per la risposta ma temo di non riuscirci. ho guardato nei post
precedenti ma non ho trovato la soluzione, mi domandavo se invece
della barra di progressione non fosse possibile associare all'apertura
della maschera un qualcosa che mi indichi che il pc stia lavorando
(tipo un animazione con la scritta "apertura maschera in corso") e se
si quali sono gli eventi a cui associare l'apertura dell'animazione e
la sua scomparsa una volta aperta la maschera, grazie di nuovo e ciao

la sua scomparsa una volta aperta la maschera, grazie di nuovo e ciao
2 cose:
potresti usare la clessidra (docmd.Hourglass true/false) per indicare l'apertura (semplicesemplice) oppure (ma è solo un idea) lanciare una maschera intermedia popup ('OPERAZIONE IN CORSO. ATTENDERE PREGO') con, sull'evento timer, il controllo del caricamento della form richiesta. Se nn è ancora 'caricata' allora prosegui con il timer, se è caricata, chiudi la popup e metti il focus sulla tua maschera
-- 
Questo articolo e` stato inviato dal sito web 
http://www.nonsolonews.it


[risposta]
grazie per la risposta, l'idea mi sembra buona, per la maschera
intermedia ci avevo gia' pensato solo che quando si visualizza si vede
solo la cornice e l'interno e' trasparente (poche risosse?); comunque
non ho capito una cosa: cosa vuol dire la frase "con, sull'evento
timer, il controllo del caricamento della form richiesta. Se nn è
ancora 'caricata' allora prosegui con il timer, se è caricata, chiudi
" ciao e grazie

" ciao e grazie
Non credo che dipenda dalle poche risorse...ma da Access......
Sul mio PC quando lancio alcune procedure manco il refresh funziona......con la questione timer pensavo ad una generalizzazione:
Su OnTimer
If application.currentproject.allforms("TuaForm").isloaded=true then
docmd.close acform, "FormIntermedia"
forms!TuaForms.setfocus
else
timer=500
end if
cosě la form intermedia 'controlla' se la tua maschera č caricata o no prima di chiudersi o di rimanere li ad avvisare di attendere
Se usi delle variabili rischi anche di fare una unica maschera intermewdia per l'apertura di ogni form che vuoi.....
MNa comunque x me č meglio la clessidra...funziona sempre e nn da mai problemi. Poi mi sembra di ricordare di aver letto un modo per far dire ad Access che sta lavorando nella barra di stato.....cercherň nell'help. Buon lavoro!!!!!



[risposta]
grazie per la risposta e oggi provero' la tua soluzione. grazie e ciao

 maschera.
Secondo me dovresti modificare l'applicazione affinchè il tempo di 
caricamento sia di pochi (due o tre al massimo) secondi.
Ti sembrerà una risposta fastidiosa, ma è la migliore.
Non esiste una Form che "per forza"  debba caricare all'apertura centinaia 
di migliaia di records e, quindi, "per forza" sia lenta.
Per quale ragione carichi di Default l'intero set di records?
Ciao