投稿者 魔界の仮面弁士  (社会人) 投稿日時 2014/1/30 18:44:26
実際には、「'」や「%」や「_」が入力された場合にも備える必要があります。

たとえば、テキストボックスに「100%」という文字列が指定された場合、
『100%ジュース』は抽出されるべきですが、『100円ジュース』は除外されるべきです。

Replace などを併用して加工しましょう。
「列名 LIKE '%int''l%'」          … "int'l" を含む文字列
「列名 LIKE '100\%%' ESCAPE '\'」 … "100%" で始まる文字列
「列名 LIKE '\\100%' ESCAPE '\'」 … "\100" で始まる文字列
「列名 LIKE '\100%'」             … "\100" で始まる文字列



> &についての指摘はこちらの入力ミスでした
指摘があったのは、「&」ではなく「&」についてです。
そしてその「&」については、未だに直っていないように見受けられます。


> sql += " where (生産者番号 Like '%" & TextBox1.Text.Trim & "%')"
間違いはありませんが、文字列結合に「+ 演算子」と「& 演算子」が混在しています。
文字列結合は「& 演算子」で統一しましょう。『sql &= …』のように。


> すると、生産者番号のみでの検索が可能になりましたが
> 生産者番号以外の条件を入力すると全件表示されなくなりました。
そのときの SQL がどうなっているか、確認されましたか?

たとえば、
 TextBox1.Text = "凄惨"
 Radio1B.Checked = True
 TextBox2.Text = "青酸"
 Radio2B.Checked = False
 TextBox3.Text = "楽"
 Radio3B.Checked = False
という条件の場合、提示いただいたコードは
 where (生産者番号 Like '%凄惨%') or  (生産者名 Like '青酸&') or  (Rank Like '%楽&')

になります。% と & の間違いということはありませんか?