AccessのVBAでSQLのUPDATE WHEREを使い条件に合ったレコードのみ更新|フォーム実行例

WHERE文以下で条件に合ったレコードを指定する

UPDATE テーブル名 SET フィールド名=値 WHERE フィールド名=条件値
WHERE文以下で条件に合ったレコードを指定しています。
これを指定しないと、全レコードが更新されます。



BackHome BackSQL Tips

サンプルソフト
更新したい「部品コード」を入力します。
「月末在庫」「生在庫」「仕掛在庫」をテキストボックスに入力し、「実行」ボタンをクリックすると、「T_在庫管理」テーブルの指定部品コードのレコードが更新されます。
在庫フィールドは長整数型なので、数値を入力する必要があります。
もし文字を入力し実行すると、「実行時エラー '13' 型が一致しません。」のエラーメッセージが表示されます。

一致する「部品コード」が見つからない場合は、何も変更されません。

データ入力フォーム

Option Compare Database

Private Sub コマンド8_Click()
    Dim SQL As String
    Dim n1 As Long
    Dim n2 As Long
    Dim n3 As Long
    If IsNull(Me!テキスト4) Then
        MsgBox "部品コードを入力してください。"
        Exit Sub
    End If
    n1 = Nz(Me!テキスト1, 0)
    n2 = Nz(Me!テキスト2, 0)
    n3 = Nz(Me!テキスト3, 0)
    SQL = "UPDATE T_在庫管理 SET 月末在庫=" & n1 & ",生在庫=" & n2 & ",仕掛在庫=" & n3 & " WHERE 部品コード='" & Me!テキスト4 & "'"
    CurrentDb.Execute SQL, dbFailOnError
End Sub

サンプルソフトのダウンロード

BackHome BackSQL Tips

Copyright(C) FeedSoft