またしても
どうにもお手上げです。ご教示お願いします。
Sql.Add('SELECT * FROM PAY');
Sql.Add('where (カナ="'+Edit1.Text+'")');
Sql.Add('or (得意先="'+Edit2.Text+'")');
以上の文でカナと得意先というEdit.textから検索ができたのですが
ここで LIKE 演算子(%)を追加するにはどのように書けばよいのでしょうか?
Sql.Add('where (カナ="'+Edit1.Text+'+'%'")');
Sql.Add('where (カナ="'+Edit1.Text+%'")');
Sql.Add('where (カナ="'+Edit1.Text+'")');Sql.Add('%')
等いろいろやってみたのですが基本がわかっていないので
みようみまねです。先に進みません。
よろしくお願いします。
つい先ほどまでLIKEの処理を作成していました。検索できてます。
以下でおそらく大丈夫かと思います。
ADOQry.SQL.Add('カナ like '+Edit1.Text+ '''単%''');
エディットボックスの未入力チェックはしてください。
すみません、カナの前に「WHERE」を忘れてました。
ADOQry.SQL.Add('WHERE カナ like '+Edit1.Text+ '''単%''');
おんぶに抱っこで申し訳ありません。
SQL.Add('WHERE カナ like '+Edit1.Text+ '''単%''');
としますと
キーワードの使用が無効です。
キーワード LIKEアスキー"単%" というように出てきてしまいます。
単の字を抜いて
SQL.Add('カナ like '+Edit1.Text+ '''%''');
キーワードの使用が無効です。
キーワード LIKEアスキー"%" というように出てきてしまいます。
なにかがずれているのかなと思うんですが。
それがわかりません。いろいろやってみたのですが。。。。
これだけでは解りかねます。
ADOQry.SQL.Clear;
から後の部分をアップして下さい。
>キーワード LIKEアスキー"単%" というように出てきてしまいます。
だと、Likeとアスキーの間にスペース等がありません。
検索する文字列が"アスキー"を含むなら、"%アスキー%"になるように
してみて下さい。
SQL.Add('WHERE カナ like ''' + Edit1.Text + '%''');
だとEdit1.Textから始まる文字列を検索します。
すみません、HOtaさんが表記しているとおりでお願いします。
ADOQry.SQL.Add('WHERE カナ like '''+Edit1.Text+ '%''');
"単"は関係、ありません。打ち間違いです。ほんとに申し訳ありませんでした。
以後、気をつけます。
MS Jet OLE DB Provider/.MDBのときは
ADOQry.SQL.Add('WHERE カナ like '+chr(39)+Edit1.Text+'%'+chr(39));
と書かないと受け付けてくれなかったような記憶が・・・
一度試してみてください。
ありがとうございました。
Edit1.textの文字を含む検索が出来ました。
教示いただいた。
SQL.Add('WHERE カナ like ''' + Edit1.Text + '%''');
そして
SQL.Add('WHERE カナ like '+chr(39)+Edit1.Text+'%'+chr(39));
のどちらでも動きました。
これで一歩前進です。
ツイート | ![]() |