Chiarimento DOEVENTS

di il
9 risposte

Chiarimento DOEVENTS

Buongiorno a tutti,
Ho provato a capire il comando doevents ma non mi è chiarecome usarlo.
Io ho un problema sui refresh di una maschera contina, se ci metto un doevent prima o dopo al me.Requery miglioro il refresh??

Es
doevents
Me.requery


O mi serve altro codice??

9 Risposte

  • Re: Chiarimento DOEVENTS

    ZMax ha scritto:


    Ho provato a capire il comando doevent ma non mi è chiarecome usarlo.
    DoEvents, con la S alla fine.

    ZMax ha scritto:


    Io ho un problema sui refresh di una maschera contina, se ci metto un doevent prima o dopo al me.Requery miglioro il refresh??
    Vuoi capire come funziona DoEvents o vuoi affrontare il problema del Refresh? non necessariamente sono legati, anzi direi che è probabile che ognuno vada per conto proprio.
  • Re: Chiarimento DOEVENTS

    In primis vorrei capire il problema del refresh e speravo di risolverlo con doevents in quanto sembra che durante il refresh faccia un loop ma senza chiamare alcun codice.
    Poi vorrei capire anche il doevents per valutare se può essere inserito anche su altre parti del mio programma.

    per capirsi, lanciato il DOEVENTS mi devo aspettare una risposta? viaggia in sequenza nel codice o in parallelo??
  • Re: Chiarimento DOEVENTS

    ZMax ha scritto:


    In primis vorrei capire il problema del refresh
    Partiamo con questo che è un "problema concreto", ok? Per farlo devi fornirci una bella spiegazione della situazione, di quello che non va, di cosa vorresti, di come hai provato a risolverla pubblicando il codice coinvolto.
  • Re: Chiarimento DOEVENTS

    ZMax ha scritto:


    Buongiorno a tutti,
    Ho provato a capire il comando doevents ma non mi è chiarecome usarlo.
    Io ho un problema sui refresh di una maschera contina, se ci metto un doevent prima o dopo al me.Requery miglioro il refresh??

    Es
    doevents
    Me.requery

    O mi serve altro codice??
    Questo è quanto indica la guida in LINEA di come funziona ed a cosa serve il DOEVENTS:


    Nella sostanza il DoEvents non fa NULLA, quindi di certo non serve a nulla nel tuo caso per migliorare qualsivoglia ipotesi di funzionamento del Requery o del Refresh.

    Il DoEvents passa il controllo al S.O. per eseguire i processi che altrimenti rimangono in coda...
    Il DoEvents si utilizza quindi nei LOOP affinchè in caso di LOOP lunghi secondi, il S.O. non risulti BLOCCATO.

    Ora Su Requery e Refresh, hai letto che differenza sussiste tra i 2 Metodi oppure li hai solo usati a caso...?
  • Re: Chiarimento DOEVENTS

    Grazie @Alex del chiarimento, io ho preso spunto su un post dell 11 luglio 2020 dove tu hai risposto, li il problema era lentezza con relativo blocco di access ed ho immaginato che potesse essermi di aiuto.

    Io ho sperimentato (a casaccio ma ho studiato le differenze) entrambi sia requery che refresh ma alla fine per aggiornare e filtrare uso me.filteron.

    Il mio problema consiste che in fase di visualizzazione di una "maschera continua", la visualizzazione occasionalmente si presenta a righe e non in tutto in blocco, inizialmente pensavo che avviasse un ciclo che generasse qualche loop, ma recentemente ho potuto verificare che non interviene alcun codice che manda in loop la visualizzazione a video.

    Come detto in precedenza, di base funziona ma dopo un po' di tempo senza apparente logica e non ne capisco il perché
  • Re: Chiarimento DOEVENTS

    ZMax ha scritto:


    Il mio problema consiste che in fase di visualizzazione di una "maschera continua", la visualizzazione occasionalmente si presenta a righe e non in tutto in blocco, ...
    Continuo a non capire qual è il problema. E' lento? La maschera continua è forse una sottomaschera? Qual è l'origine della maschera continua? Come la apri? Dicci qualcosa di più, così non sappiamo da che parti iniziare.
  • Re: Chiarimento DOEVENTS

    Il programma serve per gestire un organico in servizio dove ci sono 10 colonne in totale ed un centinaio di righe filtrate sulla maschera.
    E' una maschera continua ed il db è su SQL dove girano altri db più corposi. La apro da una maschera di presentazione semplice ed una volta aperta resta aperta in quanto per il cambio dei dati visualizzati tipo i turni di domani o dopodomani, utilizzo solo dei filtri tramite vba che filtrano le date dei servizi ed i servizi ancora in corso non visualizzando chi ha già concluso il turno di lavoro.

    Di base il programma funziona regolarmente ma occasionalmente, il programma cambiando questi filtri svuota la griglia dei dati e comincia a visualizzarla riga per riga arrivando ad un certo punto che risvuota la griglia e ricomincia a visualizzare a video di nuovo tutto riga per riga.
    Nei momenti peggiori questo problema si "blocca in questo loop" anche per dieci minuti.
    Access non risulta bloccato anzi continua a lavorare.
    Il codice quando non viene richiamato in nessuna sua parte in questa fase di loop, ho provato a mettere delle interuzzioni al codice per vedere se avviava altri codici a casaccio ma nulla.
    La CPU e costante senza picchi di risorse, stessa cosa per la ram e per la rete.
    Il programma gira su un solo computer alla volta ma il problema lo fa su tutte le macchine installate, con cpu tipo I7 ram 12G dischi solidi, sia in rete locale che in vpn.

    Apparentemente va solo in loop mentre popola la visualizzazione della griglia della maschera continua, ma senza alcuna causa o logica ne cadenza.
  • Re: Chiarimento DOEVENTS

    ZMax ha scritto:


    Il programma serve per gestire un organico in servizio dove ci sono 10 colonne in totale ed un centinaio di righe filtrate sulla maschera.
    E' una maschera continua ed il db è su SQL dove girano altri db più corposi.
    Mi fermo, quando c'è Server SQL come backend non so niente. Ti lascio in mano di esperti veri.
  • Re: Chiarimento DOEVENTS

    Grazie lo stesso, ad ogni modo dubito che sia un problema di SQl in quanto altri DB creati sempre da me con un uso analogo sullo stesso server, non generano la stessa anomalia.
    Dimenticavo, la maschera è agganciata su una tabella collegata e non su una query, mai che serva come dato.

    Grazie mille Philcattivocarattere
Devi accedere o registrarti per scrivere nel forum
9 risposte