Se la sub ti serve perchè vuoi vedere i max per anno ok ... ma non serve
ti basta assegnare all'evento che vuoi tu, ad esempio data_inserimento_afterupdate il codice
me.progressivo=dmax("progressivo","tuaOrigine","anno=" & year(me.data_inserimento))+1
aggiungendo un controllo sul null della data_inserimento, un nz al dmax giusto per non fornire la pappa pronta completamente e dando per scontato che esista un campo anno nella tabella/query "tuaOrigine"
Tieni in considerazione che, come non è necessaria la submask non è necessaria per forza nemmeno una query di raggruppamento.
Però mi sorge una domanda ... perchè vuoi questo? mi sto immaginando che tu debba assegnare il progressivo ad un record di n campi e non solo di data_inserimento per cui di solito l'assegnazione del progressivo si fa al momento della registrazione del record quindi avrebbe senso spostare il tutto sull'evento apposito e a quel punto modificherei proprio ... ma dipende se la form è associata o meno.