I wouldn't call it "very complicated" but it's usually not a good design decision as it will be a more complicated approach than the very simple option of sticking with a straight serial number that always increments, is never changed and the sequence is never reset. If this is a value to be used as a primary key in relationships, this is a crucial consideration to make as anything along this line raises at least the slight chance that an assigned value will not be unique or will need to be changed for some other reason.
To produce this value, the best bet is to isolate the serial number component from the rest of the data. One field is just an auto-incrementing serial number. The other combines that with the other text and formats it with the needed leading zeroes. The serial number part would be a number field. The other field would be text with an auto-enter calculation and a Unique Values validation set on it.
"TKM-" & Left ( ArtYear ; 4 ) & "-" & Right ( "000" & SerialNumberField ; 4 )