INSERT INTO ステートメント

適用先
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

1 つのテーブルに 1 つのレコードまたは複数のレコードを追加します。 これは、追加クエリと呼ばれます。

構文

複数のレコードを追加するクエリは、次のとおりです。

INSERT INTO ターゲット [(field1[, field2[, ...]])][IN externaldatabase]
SELECT [source.]field1[, field2[, ...]
FROM tableexpression

1 つのレコードを追加するクエリは、次のとおりです。

INSERT INTO ターゲット [(field1[, field2[, ...]])]
VALUES (value1[, value2[, ...])

INSERT INTO ステートメントでは次の引数を使用します。

引数 説明
target レコードを追加するテーブルまたはクエリの名前です。
field1, field2 target 引数に続く場合、データを追加するフィールド名です。source 引数に続く場合、データを取得するフィールド名です。
externaldatabase 外部データベースへのパス。 パスの説明については、IN 句を参照してください。
source レコードをコピーするテーブルまたはクエリの名前です。
tableexpression レコードを挿入するテーブルの名前です。 この引数は、1 つのテーブル名、INNER JOIN、LEFT JOIN、または RIGHT JOIN 操作の結果の複合、または保存されたクエリのいずれかが可能です。
value1, value2 新しいレコードの特定のフィールドに挿入する値。 各値は、リスト内の値の位置に対応するフィールドに挿入されます。 value1 は新しいレコードの field1 に挿入され、 value2field2 に挿入されます。 値はコンマで区切り、テキスト フィールドを引用符 (' ') で囲む必要があります。

      

解説

INSERT INTO ステートメントを使用すると、前述のとおり、単一のレコードを追加するクエリを使用してテーブルに 1 つのレコードを追加することができます。 この場合、コードではレコードの各フィールドの名前と値を指定します。 値を割り当てるレコードの各フィールドと、そのフィールドの値を指定する必要があります。 各フィールドを指定しないと、欠落している列には、既定値または Null 値が挿入されます。 レコードは、テーブルの末尾に追加されます。

INSERT INTO を使用すると、別のテーブルまたはクエリから SELECT...FROM 句を使用して、前述の複数のレコードを追加するクエリ構文のとおり、レコードのセットを追加できます。 この場合、SELECT 句は指定した target テーブルに追加するフィールドを指定します。

source または target テーブルでは、テーブルまたはクエリを指定できます。 クエリを指定すると、Microsoft Access データベース エンジンは、クエリで指定されたすべてのテーブルにレコードを追加します。

INSERT INTO はオプションですが、含めた場合、SELECT ステートメントに優先されます。

宛先テーブルに主キーが含まれている場合は、主キー フィールドまたはフィールドに一意の Null 以外の値を追加してください。そうでない場合、Microsoft Access データベース エンジンはレコードを追加しません。

AutoNumber フィールドがあるレコードをテーブルに追加するときに、追加したレコードの番号を再割り当てしたい場合、クエリには AutoNumber フィールドは入れないでください。 AutoNumber フィールドは、フィールドの元の値を維持したい場合のみ含めるようにしてください。

IN 句を使用し、別のデータベースのテーブルにレコードを追加してください。

新しいテーブルを作成するには、SELECT... を使用します。代わりに INTO ステートメントを使用してテーブル作成クエリを作成します。

追加クエリを実行する前に追加するレコードを確認するには、まず、同じ選択条件を使用する選択クエリの結果を実行して表示します。

追加クエリは、1 つ以上のテーブルから別のテーブルにレコードをコピーします。 追加するレコードを含むテーブルは、追加クエリの影響は受けません。

別のテーブルから既存のレコードを追加する代わりに、VALUES 句を使用して、1 つの新しいレコード内の各フィールドの値を指定できます。 フィールド リストを省略した場合、VALUES 句にはテーブル内のすべてのフィールドの値を含める必要があります。それ以外の場合、INSERT 操作は失敗します。 作成する追加のレコードごとに、VALUES 句を指定して追加の INSERT INTO ステートメントを使用します。