Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
複数条件のプログラムを作りたい
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=15515#CommentId37629
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
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 '%楽&')
になります。% と & の間違いということはありませんか?