Question: I know this question must have been asked a million times but I have yet to find a "NON-VBA" solution to this in MS Access 2007 SQL.

I am using 2 Tables **TBLDestination** and **TBLSource**. I have to update the destination table records from source table records when a matching ID is found. For a non-matching ID (i.e. new ID) I want to insert the new record 
(Please refer the tables below).

```
-----TBLSource-------
ID (match if ID exists in Destination table)
EmpName
EmpAdd

---TBLDestination-----
ID
EmpName (to be updated/inserted)
EmpAdd (to be updated/inserted)
Salary

```

Answer: 
MS Access doesn't have an equivalent to UPSERT where you can do both in a single query.

However, you can get the same effect by doing an UPDATE query where you join to the table you want to update from. Then you do an INSERT query where you OUTER JOIN to the table and return only those where it doesn't exist.
Access DOES have the equivalent using an `UPDATE` with a `LEFT JOIN`. [See here](https://stackoverflow.com/a/37014004/78522).