You seem to be describing more than one issue. On one hand it seems like you need a subform (one site/many defects) to which you add records (deleting records isn't always a good idea). On the other hand, your issue is that you need cascading combos but the site one needs to have DISTINCT or DISTINCT ROW predicate in its rowsource. Typically, when using combos to search or filter by, you don't bind them to fields as ranman suggests. I don't know if that's the reason for your key violation error as you haven't said much about that. Then there is the "last record" thing. If your recordset is not ordered by some sort of date identifier, there is really no such thing as "last" in a table. However, if you want to carry on with defect record editing for an inspection, the form/subform design should eliminate the need for that?
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.