TQueryのフィルタプロパティを使って文字列のワイルドカード指定の方法


ある  2005-06-25 01:05:52  No: 15932  IP: 192.*.*.*

TQueryコンポーネントを使ってDBのデータを取得しています。
フリガナの一部に  タナ  が含まれるデータのみ抽出したいのですが、
フィルタプロパティに kana = '*タナ*'
と指定しているのですが、抽出されません。

どうすればよいのでしょうか?
DBはAccessのMDBを使っています。

編集 削除
kkk  2005-06-25 16:44:05  No: 15933  IP: 192.*.*.*

>>フィルタプロパティに kana = '*タナ*'

フィルタプロパティに '*タナ*'以外を設定したときには抽出は成功しているのでしょうか?
上記設定は動的(プログラム上で)に設定しているのでしょうか?

編集 削除
ある  2005-06-25 23:18:38  No: 15934  IP: 192.*.*.*

日付の項目や、キー項目(数値)を絞り込むことはできました。
文字列型も*を使わなければOKです。

動的にプログラム上で設定しています

編集 削除
もう一人の kkk  2005-06-26 00:37:19  No: 15935  IP: 192.*.*.*

kana Like '%タナ%'
ではダメ?

編集 削除
@っしー  2005-06-26 09:47:12  No: 15936  IP: 192.*.*.*

TQueryを使われいるんでしたら、SQL文で書いてみては?

Query1.SQL.Text := 'SELECT * FROM table1 WHERE kana LIKE ' + QuatedStr(%タナ%));
Query.Open;

編集 削除
ある  2005-06-26 09:53:44  No: 15937  IP: 192.*.*.*

kana Like '%タナ%'
を試したところ、「この操作は行えません」とDelphiのエラーがでました

SQL文で書けば解決するのですが、
できればFilterプロパティで実現したいのです(TーT

編集 削除
kkk  2005-06-27 08:43:10  No: 15938  IP: 192.*.*.*

>>文字列型も*を使わなければOKです。
>>動的にプログラム上で設定しています
 
可能であれば「フィルタプロパティに kana = '*タナ*'」を
設定しているところのコードを表示してほしいのですが
たぶん「edit.text」を使用しているかと思うのですが...

編集 削除
ある  2005-06-27 16:19:05  No: 15939  IP: 192.*.*.*

コードですが、
今はこんな感じにベタ書きしてます。

dtmGrobal.qryFax.Filter := 'kana Like ''%タナ%''';
dtmGrobal.qryFax.Filtered  := True;

この状態で動かないので、なぜなんだろうと悩んでいます(−−;;

編集 削除
kkk  2005-06-27 17:57:45  No: 15940  IP: 192.*.*.*

ちょっくら調べてみたら
・文字列の部分検索のメタキャラクタは、* で、文字列の
  最後にしか使えません。
との事
ゆえに
kana = '*タナ*'; はだめ見たいですね。
となるとSQLしかないのかも?

ps
もう一人の kkk どうも(^^)
次回から私はHNを3kにしようかな
でも3kだと...(笑)。

編集 削除
ある  2005-06-27 23:23:40  No: 15941  IP: 192.*.*.*

>文字列の部分検索のメタキャラクタは、* で、文字列の
>最後にしか使えません。

そうでしたか
調べてもらって申し訳ないです。

SQLでやってみます。
皆さん、親切にありがとうございました。

編集 削除