Avatar of TechNinja2
 asked on

Creating a Temp Table in MS Access

Amazing Experts!

I'm stuck.  I combined a bunch of tables into a union query and am trying to dump that query back into a table so I can add a checkbox field and make the query "editable" so to speak.  The problem is that the query has 5000+ records, but when I run the code, I only end up with 200+ records in the blank table.  I'm not getting an error message and I back checked that my blank table has the correct amount of fields.  (Note: I can't upload the database since it is client confidential, but I can generalize the content.)

I used this vba/SQL code in the OnLoad event of the form:
CurrentDb.Execute "INSERT INTO TBL_Blank  (Field1, Field2, Field3 ...)
SELECT Field1, Field2, Field3 ... FROM QRY_CombinedRecords;", dbFailOnError

Should I be using DAO.Database (see mwolfe02 response)?

or recordset (see Gord Thompson response).

I'm not sure why it doesn't just copy the 5,000+ records in the query and pastes them in the blank table I set up.

Any ideas?
Microsoft AccessVBA

Avatar of undefined
Last Comment
Dale Fye

8/22/2022 - Mon
Dale Fye

Log in or sign up to see answer
Become an EE member today7-DAY FREE TRIAL
Members can start a 7-Day Free trial then enjoy unlimited access to the platform
Sign up - Free for 7 days
Learn why we charge membership fees
We get it - no one likes a content blocker. Take one extra minute and find out why we block content.
Not exactly the question you had in mind?
Sign up for an EE membership and get your own personalized solution. With an EE membership, you can ask unlimited troubleshooting, research, or opinion questions.
ask a question
John Tsioumpris

Why don't you make a passthrough query to select the records and use Access Query Designer to create a "Make Table Query" ...if something is wrong it should popup
Helen Feddema

Instead of creating the temp table from scratch, you could create it (ensuring that all fields are of the correct data type, which is not guaranteed with a make-table query), and fill it from code.  Of course, clear it first with a SQL statement like this:

   strSQL = "DELETE * FROM tblOrderData_Temp"
   CurrentProject.Connection.Execute strSQL


      CurrentDb.Execute strSQL, dbFailOnError

Open in new window


Thank you Dale.  I reviewed the structure based on your questions and it got me thinking about the relationships I used.  After changing relationships, it pulled the records I needed.  (It took me some time to figure out so thx for your patience.)

Thx all!
I started with Experts Exchange in 2004 and it's been a mainstay of my professional computing life since. It helped me launch a career as a programmer / Oracle data analyst
William Peck
Dale Fye

glad I could help.