- ベストアンサー
Accessのテーブルの値を更新したい
お世話になります。 Access2000のVBAで、教えて頂ければと思います。 下記の「テーブルA」がある状態で、 「ID=1」の「フィールド:名前」の値を「名称なし」に更新したいのですが、 どのようにVBAで記載したらよいでしょうか? ------テーブルA------- ID 名前 1 やまだ ----------------------- お手数ですが何卒宜しくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
どこがわからないのでしょうか。。。 ADO でパラメータ クエリを実行するところ? ADO でベタに書いた SQL を実行するところ? SQL 文の組み方? とりあえず Access のクエリ ビルダーで更新クエリぐらい作れるだろうから、SQL 文の解説は無しでも OK ですよね? ベタに書くと UPDATE テーブルA SET テーブルA.名前 = "名称なし" WHERE テーブルA.ID = 1 となるので、 Dim con As ADODB.Connection Set con = Application.CurrentProject.Connection con.Execute "UPDATE テーブルA SET テーブルA.名前 = ""名称なし"" WHERE テーブルA.ID = 1" ってところか。 指定する ID の値と、書き換える新しい名前の文字列を指定できるようにするなら動的にパラメーター クエリを作って実行するって感じで、 Dim con As ADODB.Connection Set con = Application.CurrentProject.Connection Dim cmd As ADODB.Command Set cmd = New ADODB.Command Dim param As ADODB.Parameter Dim sql As String sql = "UPDATE テーブルA SET テーブルA.名前 = @newName WHERE テーブルA.ID = @id" With cmd .ActiveConnection = con .CommandText = sql .CommandType = adCmdText .Prepared = True End With Set param = cmd.CreateParameter("@newName", adVarChar, adParamInput, 10) param.Value = "名称なし" cmd.Parameters.Append param Set param = cmd.CreateParameter("@id", adInteger, adParamInput) param.Value = 1 cmd.Parameters.Append param cmd.Execute とか。
お礼
>Dim con As ADODB.Connection >Set con = Application.CurrentProject.Connection >con.Execute "UPDATE テーブルA SET テーブルA.名前 = ""名称なし"" WHERE テーブルA.ID >= 1" ありがとうございます!!