Una famiglia di sistemi di gestione per database relazionali di Microsoft progettati per semplificare l'uso.
ciao Alessandro,
Ho risolto sostituendo DMax con DLast
Grazie mille !!!!!
leggi qui :
ti sconsiglio Dlast.
in pratica hai una partizione che deve discriminare la numerazione progressiva data dalla data di inserimento della riga nella tabella.
Prova ad effettuare questa modifica.
apri la tabella T_progressivo ed inserisci un nuovo campo lo chiami dataInserimento di tipo data/ora.
Apri la form ed inserisci un nuovo controllo textBox associato alla dataInserimento, questo controllo di compilerà automaticamente assumendo il valore della data odierna, lo puoi anche manterene non visibile, modificando la sua proprietà visibile=no.
Poi intervieni in modo minimale al codice VBA associato alla form nel modo che segue :
Private Sub Form_BeforeInsert(Cancel As Integer)
With Me
.progressivo = Nz(DMax("progressivo", "T_progressivo", "datainserimento=" & CLng(VBA.Date())), 0) + 1
.dataInserimento = VBA.Date()
End With
End Sub
sostanzialemente trovi il massimo valore nella tabella con considizione where settando il terzo parametro della funzione sui domini Dmax impostata sulla data odierna.
in tal modo, popolando la tabella con la form ottieni la corretta valorizzazione della partizione in base alla data odierna :
nota il rettandolo rosso, qualora di dimenticassi in inserire una riga per una data specifica, la progressione viene mantenuta.
un'altra soluzione potrebbe essere di utilizzare un database separato in cui memorizzare in una tabella il progressivo...ma per ora restiamo sul semplice...
HTH.
Ciao, Sandro.