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

解決


万年中年  2004-08-24 04:19:17  No: 10523

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

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

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

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

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


リュウ  2004-08-24 08:22:17  No: 10525

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

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


万年中年  2004-08-24 17:59:09  No: 10526

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

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


HOta  2004-08-24 18:24:03  No: 10527

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

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

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


リュウ  2004-08-24 21:24:05  No: 10528

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

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

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


amide  2004-08-24 22:01:13  No: 10529

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加