There may be easier ways but I would first try creating a List(fieldname) of that field and then when calculating the FinalName you could use PatternCount(text;searchString) so the FinalName would be something like FinalName = FieldA & FieldB & "." & PatternCount(text;searchString)+1
If you did not want FieldA FieldB .1 you would need a further test in the statement.
Use a self join to match records in this table to a second occurrence of the same table by Prelim Name. Use a second field that auto enters prelimname along with a count of the related records to produce the final version of PrelimName where you include the counter.
And I strongly recommend that you reserve this Identifier for labeling, searching, sorting and to support legacy practices but don't use it as a primary key to link tables in your database in relationships.