Hola.
Me temo que eso no es exactamente así. Puedes probarlo tu mismo. Añade un registro en una tabla que tenga un campo autonumerico como campo llave y después borralo. Cuando añadas otro registro, verás que no te asigna el número del que borraste, sino el siguiente. Por tanto, si haces una consulta antes de añadir el ultimo registro, te devolverá el mayor valor encontrado, que no necesariamente es el anterior al que va a añadir la próxima vez.
¿Me explico?. Para entendernos: tienes tres registros, añades uno mas y Access le da el número 4. Borras ese registro y cierras la tabla. La abres de nuevo y añades otro registro. Access le da el numero 5, con lo cual te quedarán los registros 1, 2, 3 y 5. Si antes de añadir este ultimo registro haces una consulta utilizando MAX, te devolverá 3, no 4.
Yo no se si al hacer Recordset.AddNew Access ya le asigna un valor al campo autonumerico, pero pienso que no, que lo hace cuando le pones el .Update. La consulta con MAX sóloserá efectiva si sabes de antemano que no se ha borrado ningún registro.