電子書籍の厳選無料作品が豊富!

SQLの更新で不明な点があります。
strSQL = "UPDATE LINK SET 備考 ='" & B & "' WHERE 工番=" & CStr(j) & ";"

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

A 回答 (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) & ";"
    • good
    • 0
この回答へのお礼

早速のご回答 ありがとうございました。
しかも、例文付きで 大変助かりました。

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

お礼日時:2002/08/12 12:23

DAOやADOであれば、Parametersコレクション、Parameterオブジェクトを使用すれば、設定したい文字列の内容を気に

することなくレコードを更新できます
    • good
    • 0

下記のようにしてください。



strSQL = "UPDATE LINK SET 備考 ='" & Replace(B,"'","''") & "' WHERE 工番=" & CStr(j) & ";"

Replace(B,"'","''")
の意味は、文字列変数Bのなかに"'"があったら、"''"に置換するという意味になります。

この回答への補足

回答ありがとうございます。
実施したのですが
゛コンパイルエラー Sub またはFunction が定義されていません ゛
と出てきます。

何か基本的なことが抜けているのでしょうか?

補足日時:2002/08/12 11:28
    • good
    • 0

>例えば 24' (24インチを意味する) と表示したいのです。


この様にしてみてください。→ 24''

書式で書けば、備考 = '24''' となります。

この回答への補足

ご回答 ありがとうございます。 早速やってみましたが実行できました。
もう1点教えてほしいのですが
元のデータを変更することなく 実行できる方法はあるでしょうか?

例えば、24' のデータがあれば、更新対象は24" と更新し
元のデータは24'のままにしておく。
 (ちなみに、更新されるテーブルは一次的に使います)
ロジックでは 項目中に 'が あれば " に変更する…?

なければ、元のデータ中の'を全て "に変更しますが、どうでしょうか?

補足日時:2002/08/12 11:00
    • good
    • 0

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