Newsgroup: it.comp.appl.access
Titolo: casella di testo che si aggiorna solo con debug

Buon pomeriggio.
Con il seguente codice
Me.txtUltimaPagina = Arrotonda_Eccesso(Form_smRiepSoci.txtConteggio / 14, 1)
Ottengo il numero dell'ultima pagina di una sottomaschera che mi visualizza 14 record per ogni pagina.
Su apertura form principale la sottomaschera è vuota.
Appena eseguo il primo filtro (IdAzienda), la sottomaschera si popola di 48 record ma la casella di testo non associata me.txtUltimaPagina anzichè avere valore 4 ha valore 0.
Se eseguo la routine passo a passo con il debug, invece visualizza correttamente 4.
Ad ogni successivo clic sui pulsanti avanti o indietro il numero di pagina si aggiorna correttamente anche senza debug.
Ho provato in tutti i modi ma non riesco a risolvere.
Grazie
Giuseppe


Arrotonda_Eccesso dove si trova? nel recordsource?
1) perché non lo fai da codice? 
2) forse con refresh risolvi


Ciao Michele.
Arrotonda_Eccesso è una funzione che ho messo in un modulo.
Ho aggiuntoil me.refresh  dopo 
        Me.txtUltimaPagina = Arrotonda_Eccesso(Form_smRiepSoci.txtConteggio / 14, 1)
 ma la casella di testo, solo la prima volta mi mostra 0 , poi se clicco i pulsanti pg.avant o pg. indietro che richiamano la sub dove c'è sempre la riga 
 Me.txtUltimaPagina = Arrotonda_Eccesso(Form_smRiepSoci.txtConteggio / 14, 1)
mi dà il risultato corretto.
Con il debug funziona anche la prima volta.
Grazie.
Giuseppe


Nessuna idea?
Io continuo a provare e spostare la riga, ma niente.
Succede anche se vado in modifica di un record.
Quando torna visibile la maschera ha di nuovo 0 come ultiima pagina e non quella corretta.
Buona domenica a tutti.
Giuseppe


Ho risolto inserendo la funzione Timer
Nella routine corrente ho inserito 
    Me.TimerInterval = 10
e successivamente
Private Sub Form_Timer()
    Me.txtUltimaPagina = Arrotonda_Eccesso(Form_smRiepSoci.txtConteggio / 14, 1)
End Sub
La casella di testo prima va su 0 e dopo sul numero di pagina corretto.
E' lento e brutto da vedere ma funziona.
Qualsiasi valore indico come intervallo del timer sembra non cambiare la tempistica.
Suggerimenti?
Giuseppe


Devi trovare il giusto evento per far scattare il calcolo facendo varie prove oppure più semplicemente calcola tutto tramite codice.


In effetti Michele, oltre a non piacermi ed esser macchinosa, la soluzone con il timer sembra non funzionare sempre.
Spero di aver trovato la soluzione definitiva.
Sfruttando la query filtrata per l'esportazione in excel, ho calcolato il numero dell'ultima pagina, così:
Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT Count(qsmRiepSociFiltrata.IdSocio) AS ConteggioDiIdSocio FROM qsmRiepSociFiltrata")
    Me.txtUltimaPagina = Arrotonda_Eccesso(rs!ConteggioDiIdSocio / 14, 1)
Grazie ancora.
Giuseppe.


Buongiorno a tutti.
Ripropongo il quesito. 
Avevo trovato una soluzione, secondo me macchinosa, con la creazione di una query che mostra i record filtrati nella sottomaschera e su questa query facevo il conteggio dei record presenti nella subform.
Con l'aggiunta di subfiltri anche la query non va più bene.
Possibile che in Vba la riga
Me.txtUltimaPagina = Arrotonda_Eccesso(Form_smRiepSoci.txtConteggio / 14, 1) 
funzioni solo facendo il debug passo a passo, mentre se tolgo il punto di interruzione mi restituisce 0?
Ho provato a fare requerery della subform con Me!smRiepSoci.Form.Requery
con il refresh della form con me.Form.Refresh
ma il risultato è sempre 0.
Grazie.

 
 
questa delle cose che funzionano se le esegui passo passo mentre non vanno 
se lasci andare il codice è uno dei misteri di cui non mi capacito neppure 
io, essendoci in mezzo proprio in questi giorni :(
 
 
-- 
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........