マンガでよめる痔のこと・薬のこと

テーブルはテキスト形式なのですが、日本語で例えば LASY’Sと言う
名称をテーブルに作成すると ’ が原因でテーブル更新時にエラーが発生しましたと言うメーセージが出て作成されません。
GWrk_Sql = GWrk_Sql & ",'" & Me.[名称] & "'"
分かる方がいれば教えて下さい。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

Me.[名称]に任意の文字列を入力可能なら、


事前にReplace関数などで「'」を別の文字に置き換えておくことをお勧めします。
SQLインジェクションの対策にもなるので。
例えば、「'」を「\s」にするとか。
他にも「,」や「"」などが危険ですが、同じようにすれば良いです。
※ただし、元の文字に「\」が含まれているとまずいので、
最初に「\」を「\\」にする、などが必要です。

データを取り出す場合はもちろん、「\s」→「'」への逆変換が必要です。
    • good
    • 0

? DBSelect("SELECT * FROM tab1 WHERE 名称=""Lad's""")


1;Lad's

もOKです。
    • good
    • 0

? DBSelect("SELECT * FROM tab1 WHERE 名称='Lad''s'")


1;Lad's

テーブル名じゃなくて条件のデータということですか?
勘違いしていました。
    • good
    • 0

> GWrk_Sql = GWrk_Sql & ",'" & Me.[名称] & "'"


GWrk_Sql = GWrk_Sql & ",""" & Me.[名称] & """"
にしてみたらどうでしょう?
    • good
    • 0

[イミディエイト]


? DBSelect("SELECT * FROM [Lay's] WHERE ID=1;")
1;AAA

と、[]で囲めば。

しかし、言語とバージョンが不明ですよ。

この回答への補足

すいません。補足です。
ACCESS2003でマスタメンテ画面なのですが、名称と言うフィールドに
LADY'Sと入力すると更新時にエラーが発生しましたと言うメーセージが出力されます。
GWrk_Sql = GWrk_Sql & ",'" & Me.[名称] & "'"
で定義しているのですが、どうも 名称の中に’が入っているからだと思います。
他に何か良い方法はありますか?

補足日時:2007/11/08 15:53
    • good
    • 0

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


人気Q&Aランキング