Query.Add でLIKE演算子%をつかうには?

解決


万年中年  2004-08-24 04:19:17  No: 10523  IP: [192.*.*.*]

またしても
どうにもお手上げです。ご教示お願いします。

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('%')
等いろいろやってみたのですが基本がわかっていないので
みようみまねです。先に進みません。
よろしくお願いします。

編集    削除
リュウ  2004-08-24 08:21:14  No: 10524  IP: [192.*.*.*]

つい先ほどまでLIKEの処理を作成していました。検索できてます。
以下でおそらく大丈夫かと思います。

ADOQry.SQL.Add('カナ like '+Edit1.Text+ '''単%''');

エディットボックスの未入力チェックはしてください。

編集    削除
リュウ  2004-08-24 08:22:17  No: 10525  IP: [192.*.*.*]

すみません、カナの前に「WHERE」を忘れてました。

ADOQry.SQL.Add('WHERE  カナ like '+Edit1.Text+ '''単%''');

編集    削除
万年中年  2004-08-24 17:59:09  No: 10526  IP: [192.*.*.*]

おんぶに抱っこで申し訳ありません。

SQL.Add('WHERE カナ like '+Edit1.Text+ '''単%''');
としますと
キーワードの使用が無効です。
キーワード LIKEアスキー"単%" というように出てきてしまいます。
単の字を抜いて
SQL.Add('カナ like '+Edit1.Text+ '''%''');
キーワードの使用が無効です。
キーワード LIKEアスキー"%" というように出てきてしまいます。
なにかがずれているのかなと思うんですが。
それがわかりません。いろいろやってみたのですが。。。。

編集    削除
HOta  2004-08-24 18:24:03  No: 10527  IP: [192.*.*.*]

これだけでは解りかねます。
ADOQry.SQL.Clear;
から後の部分をアップして下さい。

>キーワード LIKEアスキー"単%" というように出てきてしまいます。
だと、Likeとアスキーの間にスペース等がありません。
検索する文字列が"アスキー"を含むなら、"%アスキー%"になるように
してみて下さい。

SQL.Add('WHERE カナ like ''' + Edit1.Text + '%''');
だとEdit1.Textから始まる文字列を検索します。

編集    削除
リュウ  2004-08-24 21:24:05  No: 10528  IP: [192.*.*.*]

すみません、HOtaさんが表記しているとおりでお願いします。

ADOQry.SQL.Add('WHERE  カナ like '''+Edit1.Text+ '%''');

"単"は関係、ありません。打ち間違いです。ほんとに申し訳ありませんでした。
以後、気をつけます。

編集    削除
amide  2004-08-24 22:01:13  No: 10529  IP: [192.*.*.*]

MS Jet OLE DB Provider/.MDBのときは
ADOQry.SQL.Add('WHERE  カナ like '+chr(39)+Edit1.Text+'%'+chr(39));
と書かないと受け付けてくれなかったような記憶が・・・
一度試してみてください。

編集    削除
万年中年  2004-08-25 21:51:24  No: 10530  IP: [192.*.*.*]

ありがとうございました。
Edit1.textの文字を含む検索が出来ました。
教示いただいた。
SQL.Add('WHERE カナ like ''' + Edit1.Text + '%''');
そして
SQL.Add('WHERE  カナ like '+chr(39)+Edit1.Text+'%'+chr(39));
のどちらでも動きました。
これで一歩前進です。

編集    削除