あいまい検索で

解決


旗国丸  2006-04-21 07:53:07  No: 95163

どうも旗国丸です。今回も皆様の知恵をおかりしたく書きこみました。
環境は
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に%を入れると全てのレコードをとってきてしまいます。
どうしたら%を入れたとしても%の前方一致検索ができるのでしょうか。
よければ今回もご教授お願いします。


ひでき  2006-04-21 10:11:50  No: 95164

>どうしたら%を入れたとしても%の前方一致検索ができるのでしょうか。

通常の%から始まる前方一致検索のSQLと同じです。
VBの技術的な回答としては、
%が来たときには、エスケープ文字列に置換する必要があります。
Replace(text1.text,"%",エスケープ文字列)とすればよいと思います。

SQLのあるべき姿がわからないならば、
検索サイトで、どのように変換するべきかエスケープ文字列について調べましょう。あるべき姿が見えてきます。


いな  2006-04-21 10:44:21  No: 95165

>よければ今回もご教授お願いします。

教授・・・知識・技能を与え、そこからさらに知識への興味を呼び起こすこと。

確かに、エスケープ文字列について興味を持たせる回答の仕方。


旗国丸  2006-04-23 20:22:27  No: 95166

ひでき様、いな様ありがとうございました。
Replaceとエスケープ文字を使い無事解決できました。
皆様のご教授に感謝します。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加