UPDATE ステートメント (Microsoft Access SQL)

適用先: Access 2013、Office 2013

指定したテーブルのフィールドの値を指定の抽出条件に従って変更する更新クエリを作成します。

構文

UPDATE table SET newvalue WHERE criteria;

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

パーツ

説明

table

変更するデータを含むテーブルの名前。

newvalue

更新後のレコードの特定のフィールドに挿入する値を決めるための式です。

criteria

更新するレコードを抽出するための式。 この式の条件を満たすレコードのみが更新されます。

注釈

UPDATE は、多数のレコードを変更する場合や、変更するレコードが複数のテーブルに含まれている場合に特に便利です。

UPDATE ステートメントでは、複数のフィールドを同時に変更できます。 次の例では、輸送先が英国であるレコードの Order Amount フィールドの値を 10%、Freight フィールドの値を 3%、それぞれ増やしています。

UPDATE Orders 
SET OrderAmount = OrderAmount * 1.1, 
Freight = Freight * 1.03 
WHERE ShipCountry = 'UK';

重要

  • UPDATE ステートメントは、結果セットを作成しません。 また、更新クエリを使用してレコードを更新すると、元に戻せません。 どのレコードが変更されるかをあらかじめ確認する場合は、更新クエリを実行する前に、同じ抽出条件を使用する選択クエリを実行してその結果を調べてください。
  • データのバックアップ コピーを常に維持してください。 間違ったレコードを更新した場合、バックアップ コピーからレコードを元に戻すことができます。

この使用例では、現在 ReportsTo の値が 2 であるすべての従業員レコードについて、ReportsTo フィールドの値を 5 に変更します。

    Sub UpdateX() 
     
        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") 
         
        ' Change values in the ReportsTo field to 5 for all  
        ' employee records that currently have ReportsTo  
        ' values of 2. 
        dbs.Execute "UPDATE Employees " _ 
            & "SET ReportsTo = 5 " _ 
            & "WHERE ReportsTo = 2;" 
             
        dbs.Close 
     
    End Sub