Accessクエリ入門シリーズ7回目の今回は、更新クエリについて解説していきます。
もくじ
更新クエリはSQLのUPDATE文に相当する機能です。
更新クエリをマスターできれば、指定した箇所のデータ修正を一括で行えるようになります。
日常のExcel作業でデータの修正に悩まされている方は、Access更新クエリの使い方を覚えるだけでも劇的に効率を向上させることができます。
本記事では更新クエリの作り方だけでなく、クエリを更新する時にやりがちな失敗の例とその対策もまとめていきます。
更新クエリの使い方
更新クエリを使ってデータを変更させる方法は、大きく分けて下の2つの方法に分かれます。
- 対象テーブルだけで完結させる
- 別テーブルからのデータを反映させる
この2種類の更新クエリの具体的な方法と例を、Accessの画像を使って説明していきます。
対象テーブルだけで完結させる方法
まずは対象テーブルだけで更新を完結させる方法を解説します。
ここに部品ごとの価格一覧テーブル「T99_部品単価一覧」があります。
取引所の中の一つである「ホームサイド」のみ商品単価を10%アップさせてみましょう。
さっそく新しいクエリを作り、選択クエリから更新クエリに切り替えます。
デザイングリッドの項目が切り替わりました。
価格フィールドの反映内容を「レコードの更新」に入力します。
発注先の絞り込みも忘れないようにしましょう。
実行ボタンをクリックします。
確認ダイアログが表示されますが、そのまま続けます。
対象の取引先分の価格が更新されました。
更新前と比べても、正しく反映されていることが分かります。
更新クエリは選択クエリとアイコンの形が異なるので、再編集でクエリを探すときの目印にしてください。
更新クエリも他のアクションクエリと同じように、「開く」を選ぶと更新が実行されます。
中身を編集したいときは「デザインビュー」を選びましょう。
別テーブルのデータを反映させる方法
発注記録が格納されたテーブル「T99_発注履歴データ」です。
「T99_部品単価一覧」のデータを使い、10%値上げした「ホームサイド」の単価と金額実績も反映させていきます。
空のデザインビューを開き、更新先のテーブルと参照元のテーブルの両方を中に入れます。
正しく更新させるためにも、両テーブル間のフィールド間は忘れず連結させておきましょう。
次に、デザイングリッドを編集していきます。
「フィールド」と「テーブル」には、更新先のテーブルを選びます。
「レコードの更新」には参照元テーブルのフィールドを入力します。
フィールドをそのまま参照するだけでなく、複数のフィールドを参照して関数を当てはめることもできます。
関数を使う場合に気を付けたいのは、文字数の多くなるために入力ミスが起こりやすくなることです。
入力ミスを防ぐためにも、入力支援機能をうまく活用しましょう。
実行ボタンをクリックすると確認ダイアログが表示されますが、そのまま続けましょう。
ここでは条件抽出をかけていないので、全レコード(14件)が更新対象です。
更新先のクエリを確認すると、対象の取引先のみ単価と金額が変更されました。
更新クエリを使うときの注意点
Accessの更新クエリの設定を間違えた場合、エラーで先に進めなかったり、取返しのつかないミスを犯してしまうこともあります。
これから、Accessの更新クエリを使う時の注意点を説明します。
集計関数を使ったクエリのデータは更新できない
更新クエリを実行しようとすると、下のようなエラーが発生して先に進めないこともあります。
このエラーは、集計関数が入ったクエリを参照データとして更新するときに発生するようです。
参照データの「Q99_月別集計」を確認すると、集計関数を使用しているのが分かります。
クエリをテーブルに作り替えれば、エラーを発生させずに更新クエリを実行できます。
ミスした場合は元に戻せない
Accessの更新クエリはテーブルのデータを直接書き換えます。
そのため、一度書き換えてしまうと元に戻すことはできません。
特に人の手で更新クエリを実行する時には、データをバックアップさせるなどの対策を前もって打っておきましょう。
テーブルをそのままバックアップするだけなら、コピペ作業で簡単に実行できます。
まとめ
今回はAccessの更新クエリの使い方と注意点を解説しました。
Accessの更新クエリはSQLのUPDATE文に相当する機能で、指定した箇所のデータ修正を一括で行える便利な機能です。
Excelのデータ修正に日頃から悩まされている方は、Accessの更新クエリを部分的に使うことで作業時間を短くすることもできるでしょう。
一方、Accessの更新クエリの設定を間違えると、思わぬ更新がされてしまい、元に戻せないという大きな失敗を起こす可能性もあります。
導入前の試作中は、特にバックアップを取るなどの処置を行っておきましょう。
次回の第8回は、データ追加クエリを解説してきます。