Hola de nuevo webbeginer, a primera vista me parece que te estás complicando demasiado para algo que quizás no necesite tanta complicación, ahora contestando a la pregunta, la lógica es la misma que la función de SQL, solamente necesitas crear un recordset que te devuelva el máximo número para un registro dado, si no existe, el valor es 1, si existe, le sumas 1 y devuelves, además de revisar las reglas específicas de tu aplicación.
Código:
SELECT TOP 1 campoid FROM tabla ORDER BY campoid DESC [WHERE condiciones]
Saludos