silene ha scritto:
Ciao Alex,
grazie per la tua osservazione in calce (potevi risparmiarla...)
Assolutamente no... perchè dovrei trattarti come un ragazzino/a... non siamo a scuola, e quello che devo dire lo dico usando educazione e senza mai offendere, solo che non ho timori reverenziali...
Cosa ritieni ci sia di sbagliato o di offensivo in quanto esposto...?
Ti faccio notare tuttavia che non hai risposto alla domanda.
silene ha scritto:
Allora ho provato il Dlast (nella proprietà valore predefinito) del controllo:
=Dlast("txtvalore";"tabella1") ma sono al punto di partenza.
Inserito il primo valore(che popola il relativo campo della tabella) poi nei record successivi niente.
Ho rivisto i vari post ma non riesco a concludere.
Non è che la funzione Dlast sia sibillina?
Del resto in un post recente tu stesso l'hai definita di "performances discretamente scarse".
Buona serata
Il problema è di aggiornamento dei dati... prova a premere F5 dopo aver inserito un nuovo record... e vedrai che il tutto si aggiorna...!
Qual'è il comando da generare per aggiornare i dati...?(Non dire Refresh o Recalc )
Questo tuttavia richiede riflessione sull'evento o meglio gli eventi da usare...!
Ovviamente è solo per farti capire il problema di fondo...
Sulla questione di Performances credo tu abbia forse frainteso quanto è il concetto.
Tutte le funzioni di aggregazione sui DOMINI, quindi DMAX/DLAST/DLOOKUP/Ecc... hanno performances migliorabili, e questo è vero sempre, ma l'entità della decadenza delle performances è visibile e da evitare nelle Queries, in quanto in questi casi ad ogni Record viene chiamata la funzione, quindi se la Query elabora 10000 Records allora si che richiamare 10000 volte la DMAX o altro ha un'impatto che potrebbe rendere meno efficienti le queries.
Nel tuo caso la chiamata è singola e che possa impiegare 100ms in più credo tu possa convenire che non deve essere il problema.
Ora siccome io non uso mai le funzioni di Aggregazione in realtà scriverei del codice per farlo, la 2° delle 2 soluzioni.
Ipotizzo che nella tua tabella [tabella1] ci sia un campo definito come ChiavePrimaria [Id] quindi essendo un Progressivo crescente ho ipotizzato che il numero più alto sarà ovviamente l'ultimo Record inserito dal quale andare a leggere il valore del campo [txtValore]:
Private Sub Form_Current()
If Me.NewRecord Then
Dim rs As dao.Recordset
Set rs = DBEngine(0)(0).OpenRecordset("SELECT TOP 1, txtvalore From tabella1 ORDER BY ID DESC", dbReadOnly, dbOpenDynaset)
If Not rs.EOF Then Me.d.DefaultValue = Nz(rs.Fields("txtvalore").Value,0)
rs.Close
Set rs = Nothing
End If
End Sub
Ora fai attenzione all'evento di DELETE... provalo e vedrai che servirà generare un Requery su evento AfterDelCofirm...
Giocaci un pò e vedi se ti soddisfa, facci sapere dei PRO e CONTRO... e di eventuali migliorie..!