Excel で同等のことをやりたいユーザーさんがいらして、関数で対応する例をご紹介したのですが、Access なら楽なのになぁ、と思い、こちらにも残しておくことにしました。

更新クエリという種類のアクション クエリを利用すると、テーブルのデータ (Excel っぽくいうとセルの値) を更新できます。

たとえば、「商品の単価を 10 円ずつアップしたい」とか、「A という文字列を B という文字列に変更したい」というとき、1 つずつ修正するのはたいへんです。
もちろん [検索と置換] でも対応できるけれど、定期的に同じような修正が発生する (可能性がある) という場合は、処理をするための更新クエリを作成しておいて対応したほうがスムーズです。

元データのテーブルと更新情報のテーブル

今回は、更新情報をまとめたテーブルを用意しておき、その内容で既存のテーブルを更新するための更新クエリを作成することを例に手順を載せておきます。

「T_社員」というテーブルで社員の名前や住所が管理されており、自宅の住所などが変更されている場合、新しい情報に更新したいとします。


更新情報を [T_更新情報] テーブルにまとめています。
今回は、3 名の社員に変更があったとして、3 レコードを更新したいと想定しています。
更新結果がわかりやすいように、[都道府県] と [住所] の値を “変更” という文字列にし、[電話番号] を削除してあります。

更新クエリの作成

更新クエリは、テーブルのレコードの内容を更新します。
更新したら元に戻せませんから、ちょっとやってみよう!なんていう軽い気持ちだとしても、データベースのバックアップをとるなど、コピーでためしてからやってくださいね。

    1. リボンの [作成] タブの [クエリ] グループの [クエリ] デザインをクリックします。


    2. [テーブルの表示] ダイアログ ボックスで更新したいテーブル (T_社員) と、更新情報がまとめられているテーブル (T_更新情報) を選択して [追加] をクリックします。


    3. 2 つのテーブルの共通フィールドで結合します。
      ここでは [社員コード] フィールドで結合しています。



    4. リボンの [クエリ ツール] の [デザイン] タブの [クエリの種類] で [更新] をクリックします。


    5. [T_社員] テーブル (更新したいテーブル) の更新したいフィールドを選択して、デザイン グリッドに配置します。



    6. デザイン グリッドの [レコードの更新] に、どのような内容に更新したいのかを記述します。

      ほかのテーブルの内容で更新したい場合は、

      [更新したい情報の入っているテーブル]![更新情報の入っているフィールド名]

      となるようにフィールドを指定します。

      たとえば、[郵便番号] フィールドを、[T_更新情報] テーブルの [郵便番号] フィールドの内容で更新したい、という場合は、[郵便番号] フィールドの [レコードの更新] に、「[T_更新情報]![郵便番号]」と記述します。


      このとき、テーブル名の頭文字を入力するとオブジェクトの一覧が表示され、[↓] キーで選択して [Tab] キーで指定できます。


      また、テーブル名の後ろに半角の「!」を入力すると、フィールド名の候補が表示されます。
      こちらも [Tab] キーで指定できます。


    7. 更新したいすべてのフィールドの [レコードの更新] にテーブル名とフィールド名を指定します。


    8. デザイン グリッドで指定した処理を実行します。

      リボンの [クエリ ツール] の [デザイン] タブの [結果] グループの [実行] をクリックします。


    9. 確認メッセージが表示されます。

      (本当にテーブルを更新してもよい場合は) [はい] をクリックします。
      (しつこいようですが戻せません。バックアップをとってからにしてください) 


    10. この更新処理を定期的に行う場合は、クエリを保存しておきます。
       [名前を付けて保存] ダイアログ ボックスは、クエリのデザイン ビューで [F12] キーを押して表示できます。


    11. 更新クエリを実行するとテーブルの内容が更新されます。

      [T_社員] テーブルを確認すると、該当するレコードのフィールドの内容が更新されていることがわかります。

Access をまったく使用したことのないユーザーさんには、上記の手順や解説では不足があると思いますが、テーブルってなに、クエリってなに、ということが分かっていればできるかな、くらいの手順で書いておきました。

データベースのメンテナンスをしたいのだから、データベース専用製品ならわりと手軽にできる、ということを書いておきたかったのです。
(これ、Excel で関数だけで対応するの、結構たいへんです。)

石田 かのこ