The Scenario
The member stated that he has a master table of data in Access and receives updated information every month in an Excel file. The Excel file contains the same information as the master table but with user changes to the data and possibly new information as well. The challenge is to update the Access table with the user changes and append the additional information as new records - at the same time.The Usual Solution
The first step, usually, is to link to the Excel spreadsheet so we can access the data from within Access. We can then create an UPDATE query that joins the master table with the linked table to apply the latest changes to the data. However, this doesn't include the new information from the linked table.As a second step, we might also create an APPEND query to grab all the new information from the linked table and add them to the master table. We would then need to execute both queries, one at a time, to complete the task of updating the master table.
The Combined Solution
But, since the challenge was to perform both the update and append actions in one query, we had to use a different technique. I can't say that this is a new technique because I'm sure it's been around for a while, and most of you probably already know it. I just thought of writing it down here as a possible reference for me in the future.So, how do we execute an UPDATE and APPEND query at the same time? Well, we also start out by linking to the Excel spreadsheet to access the data. We then create one query that joins the master table to the linked table. However, in this case, we will use an OUTER JOIN to return all the records from the linked table.
As a result, the database engine will update existing data and append new records at the same time. Here's an example of how the query's SQL statement might look like:
UPDATE tblMaster RIGHT JOIN tblExcel ON tblMaster.FieldName=tblExcel.FieldName SET tblMaster.FieldToUpdateOrAdd=tblExcel.FieldToUpdateOrAdd
Original post date: November 30, 2013
Hi there, I know this was posted sometime ago - but was wondering if you could proffer aby feedback for the above.
ReplyDeleteAm new to SQL so could you assist with some more info?
If my Excel table (linked table) is called Sheet1, and my master table that I want the append and update to occur on is called Students, then how would the above SQL query look?
Many thanks and hope to hear back.
Hi. Sorry for the delay... I hope you were able to find the answer to your question. For anyone else reading this, please do not hesitate to send me an email if you don't hear from me right away regarding your comment or question or suggestion. Thank you!
DeleteNow THIS is something useful, nicely done!
ReplyDelete