Are both combo's on the subform or one is on the main form and the other in the subform?
I would also remove any spaces in the field names. That way you don't have to worry about quote marks.
=IIf([Forms]![frmInvoices]![VATRegistered]=-1),[TotalCost]*0.175,[TotalCost])
change to
=IIf([Forms]![frmInvoices]![VATRegistered]=-1,[TotalCost]*0.175,[TotalCost])
You could use a DLookup in the AfterUpdate event of the ID field to see if the ID entered is all ready used before the rest of the form is filled.
I assume you are getting the error when attempting to update the table.