SELECT.INTO ステートメント (Microsoft Access SQL)
適用先: Access 2013、Office 2013
テーブル作成クエリを作成します。
構文
SELECT field1[, field2[, ...]] INTO newtable [IN externaldatabase] FROM source
SELECT...INTO ステートメントには、次の指定項目があります。
指定項目 | 説明 |
---|---|
field1,field2 | 新しいテーブルにコピーするフィールドの名前です。 |
newtable | 作成されるテーブルの名前です。 名前付け規則に従った名前を指定します。 引数 newtable と同じ名前のテーブルが既にある場合は、トラップ可能なエラーになります。 |
externaldatabase | 外部データベースのパス。 パスの説明については、 IN 句を参照してください。 |
source | レコードの選択元になる既存テーブルの名前です。 このテーブルまたはクエリは 1 つでも複数でも構いません。 |
注釈
テーブル作成クエリを使用すると、レコードをアーカイブしたり、テーブルのバックアップ コピーを作成したり、コピーを作成して別のデータベースにエクスポートしたり、特定の期間のデータを表示するレポートの基礎として使用したりできます。 たとえば、毎月同じテーブル作成クエリを実行して、地域別の月次売上レポートを生成できます。
注:
- 新規テーブルに主キーを設定する場合があります。 テーブル作成クエリで作成したテーブルのフィールドは、クエリの元になるテーブルのフィールドのデータ型とフィールド サイズを継承しますが、それ以外のフィールド プロパティやテーブル プロパティは継承しません。
- 既存のテーブルにデータを追加するには、SELECT...INTO ステートメントではなく INSERT INTO ステートメントを使用して追加クエリを作成してください。
- どのレコードが選択されるかをあらかじめ確認する場合は、テーブル作成クエリを実行する前に、同じ選択条件を使用する SELECT ステートメントを実行してその結果を調べてください。
例
この例では、Employees テーブル内のすべてのレコードを選択し、それらを 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