Hola de nuevo.
Ojo con los autonuméricos para numerar facturas, registros de entrada/salida, etc. Por ley la numeración debe de ser consecutiva y si usas autonumérico ya sabes que en cuanto empiezas a dar alta a un registro te genera el número siguiente -hasta aquí muy bien-, pero que si no llegas a grabarlo, este número se pierde. ¿Cómo justificas ante una inspección la falta de facturas?
Yo en esos casos uso un campo numérico y en el evento antes de insertar le asigno el valor de la siguiente manera:
Donde xEjercicio es una constante, variable, etc. pública que tiene el ejercicio actual.
Si trabajas en un entorno multiusuario, y dos personas empiezan a grabar facturas a la vez, el evento producirá el mismo número a los dos. Para evitar que se dupliquen, vuelvo a hacer la comprobación antes de guardar el registro.
De todas formas puede que dos usuarios graben a la vez (cosa harto difícil) y les dé el mismo número. Como medida de control adicional puedes poner un índice sin duplicados (podría ser la clave principal) para el conjunto de campos Ejercicio y NúmeroFactura.
En cuanto a la segunda parte de mi comentario anterior, puedes hacer una consulta con la siguiente sintaxis:
SELECT * FROM Facturas WHERE Facturas.Ejercicio = EjercicioActual() ORDER BY Facturas.NúmeroFactura;
Ésta te devolverá los registros correspondientes al ejercicio actual y ya puedes usarla como quieras: en el formulario, informes, etc.
Si te fijas he puesto EjercicioActual() puesto que en una consulta no creo que se pueda hacer referencia a variables ni constantes por lo que deberás crear una función que devuelva el valor correspondiente.
Un saludo.