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

お世話になります。
ADO接続でAccessにUpdateするときの構文エラーについて教えてください。カンマを含まれている文字列をUpdateするときにエラーになっているようです。

下記SQLを処理すると、「構文エラー:演算子がありません」と表示されます。
SQL = "Update 調査 set Name='" & Jname & "',Other=" & ot_cnt & ",Total=" & pa_cnt & ",check=true where PN='" & PN & "'"

Jnameには日本語の文字列が入るのですが、そこにカンマ(,)が入っているとエラーとなるようです。
例:Jnameに「あいうえお」はOK
  Jnameに「あい,うえお」はNG

カンマも含めてUpdateしたいのですが、どのように記述したらいいでしょうか?

よろしくお願いします。

A 回答 (3件)

ダブルクオートを重ねてみてください。


×"あいうえ"お"
○"あいうえ""お"

結果:あいうえ"お

入力された文字列に対してreplace関数を使うといいかもしれません。
 S = 入力文字列
 S = Replace(S,"""","""""")
もしくは
 S = Replace(S,Chr(34),Chr(34) & Chr(34))
    • good
    • 0
この回答へのお礼

ありがとうございます。
無事解決出来ました。

ご丁寧に回答頂きありがとうございました。

お礼日時:2008/11/05 10:23

私が勘違いして変な質問をしてしまいました。


で、aspで同じような環境を作ってやってみたのですが、正しく更新されるようです。

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "odbcリンク名"
S= "ら,ら,ら"
Conn.Execute "update 調査 set [Name]='" & S & "' Where PN = 'A'"

Set sqlSet = Server.CreateObject("ADODB.Recordset")
sqlSet.Open "select * from 調査",Conn,1,3
Do Until sqlSet.EOF
Response.Write sqlSet("Name").Value & "<br>" & vbcrlf
sqlSet.MoveNext
Loop
sqlSet.Close
Conn.Close

「,カンマ」が入ってるとエラーになるのではなく、「'シングルクォート」とか「"ダブルクォート」だったりしませんか?

この回答への補足

ありがとうございます。

もう一度確認したところ、確かにカンマは問題ありませんでした。
「"ダブルクォート」がエラーの原因だったようです。

処理としては、やはりAccessに取り込みたいのですが記述する方法はあるでしょうか?

補足日時:2008/11/04 17:07
    • good
    • 0

どの環境からmdbにデータをUpdateしているのでしょうか?


Accessであれば特にエラーは出ないようですが?

この回答への補足

ありがとうございます。

Windows2003サーバ上で、ODBCにこのWebサイトで使うAccessを登録しています。

この補足で足りているでしょうか?

補足日時:2008/11/04 15:17
    • good
    • 0

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