Newsgroup: it.comp.appl.access
Titolo: Report - dati non corretti

Alla fine di una routine che prevede l'attivazione di una serie di query di
comando e che richiama alcune funzioni che aggiornano i dati in alcune
tabelle, viene visualizzato il report con i dati elaborati. La cosa strana è
che talvolta alla prima visualizzazione i dati non sono corretti. Se però
chiudo e richiamo il report una seconda volta i dati sono giusti. E come se
alcune azioni nella routine vengano compiute prima che altre siano
completate. Come posso evitare che ciò avvenga?
Grazie

 ha scritto nel messaggio
news:sYmm7.128832$TS4.1...@news2.tin.it...

Prova a fare un refresh dei dati prima di eseguire le query di comando...
Ciao.

 Grazie  Sergio.
Però spiegami meglio come fare il refresh. Per quel che posso capire lo
dovrei fare dopo le query di comando, cosicché la query di selezione sotto
il report pescherebbe dalla tabella "rinfrescata" e i dati sarebbero giusti.
Ma come e dove lo devo fare? Abbi pazienza, aiutami ancora.
Grazie e ciao.
Agos


In verità pensavo che i dati del report provenissero da maschere e magari
c'era bisogno di un refresh dei dati... Avevo capito fischi per fiaschi.
Quindi la sequenza è: query di comando e poi report che si appoggia ad una
query/tabella appena creata/aggiornata?
Hai controllato passo per passo se, per esempio, la prima query di comando
fa il suo dovere?
Ciao.

 Ti do qualche informazione in più.
Devo creare il servizio giornaliero per i dipendenti di una ditta. Sono
divisi in due turni, uno fa la mattina l'altro il pomeriggio. Il giorno dopo
si invertono i turni, quello che ha fatto la mattina fa il pomeriggio e
viceversa. Per tutti i giorni della settimana non c'è problema, sono
riuscito nella gestione. La domenica però lavora un turno solo, mezzo turno
fa la mattina e mezzo il pomeriggio. La domenica dopo il mezzo turno che ha
fatto la mattina fa il pomeriggio e viceversa. Per gestire la cosa ho
assegnato ad ogni dipendente un codice di appartenenza: A1 per un mezzo
turno A2 per l'altro mezzo turno. Ho poi creato una tabella in cui sono
dettagliati, domenica per domenica, data per data, le turnazioni di A1 e A2
e l'ho chiamata "TurnazioniDomenicali".
Quando creo il servizio della domenica (con alcune query di accodamento) mi
trovo l'intero turno che fa o la mattina o il pomeriggio. Devo quindi
modificarlo, assegnando ad ogni dipendente l'orario a seconda della
turnazione domenicale Matt/Pom che gli compete.
Per farlo, nella routine che segue le query anzidette, creo due recordset di
tipo dynaset: uno sulla tabella che contiene l'archivio di tutti i servizi
giornalieri ("ArchivioServizi"), l'altro sulla tabella che contiene le date
domenicali relative ai turni A1 e A2 ("TurniDomenicali"). In entrambi i casi
seleziono solo il giorno interessato, sicchè sul primo recordset mi ritrovo
tanti record quanti sono i dipendenti che lavorano quella domenica e nel
secondo due soli record su cui sono stabiliti i turni Matt/Pom di A1 e A2.
Mi sposto sul primo record della tabella TurniDomenicali e "pesco" i dati
necessari assegnandoli ad alcune variabili.
Poi vado sulla tabella ArchivioServizi e... (faccio prima a scrivere il
codice):
Do
    If  rstArchivioServizi!DTurno =  rstTurniDomenicali!DomTurno then
        ... modifico i dati nell'ArchivioServizi.
    end if
    rstArchivioServizi.MoveNext
loop Until rstArchivioServizi.EOF
Mi sposto poi sul secondo record della tabella TurniDomenicali e ripeto
l'operazione (se il primo record era relativo ad A1, il secondo sarà
relativo ad A2 )
Al termine della routine richiamo il report che visualizza il servizio del
giorno. E' qui che, qualche volta, la prima visualizzazione non è corretta,
ma se chiudo e riapro va tutto a posto.
C'è di più. Qualche volta, nell'esecuzione della routine, si arresta sulla
condizione If sopradescritta e mi dice che non è un valido Bookmark (!?).
Cosa che non ti ho detto, perché per la verità fin ora non mi ha creato
problemi, è che le tabelle sono collegate...

 turnazione domenicale Matt/Pom che gli compete.
da qui in poi mi sono perso...

Poi fare degli esempi?
Ciao.