dポイントプレゼントキャンペーン実施中!

お世話になります。
Access2000のVBAで、教えて頂ければと思います。

下記の「テーブルA」がある状態で、
「ID=1」の「フィールド:名前」の値を「名称なし」に更新したいのですが、
どのようにVBAで記載したらよいでしょうか?

------テーブルA-------
ID  名前
1 やまだ
-----------------------

お手数ですが何卒宜しくお願いします。

A 回答 (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

とか。
    • good
    • 0
この回答へのお礼

>Dim con As ADODB.Connection
>Set con = Application.CurrentProject.Connection
>con.Execute "UPDATE テーブルA SET テーブルA.名前 = ""名称なし"" WHERE テーブルA.ID >= 1"
ありがとうございます!!

お礼日時:2013/08/08 14:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!