Quello che sto dicendo è quando tu lavori facendo passo passo, tra una istruzione e l'altra c'è del tempo, per cui i meccanismi di caching dei recordset possono salvare in tabella i dati con tranquillità, mentre quando va più veloce no.
Comunque, se il valore DMax deve cambiare a causa degli inserimenti che tu fai, non è più semplice farsi restituire il Dmax solo all'inizio e poi aggiornartelo tu?
In fondo se stai inserendo tu i nuovi record potrai di certoo confrontare il nuovo valore del campo nel record che stai inserendo con il vecchio valore massimo, e se è superiore prendi il nuovo, così sei sicuro di avere sempre il massimo indipendentemente da qualsiasi meccanismo di caching e tipo di recordset...
In fondo questo modo di procedere potrebbe avere dei problemi solo nel caso di multitasking, ma in quel caso ce l avrebbe anche il metodo con dmax...