DBGridにADOQueryで条件を指定して検索の動作を作っているのです、シングルクォーテーションの時の処理がうまくできません。
具体的には、
Editボックスに名前を入力しボタンを押すことで、下記のフィルタを走らせているのですが
もし、「'」が入力されたときにこれを文字列として扱いたいです。
ADOQuery1.Filter := '名前 like ''%' + Edit.Text+ '%''';
ADOQuery1.Filtered := True;
当たり前ですが、今のままだと「'」を入力し実行すると実際には、
'%'%'
のようになり、フィルタがうまくかかりません。
これを回避し、「'」を文字列として扱う方法を教えてほしいです。
試していないですが、
ADOQuery1.Filter := '名前 like ''%' + Edit.Text+ '%''';
を
ADOQuery1.Filter := '名前 like ' + QuotedStr('%' + Edit.Text + '%');
にするのは、いかかですか?
(Delphi2007以前だと、QuotedStrの部分を、AnsiQuotedStrに置きかえて・・)
>ADOQuery1.Filter := '名前 like ' + QuotedStr('%' + Edit.Text + '%');
訂正です。
ADOQuery1.Filter := '名前 like ''%' + QuotedStr(Edit.Text) + '%''';
出来ました!
ありがとうございました。
ツイート | ![]() |