Ok - bear in mind that I do not work with Access that much (vba anyways)
I've strung this together from 2 posts I found in the archives. Should hopefully do what you want. Needs to be in the form load/activate event
Set rsMyTable = CurrentDb.OpenRecordset("tblMyTable", dbOpenDynaset)
with rsMyTable
.MoveLast
oVal = rsMytable.myFieldA
nVal = right(year(now()),2 & "-" & val(right(oVal,4))+1
.AddNew
.fields("myFieldA"

.value = nVal
end with
obviously, tblMyTable would be the name of the table where you are storing these unique nos.
myFieldA would be the name of the field that holds these numbers
I hope this works cos I'm not sure I could debug if it doesn't - If not, it may well be worth asking this question in one of the Access forums on this site Rgds
Geoff
"Some cause happiness wherever they go; others whenever they go."
-Oscar Wilde