SELECT 命令の結果から新規テーブルを作成する

SELECT命令の結果から新規テーブルを作成する

SELECT・・・INTO命令
SELECT * INTO 新規テーブル FROM 元となるテーブル;

元となるテーブル

select * into 営業1課 from 社員 where 所属 = ‘営業1課’;

select * into 営業2課 from 社員 where 所属 = ‘営業2課’;

元のテーブルから作成された新規テーブルはフィールド名やデータ型、フィールドサイズの情報はコピーするが、主キーなど、それ以外の情報はコピーしない。

Excelブック内のシートやテキストファイルを書き出す処理に利用する

SELECT INTO命令はmdbファイルに対して使用すると、元のテーブル定義をそのまま利用した作業用テーブルを作成できる。
この処理をExcelブックテキストファイルに対して使用するとSQLを実行するだけで新規シートやテキストファイルを作成できる。

ExcelVBAからADOを使用して、SELECT INTO命令を実行する際には、mdb単体の処理はもとより、データベースの内容をISAM経由で任意のフォーマットで書き出すような処理に対しても有効。

SELECT INTO命令は結果セットを返さない

SELECT INTO命令は「SELECT」というキーワードを持っているが、いわゆる選択クエリとは異なり、結果セットを返さない。
INSERT命令やUPDATE命令のような結果セットを返さないアクションクエリのような扱いをするSQLである。
そのため、結果セットをRecordsetオブジェクトで受け取る必要はない。
ExcelVBAから使用する場合にも、CommandオブジェクトやConnectionオブジェクトのExcuteメソッドでSQLを実行する。
少し異端な命令なので、分類して覚える場合は注意すること。