Hola Lucio,
Mira te doy alguna pista de por dónde puedes empezar a jugar con Access, hacer tus propias pruebas y decidir cómo quieres enfocar el tema.
En el diseño de tabla puedes indicarle al campo que quieres que refleje el año que por defecto te ponga ya ese dato:
En valor predeterminado puedes poner:
Año(Ahora())
De esta manera cada vez que des de alta un registro ese campo ya recogerá el año en curso,
Para reiniciar con valor 1 el campo de tu tabla podrías establecer la condición de que te comparase el valor máximo del campo que contiene el año con el año actual y decirle que si es mayor (el año actual), entonces que reinicie ya que en ese caso indicará que el año ha cambiado a un valor superior:
If Year(Date) > DMax("TuCampoAño", "TuTabla") Then
Tutextboxdetuformulario.value=1
endif
El valor de ese campo (que yo he dado por hecho que lo tenías enlazado a la tabla en tu formulario) "Tutextboxdetuformulario", podrías indicárselo de manera automática, algo así como que cogiera siempre el valor más alto + 1 y en propiedades bloquearlo para que no se pudiera acceder a él, de esta manera te asegurarías que siempre iría aumentando.
Se hace igual que te he indicado arriba, con el Dmax ("nombrecampo" , "nombretabla"), a eso podrías sumarle uno y obtendrías su valor +1.
Bueno no se si te servirá de algo estas pinceladas, hacer un contador es fácil, lo difícil es evitar que se corrompa, piensa que la fecha del ordenador puede variar por diferentes motivos, cambiar el año por algún error, etc.., dar de alta un registro que luego se anula, etc.. etc.. también deberías controlar mediante un filtro que te avisara en caso de que no fuera cierto que el año ha cambiado realmente.
Como ves tienes bastantes opciones.
Saludos.
Toni