VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2003/12/17(Wed) 10:52
投稿者ak
Eメール
URL
タイトルRe: テキストボックス内の文字でSQL構文

こんにちは。

> その際のSQL構文は、
>「SELECT UserName FROM UserInfo WHERE ID = '" & txtID.text & "'"」
> としています。

> IDに「A0001」など入力して、問合せをすればOKですが、
> このテキストボックスに「'」の記号を使用した場合、エラーとなります。

お解りかと思いますが一応説明しておきます。

テキストボックスに「A00'01」と入力された場合、
SQLは「SELECT UserName FROM UserInfo WHERE ID = 'A00'01'」
となり「'A00'」が文字列として認識され残りの「01'」がSQL構文エラーと
なります。

「'」を文字列として認識させたい場合は「'」を「''」にします。
「SELECT UserName FROM UserInfo WHERE ID = 'A00''01'」

VBでダブルクォーテーションを文字列型変数に格納する場合と同じです。

> 1.Instr関数以外で、何かお奨めなチェック方法があるか?

VB6でしたらReplace関数を使用すれば良いと思います。

例)SELECT UserName FROM UserInfo WHERE ID = '" & Replace(txtID.text,"'","''") & "'"


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -