データベースを運用してからレコードの数が増えてくると、一部データを修正しないといけなくなった場合の処置が大変になります。ある条件に即したレコードのデータだけを修正するとなると、相当の労力をかけなければなりません。SQL文にはUPDATE構文があり、この問題を解決してくれますが、Accessでは更新クエリを活用することで、SQL文を記述しなくてもこの問題を解決することができます。
サンプルデータについて
今回のサンプルデータを表1に示しました。ここで、テーブル名称は「所属テーブル」として新規に作成し、「氏名」と「所属」フィールドは短いテキスト型に、「年齢」フィールドは数値型としています。
表1 サンプルデータ
氏名 | 年齢 | 所属 |
鈴木 一郎 | 45 | 拡販チーム |
渡辺 次郎 | 30 | 拡販チーム |
山田 三朗 | 56 | 拡販チーム |
佐藤 四巳 | 58 | 事務チーム |
堀越 五作 | 43 | 事務チーム |
米津 六実 | 22 | 企画チーム |
なお、本サンプルデータは、更新クエリの機能を紹介するために用意したもので、本来は正規化を考慮したテーブル設計をすることでこのような操作は未然に防ぐことができますのでご承知おきください。
更新クエリの作成
まずは、クエリを作成して名称を「更新クエリについて」とし、テーブルの追加で「所属テーブル」を選択します。次に、クエリ設定画面の【フィールド】に「氏名」、「年齢」及び「所属」フィールドを設定します。そして、「デザイン」タブの「更新」アイコンをクリックします。
これにより、画面が切り替わり、図2のように【レコードの更新】項目が選択できるようになります。
これで、更新クエリの初期設定はできましたので、実際にレコード更新に係る設定をしていきましょう。
レコードの更新方法
作成したサンプルデータの内、「拡販チーム」を「販売チーム」と名称変更したとします。このとき、サンプルデータの値を一括して更新する方法を見ていきましょう。
この場合、「所属」フィールドで「拡販チーム」という値の入ったレコードを抽出し、この値を「販売チーム」という値に更新することが更新クエリで実施する内容となります。まずは、【レコードの更新】項目に更新後の値である「”販売チーム”」と入力します。
次に、【抽出条件】項目に、更新対象となるデータの抽出条件を設定するため、「”拡販チーム”」と入力します。これにより、「所属」フィールドに「拡販チーム」と登録されているレコードだけを抽出し、更新クエリの実行により「拡販チーム」の値を「販売チーム」に置き換えることができます。
ここまでの設定ができたら、「デザイン」タブの「実行」アイコンをクリックします。これにより、更新対象のレコード数について、レコードを更新するかの確認ダイアログボックスが表示されますので、「はい」をクリックすると、対象レコードが更新されます。
更新操作後の「所属テーブル」を確認してみてください。この結果、表1記載の「拡販チーム」という値がすべて「販売チーム」に変わっていることが確認できたと思います。今回の場合は、更新対象として、【抽出条件】項目に「拡販チーム」という値を入力しましたが、例えば「年齢」フィールドで「>=40」として抽出条件を設定すれば、 40歳以上の人を対象としてデータ更新をすることもできます。
以上のように、更新対象として必要な条件設定を【抽出条件】項目に設定することで、効率的なデータ更新を実現することができます。
なお、今回の例におけるSQL文は次のようになります。
UPDATE 所属テーブル SET 所属テーブル.所属 = “販売チーム”
WHERE (((所属テーブル.所属)=”拡販チーム”));
ここで、ポイントとなる点は「UPDATE field SET A WHERE B」という構文です。
SQL文ではUPDATE構文を用いることで、WHERE条件に一致したレコードを更新することができます。 このように、データの更新条件を設定することで、業務効率の改善が図れますので、是非更新クエリを活用していただければと思います。
まとめ
今回はデータベースで頻出するデータの更新方法について紹介しました。特に、UPDATE構文を用いることで、条件に合致したレコードのデータだけを修正することができます。Accessでは、更新に係るSQL文を更新クエリを通じて作成してくれますので、是非業務効率の改善に向けて活用していただければと思います。
スポンサーリンク
コメント