If you replace
[LastName] & ", " & [NamePrefix]
with
[LastName] & IIf(isnull([LastName],"",", ") & [NamePrefix]
you should get a zero length string, instead of the comma, whenever there is no value in the LastName field. Playing around with the other commas in the same way should allow you...