Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Refresh di maschera al' interno di un ciclo

115 views
Skip to first unread message

radicale.002

unread,
Jul 3, 2010, 5:39:04 PM7/3/10
to
Se fate ad esempio :

do while (condizione)
...
x = x + 1
me.setfocus
me.conteggio_text = x
me.refresh
me.repaint
..
loop

la maschera me non si aggiorna, fintanto
che l' aggiornamento avviene nel ciclo.

Evidentemente VBA ottimizza e per velocizzare
il ciclo "salta" le operazioni di aggiornamento.

E' possibile forzarlo in qualche modo ad aggiornare
la maschera ad ogni iterazione ?

Forse con un doevents appena dopo ? Dopo il
refresh ?

Grazie.

Pablitomf (da casa)

unread,
Jul 3, 2010, 5:50:44 PM7/3/10
to

"radicale.002" <radica...@gmail.com> ha scritto nel messaggio
news:de2c1907-e45e-49f6...@d16g2000yqb.googlegroups.com...

> Se fate ad esempio :
>
> do while (condizione)
> ...
> x = x + 1
> me.setfocus
> me.conteggio_text = x

DoEvents

> me.requery

basta questa sopra... niente refresh e niente repaint....

Alessandro Cara

unread,
Jul 4, 2010, 3:25:02 AM7/4/10
to
radicale.002 ha scritto:
[cut]

>
> Forse con un doevents appena dopo ? Dopo il
> refresh ?

Ti ha risposto Maurizio.
Mi togli una curiosita'. In un ciclo come quello che hai descritto cosa
vuoi ottenere facendo il refresh del form?

radicale.002

unread,
Jul 4, 2010, 5:57:46 AM7/4/10
to
On 4 Lug, 09:25, Alessandro Cara <alessandro.c...@ay-1anetwork.it>
wrote:

> Ti ha risposto Maurizio.

Si si ... Anzi, approfitto per ringraziarlo.
Lo immaginavo ci volesse il doevents, ma
sempre meglio confrontarsi con gli altri.

> Mi togli una curiosita'.

A disposizione ! :-)

>In un ciclo come quello che hai descritto cosa
> vuoi ottenere facendo il refresh del form?

Beh, mi servirebbe per avvertire l' utente a che punto
sta il ciclo.

Immagino ci siano metodi migliori, vero ?
Tipo usare quel controllo a barre, la ...
Come se chiama ...
Dimmi dimmi. Insegnami.

Pablitomf (da casa)

unread,
Jul 4, 2010, 12:10:05 PM7/4/10
to

"radicale.002" <radica...@gmail.com> ha scritto nel messaggio
news:4bce6f7b-8c37-4a2e...@d16g2000yqb.googlegroups.com...

ProgressBar...
(ti consiglio di non usare quella di sistema, ma di creartela ad hoc con 2
label... una di sfondo che fa da cornice, una di progress che fa da
conteggio)...
Se ti serve puoi vedere il mio demo sull'FTP con il progressbar su
Accessgroup.


Alessandro Cara

unread,
Jul 4, 2010, 2:25:03 PM7/4/10
to
radicale.002 ha scritto:
(cfr. pablitomf)

Uhmmmm..... quando sono nella necessita' di fare quello che,
immagino(*), vuoi fare, uso normalmente un form di tipo msgbox e quindi
non legato ai dati.
Visto l'uso che fai della requery, riimmagino, che le operazioni della
routine impattino sui dati visualizzati dal form, ma, mi chiedo, ha
veramente senso farla?Vista la tua "ossessione" per i tempi di
esecuzione? e visto che i dati visualizzati,ririimmagino, sono (o
dovrebbero essere) una sezione del totale?
Tutto cio' decade se, ad esempio, hai una decina di righe da
visualizzare e per ogni riga aggiornata la ruotine impiega sopra al
secondo di tempo.

(*) dovrebbe essere nascosto nei .... della routine

radicale.002

unread,
Jul 4, 2010, 5:40:32 PM7/4/10
to
On 4 Lug, 20:25, Alessandro Cara <alessandro.c...@ay-1anetwork.it>
wrote:

> Visto l'uso che fai della requery, riimmagino, che le operazioni della


> routine impattino sui dati visualizzati dal form, ma, mi chiedo, ha
> veramente senso farla?Vista la tua "ossessione" per i tempi di
> esecuzione?

Ma si, dai ... Basta fare un aggiornamento in maschera ogni
n cicli, e scegliere n, diciamo , uguale al 20% del totale cicli.

Si rallenta solo un po' ...

0 new messages