• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB.NETのOleDbCommandにて文字列を操作する際、文字列にダブルクォーテーションが入っていた場合は?)

VB.NETのOleDbCommandで文字列を操作する際にダブルクォーテーションの対処方法

このQ&Aのポイント
  • VB.NETのOleDbCommandを使用して文字列を操作する際に、文字列にダブルクォーテーションが入っている場合の対処方法を教えてください。
  • 特に、mdbのT_テーブルの「名称」というフィールドにダブルクォーテーションが入ることがあり、その場合に「構文が不正です」エラーが発生してしまいます。
  • 現在のプログラムでは、ダブルクォーテーションが入った文字列を正しく操作する方法がわかりません。どのように対処すればよいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

たびたびすみません。ANo.1です。 ごめんなさい、Accessで直接試してみたんですが、副問合せは使わなくてもいけそうですね(汗) すみませんです… とりあえず、 表示名称 = Left( """ & Str_Hyouji & """,36) のあたりのクォーテーションを修正して実行しなおしてみてください。 (あと、Len_??? は数値でしょうから、出来ればCStrかCType(???,String)で  変換掛けておいた方がいいかもしれません)

ryozyryozy
質問者

お礼

色々とありがとうございました。 まぁなんとかいけました。。。

その他の回答 (2)

回答No.2

ANo.1です。すみません勘違いしてました。 で、そのUpdate文ですが、 Left(名称,… の「名称」ってのはフィールド名ですよね? そこにフィールド名を直接関連付けるには、副問合せを使う等しないと 不可能だと思います。 (副問合せの結果に直接関数を適用ってのは、やった事無いけど…普通に出来るのかなぁ?) 今回の場合は、「名称」を使う部分が多いので、先に該当の「名称」を取得して その文字列を直接編集した方が楽だと思います。 "update T_テーブル set 商品名称 = Left('" & meisyou & "', " & CStr(Len_Shohin) & … みたいな感じで。 (meisyou は、取得した文字列を格納した変数) あ、あと、SQL文で文字列の指定はシングルクォートですよ。 Left( """ & Str_Hyouji & """,36) とかは直さないといけません。 …ん? そもそもStr_Hyouji を「SQL文で」編集する必要は無いような…?

回答No.1

"""(ダブルクォーテーション3つ)で、実際の文字列として " (ダブルクォーテーション1つ)を、 """"(同4つ)で実際には ""(同2つ)を指定する事になります。 試しに、 MessageBox.Show("""Test"""" ") を貼り付けたプログラムを実行してみて下さい。分かると思います。 なお、この書き方だと分かりにくい、という場合は、Chr(34) (=Chr(&H22)) を使うという手もあります。 例:MessageBox.Show(Chr(34) & "Test" & New String(Chr(&H22), 2))

ryozyryozy
質問者

補足

ご回答ありがとうございます。 それはわかるんですが、今回の場合はどのようにすればいいですか? あらかじめ全レコードで「名称」を検索してダブルクォーテーションが あるかどうかを判断して、その場合にどこかのフィールドにフラグをたてて UPDATEのときに読み飛ばすぐらいしか思いつかないのですが。。。 宜しくお願いします。

関連するQ&A