Может сделать выражение в ControlSource и устранить VBA.
=Format([fieldname], IIf([Allowance_Type] LIKE "Per*", "Currency", "Percent"))
Или включите это форматирование в процедуру, которая возвращает значение.
=Format(Switch([Allowance Type]="% Off Invoice",[Freight Paid % OI], ([Allowance Type]="Per Pound",[Freight Paid / LB], [Allowance Type]="Per Case",[Freight Paid/_Case]), IIf([Allowance_Type] LIKE "Per*", "Currency", "Percent"))
События форматирования запускаются только в PrintPreview или напрямую на принтер, а не в представление отчета.
Не рекомендуется использовать пробелы или знаки препинания / специальные символы (подчеркивают только исключение) в соглашении об именах.