A Make-Table query turns the datasheet for the query into
a new table. Such a query might select whole records from a single
table or it might select various fields from several tables and queries.
This kind of query makes copies of data and does not change
the original records at all. The table made by the query will not change automatically if the original data changes.
Why make a table instead of just running a query or report?
Static records: The records are frozen in time. A select query or a report is based on the current values. Is that what you want? The values in the new table will not change when the original data changes later, unless you run the make-table query again.
Speed: Viewing an existing table is faster than viewing a query datasheet or a report. If you view large numbers of records frequently, this can be a big help.
Temp table: You may need a temporary table in the background as part of a complex procedure.
Export: You can create the table as a way to export just what you want to a different database.
Make-table query replaces previous version: Running a Make-Table query a second time will replace the table that it created the first time. This might be exactly what you need to do. You will get a
warning message if you attempt to do this.
Remember:
No
Undo: You cannot "undo" an action query's action.
Backup first: Before running an action query, be sure you have a current backup of the database or an extra copy of the table that will change.
Verify
selection first: Be sure the query selected the records that you
thought you did! View the datasheet to see
the query's datasheet. Check the records carefully. Only then, run the
action query with the Run button
.
The query Make Table-Zeroes-6thTerm from Language Arts Classes database brings fields from several tables and queries together and makes a new table out of those fields. The purpose is to have a list of the assignments and tests in the 6th grading period that have a score of 0. The query or report will show the data at the time you run the query or report. Sometimes you need a saved copy of the data from a time in the past, like for a parent/teacher conference on little Johnnie's missing grades. A saved table handles that better than a query and won't likely get lost like a printed report.
Query Design View: Zeroes-6thTerm
(Some fields are out of view to the left)
Query Datasheet View: View query results BEFORE running the query
Why did I want such a table? I don't really remember! It is one of several ways to see who needed to do make-up work and for what assignment or test.
Possible error in thinking: Should a null score have been included in the query as well as 0? What about scores that were marked to Ignore? It depends on the question!
The process I used to create records in the Scores table created a record for every student for every assignment. I deleted records if that assignment was not given to that particular class. I marked the Ignore column if the score should not be included in averaging. Perhaps a particular student was absent on the day I gave a daily quiz. Or I might have given a test again and counted only the better score. It rapidly gets complicated in the real world!
![]() |
Step-by-Step: Make-Table Query |
![]() |
What you will learn: | to create a select query to change the query to a make-table query to view the results and set a Primary Key |
Start with: , Projects database from previous lesson open.
Making a new table out of existing data is often done for a temporary purpose. The table may help you with a complex analysis. It may be a way to export data to another database. Or, it may just be a convenient way to keep a copy of the data as it existed at a particular time.
For this project, you will create a table of "agents" of the World Travel Inc. travel agency.
Create a new query in Design View, based on the
table Staff.
Include in your query the EmployeeID, the three name
fields, Country/Region, Title, and DateHired.
Sort the query on LastName,
FirstName, MiddleName.
(The fields must be in this order in the
grid.)
In the Criteria row for the column Title, add "agent".
View the datasheet.
The query has selected records that have "Agent" in the Title column.
Save the query as QMake-Table
Agents.
It is still just a Select query at this point.
Switch back to Design View.
Click the button Make-Table Query on the Query Tools: Design ribbon tab.
The Make-Table dialog appears for you to enter a name.
Name the table Agents.
Leave the choice Current Database selected.
Click on OK.
The query is still in Design View and has not run.
Run the query by clicking the Run button
.
A message box appears, telling you that how many rows
you are about to add to a new table. You also get a warning that this action won't be in the Undo list.
Click on Yes.
The table is created and shows in the Navigation Pane but it does
not open automatically.
Save and close the query.
Switch to Table Design View for the Agents table.
The field EmployeeID was the primary
key in the original table.
The values in EmployeeID are unique, since
that field is the primary key for the Staff table.
But Access did not
automatically create a primary key for the new table. Unexpected.
Select the field EmployeeID and click the Primary Key button
.
Save the
table and close it.
[Agents]
Whether or not to have a
primary key: There are situations when you do NOT want to have a
primary key. Usually having a primary key is important to keeping the
records in good order. Remember that a primary key must have a unique
value for each record.