In the end the best approach seemed to be a disconnected recordset. I'm working with about 2500 records so it seems fairly fast.

What I did:
1. created a disconnected recordset
2. used the Find method to see if the values was already there
3. If there, update otherwise insert.

Works a treat too.