SELECT.INTO Statement (Microsoft Access SQL)

Office 2013 and later

Last modified: March 09, 2015

Applies to: Access 2013 | Office 2013

In this article
Syntax
Remarks
Example

Creates a make-table query.

SELECT field1[, field2[, …]] INTO newtable [IN externaldatabase] FROM source

The SELECT…INTO statement has these parts:

Part

Description

field1, field2

The name of the fields to be copied into the new table.

newtable

The name of the table to be created. It must conform to standard naming conventions. If newtable is the same as the name of an existing table, a trappable error occurs.

externaldatabase

The path to an external database. For a description of the path, see the IN clause.

source

The name of the existing table from which records are selected. This can be single or multiple tables or a query.

You can use make-table queries to archive records, make backup copies of your tables, or make copies to export to another database or to use as a basis for reports that display data for a particular time period. For example, you could produce a Monthly Sales by Region report by running the same make-table query each month.

Note Note
  • You may want to define a primary key for the new table. When you create the table, the fields in the new table inherit the data type and field size of each field in the query's underlying tables, but no other field or table properties are transferred.

  • To add data to an existing table, use the INSERT INTO statement instead to create an append query.

  • To find out which records will be selected before you run the make-table query, first examine the results of a SELECT statement that uses the same selection criteria.

This example selects all records in the Employees table and copies them into a new table named Emp Backup.

Sub SelectIntoX() 
 
    Dim dbs As Database 
    Dim qdf As QueryDef 
 
    ' Modify this line to include the path to Northwind 
    ' on your computer. 
    Set dbs = OpenDatabase("Northwind.mdb") 
 
    ' Select all records in the Employees table  
    ' and copy them into a new table, Emp Backup. 
    dbs.Execute "SELECT Employees.* INTO " _ 
        & "[Emp Backup] FROM Employees;" 
         
    ' Delete the table because this is a demonstration. 
    dbs.Execute "DROP TABLE [Emp Backup];" 
     
    dbs.Close 
 
End Sub
Show: