即効テクニック |
●概要● 構文 SELECT 元テーブル1.フィールド1 [ AS 新しいフィールド名1], 元テーブル2.フィールド1 [ AS 新しいフィールド名2] INTO 新しいテーブル名 FROM 元のテーブル1,元テーブル2; SELECT INTOステートメントを使用して、複数のテーブルから新しいテーブルを作成します。SELECT句に続けてフィールド名を記述し、INTO句に新しいテーブル名を指定して、既存のテーブルから新しいテーブルを作成します。 SELECT句には、元となるテーブルのフィールド名だけでなく、関数の戻り値を指定することもできます。フィールド名を記述するときは、どのテーブルのフィールドかを明確に記述します。既定では、新しいテーブルのフィールド名やデータ型はそのフィールドの元のテーブルの属性が引き継がれて作成されます。SELECT句の後に関数の戻り値を指定したり、元のテーブルとフィールド名を変更したい場合は、ASキーワードを使用して新しいテーブルのフィールド名を指定することができます。 新しく作成するテーブルと同じ名前のテーブルが既に存在する場合はエラーとなります。 サンプルでは、「社員テーブル」、「給与テーブル」、「部署テーブル」から「平均給与テーブル」という名前の新しいテーブルを作成します。「平均給与テーブル」の、「部署コード」、「部署名フィールド」の属性はそれぞれ「社員テーブル」、「部署テーブル」から引き継がれます。給与の平均値を表すAVG関数の戻り値のフィールドは、ASキーワードを使用して、「平均給与」というフィールド名で作成します。 ●サンプル● '複数のテーブルから新しいテーブルを作成する Public Sub Sample() Dim myDB As Database Dim mySQL As String 'SQLステートメントを定義する mySQL = "SELECT A.部署コード,C.部署名,AVG(給与) AS 平均給与 " & _ "INTO 平均給与テーブル " & _ "FROM 社員テーブル A,給与テーブル B,部署テーブル C " & _ "WHERE A.社員コード=B.社員コード " & _ "AND A.部署コード=C.部署コード " & _ "GROUP BY A.部署コード,C.部署名;" 'カレントデータベースを変数に代入する Set myDB = CurrentDb 'SQLを実行する myDB.Execute mySQL End Sub