accessデータベース操作 PR

Accessで使える「条件付きUPDATEクエリ」の基本と実例

記事内に商品プロモーションを含む場合があります

導入文

データベースを運用していると、 「特定の条件に合うデータだけまとめて更新したい」 という場面がよくあります。

そんな時に使うのが 条件付きUPDATEクエリ です。

この記事では、Access(SQL)で使える条件付きUPDATEの基本構文から、実務でよく使う具体例までを分かりやすく解説します。

■ 条件付きUPDATEとは?

条件付きUPDATEとは、

「WHERE句で条件を指定して、該当するレコードだけ更新するSQL文」

のことです。

例えば:

  • 金額が1000円以上のデータだけ更新
  • 今日以前の日付のデータだけフラグを立てる
  • 特定のIDのレコードのみ修正

といった処理が可能になります。

■ 基本構文

UPDATE テーブル名
SET フィールド名 = 更新後の値
WHERE 条件;

■ シンプルな例

① 特定条件のレコードだけ更新

売上テーブルで、金額が1000円以上のものを「済」にする場合

UPDATE 売上
SET 状態 = “済”
WHERE 金額 >= 1000;

② 複数条件(AND / OR)

60歳以上かつ東京在住の顧客をゴールド会員にする

UPDATE 顧客
SET 会員区分 = “ゴールド”
WHERE 年齢 >= 60 AND 地域 = “東京”;

大阪または京都の顧客にフラグを立てる

UPDATE 顧客
SET フラグ = 1
WHERE 地域 = “大阪” OR 地域 = “京都”;

③ 他フィールドの値を使って更新

在庫数を1減らす

UPDATE 商品
SET 在庫数 = 在庫数 – 1
WHERE 商品ID = 10;

■ 日付条件の例(Access用)

今日より前の日付のレコードを更新する

UPDATE 注文
SET ステータス = “期限切れ”
WHERE 注文日 < Date();

■ 実行前に必ずSELECTで確認する

UPDATE文は非常に強力な命令です。 WHERE句を間違えると、全件更新される危険があります。

必ず事前にSELECTで対象データを確認しましょう。

SELECT *
FROM 売上
WHERE 金額 >= 1000;
結果が正しければ、その条件をUPDATEに使います。

■ VBAから実行する場合

Access VBAで条件付きUPDATEを実行する例です。
CurrentDb.Execute _
“UPDATE 売上 SET 状態 = ‘済’ WHERE 金額 >= 1000;”, dbFailOnError

■ よくあるミス

❌ WHERE句を書き忘れる
UPDATE 売上
SET 状態 = “済”;
→ 全レコードが更新されます(非常に危険)
❌ 条件が広すぎる
意図しないレコードまで更新されることがあります。

■ 実務でよく使うパターン

  • 配信日が今日以前 → 配信済 = True
  • 金額が0 → 無効フラグ = True
  • 未入力データ → 初期値を自動設定
  • 月末締め処理で一括更新
  • ■ まとめ

    条件付きUPDATEは、

    • データを一括で正確に更新できる
    • 手作業より安全で効率的
    • SELECTで事前確認が重要

    という特徴があります。

    Accessを業務で使うなら、必ず覚えておきたいSQL文のひとつです。

この記事が、AccessやSQLの運用に役立てば幸いです。