Share via


Access SQL を使用してテーブルからレコードを挿入、更新、削除する

テーブルにレコードを挿入する

テーブルにレコードを追加するためのメソッドには、大きく分けて 2 つの種類があります。 レコードを 1 つずつ追加するものと、多数のレコードを同時に追加するものの 2 種類です。 どちらの場合でも、レコードの追加には SQL ステートメント INSERT INTO を使用します。 INSERT INTO ステートメントは、一般に追加クエリと呼ばれます。

1 つのレコードをテーブルに追加するには、データを入れるフィールドをフィールド リストを使って定義してから、フィールドに入れるデータを値リストで指定する必要があります。 値リストを定義するには、VALUES 句を使用します。 たとえば、次のステートメントは値 "1"、"Kelly"、および "Jill" を、それぞれ [CustomerID]、[Last Name]、および [First Name] の各フィールドに挿入します。

INSERT INTO tblCustomers (CustomerID, [Last Name], [First Name]) 
    VALUES (1, 'Kelly', 'Jill') 

レコードが含むことのできるすべての値を指定する場合に限り、フィールド リストを省略できます。

INSERT INTO tblCustomers 
    VALUES (1, Kelly, 'Jill', '555-1040', 'someone@microsoft.com') 

多数のレコードを一度にテーブルに追加するには、INSERT INTO ステートメントを SELECT ステートメントと共に使用します。 別のテーブルからレコードを挿入するときは、挿入される各値のデータ型と、挿入先フィールドのデータ型の間に互換性が必要です。

次の INSERT INTO ステートメントは、tblOldCustomers テーブルの [CustomerID]、[Last Name]、および [First Name] フィールドに含まれるすべての値を tblCustomers テーブルの対応するフィールドに挿入します。

INSERT INTO tblCustomers (CustomerID, [Last Name], [First Name]) 
    SELECT CustomerID, [Last Name], [First Name] 
    FROM tblOldCustomers 

2 つのテーブルの構造が完全に同じである場合は、フィールド リストを省略できます。

INSERT INTO tblCustomers 
    SELECT * FROM tblOldCustomers 

テーブル内のレコードを更新する

現在テーブル内にあるデータを変更するには、一般に更新クエリと呼ばれる UPDATE ステートメントを使用します。 UPDATE ステートメントでは 1 つ以上のレコードを更新することができ、通常は次のような形式です。

UPDATE table name   
    SET field name  = some value

テーブル内のすべてのレコードを更新するには、テーブル名を指定してから、変更する 1 つ以上のフィールドを SET 句を使って指定します。

UPDATE tblCustomers 
    SET Phone = 'None' 

変更するレコードの数を制限するために、ほとんどの場合、WHERE 句を使って UPDATE ステートメントを修飾します。

UPDATE tblCustomers 
    SET Email = 'None' 
    WHERE [Last Name] = 'Smith' 

テーブルからレコードを削除する

現在テーブル内にあるデータを削除するには、一般に削除クエリと呼ばれる DELETE ステートメントを使用します。 この処理のことをテーブルの切り捨てとも呼びます。 DELETE ステートメントでは 1 つ以上のレコードをテーブルから削除することができ、通常は次のような形式です。

DELETE FROM table list

DELETE ステートメントではテーブル構造は削除されず、その時点でテーブル構造上に存在しているデータだけが削除されます。 すべてのレコードをテーブルから削除するには、DELETE ステートメントを使用して、すべてのレコードを削除する対象の 1 つ以上のテーブルを指定します。

DELETE FROM tblInvoices 

削除するレコードの数を制限するために、ほとんどの場合、WHERE 句を使って DELETE ステートメントを修飾します。

DELETE FROM tblInvoices 
    WHERE InvoiceID = 3 

テーブル内の特定のフィールドに入っているデータだけを削除する場合、UPDATE ステートメントを使用して、対象のフィールドに Null 値を設定します。ただしこの方法を使用できるのは、対象のフィールドが Null 値を許容する場合に限られます。

UPDATE tblCustomers  
    SET Email = Null 

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。