• ベストアンサー

SQLの更新の時、記号 ’ について

SQLの更新で不明な点があります。 strSQL = "UPDATE LINK SET 備考 ='" & B & "' WHERE 工番=" & CStr(j) & ";" LINK の備考1に 変数Bの値を更新したいのですが この時 Bの中に 'の記号が入っていれば"オブジェクトが無効"と出てきます。 例えば 24' (24インチを意味する) と表示したいのです。 'の記号を変換するしか ないのでしょうか? ※ 質問内容が足りなければ再度 詳しく質問したいと思います。

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

  • ベストアンサー
  • mfuku
  • ベストアンサー率50% (173/345)
回答No.4

再び、#2の者です。 > ゛コンパイルエラー Sub またはFunction が定義されていません ゛ と出てきます。 あれ? VBのバージョンは何でしょうか? Replace関数はVB6.0からサポートされた関数ですので、VB5.0以前でしたら、コンパイルエラーになってしまうかもしれません。 もし、VB5.0以前でしたら、Replace関数に代わるものを自前で作成する必要があります。 下記のプロシージャを定義し、 Public Function pfncReplaceString(vntSource As Variant, str1 As String, str2 As String) As String Dim strTmp As String Dim intSt As Integer If IsNull(vntPar) Then strTmp = "" Else strTmp = CStr(vntPar) End If intSt = 1 Do intSt = InStr(intSt, strTmp, str1) If intSt = 0 Then Exit Do End If strTmp = Left(strTmp, intSt - 1) & str2 & Mid(strTmp, intSt + Len(str1)) intSt = intSt + Len(str2) Loop pfncReplaceString = strTmp End Function 下記のように、pfncReplaceStringを呼んでください。 strSQL = "UPDATE LINK SET 備考 ='" & pfncReplaceString(B,"'","''") & "' WHERE 工番=" & CStr(j) & ";"

cdma
質問者

お礼

早速のご回答 ありがとうございました。 しかも、例文付きで 大変助かりました。 結果の方は そのまま使用させていただきました。 なんとかメインの問題は解決しました。 ※ というのは、他にも 疑問点が出てきましたので   別途質問させて頂きたいと思います。   そちらの方も ご回答 お願いできたら幸いです。  今後共 宜しくお願い致します。

その他の回答 (3)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.3

DAOやADOであれば、Parametersコレクション、Parameterオブジェクトを使用すれば、設定したい文字列の内容を気にすることなくレコードを更新できます

  • mfuku
  • ベストアンサー率50% (173/345)
回答No.2

下記のようにしてください。 strSQL = "UPDATE LINK SET 備考 ='" & Replace(B,"'","''") & "' WHERE 工番=" & CStr(j) & ";" Replace(B,"'","''") の意味は、文字列変数Bのなかに"'"があったら、"''"に置換するという意味になります。

cdma
質問者

補足

回答ありがとうございます。 実施したのですが ゛コンパイルエラー Sub またはFunction が定義されていません ゛ と出てきます。 何か基本的なことが抜けているのでしょうか?

  • BlueRay
  • ベストアンサー率45% (204/453)
回答No.1

>例えば 24' (24インチを意味する) と表示したいのです。 この様にしてみてください。→ 24'' 書式で書けば、備考 = '24''' となります。

cdma
質問者

補足

ご回答 ありがとうございます。 早速やってみましたが実行できました。 もう1点教えてほしいのですが 元のデータを変更することなく 実行できる方法はあるでしょうか? 例えば、24' のデータがあれば、更新対象は24" と更新し 元のデータは24'のままにしておく。  (ちなみに、更新されるテーブルは一次的に使います) ロジックでは 項目中に 'が あれば " に変更する…? なければ、元のデータ中の'を全て "に変更しますが、どうでしょうか?

関連するQ&A

専門家に質問してみよう