どうも旗国丸です。今回も皆様の知恵をおかりしたく書きこみました。
環境は
VB6
Microsoft ActiveX Data Objects 2.1 Library (ADO)
SQLsever2000
ユーザ名 sa
パスワード sa
テーブル m_Zyuken
テーブルには、ID(主キー)と受験者名前が入っています。
そしてtext1で入力したデータを使って前方一致のあいまい検索をしています。
Dim SQL as string
データベースにつないで
SQL = "SELECT * FROM m_Zyuken Where ZyukenName Like
'"& text1.text &"'%"としてあいまい検索をしておりますが。
text1に%を入れると全てのレコードをとってきてしまいます。
どうしたら%を入れたとしても%の前方一致検索ができるのでしょうか。
よければ今回もご教授お願いします。
>どうしたら%を入れたとしても%の前方一致検索ができるのでしょうか。
通常の%から始まる前方一致検索のSQLと同じです。
VBの技術的な回答としては、
%が来たときには、エスケープ文字列に置換する必要があります。
Replace(text1.text,"%",エスケープ文字列)とすればよいと思います。
SQLのあるべき姿がわからないならば、
検索サイトで、どのように変換するべきかエスケープ文字列について調べましょう。あるべき姿が見えてきます。
>よければ今回もご教授お願いします。
教授・・・知識・技能を与え、そこからさらに知識への興味を呼び起こすこと。
確かに、エスケープ文字列について興味を持たせる回答の仕方。
ひでき様、いな様ありがとうございました。
Replaceとエスケープ文字を使い無事解決できました。
皆様のご教授に感謝します。
ツイート | ![]() |