TQueryコンポーネントを使ってDBのデータを取得しています。
フリガナの一部に タナ が含まれるデータのみ抽出したいのですが、
フィルタプロパティに kana = '*タナ*'
と指定しているのですが、抽出されません。
どうすればよいのでしょうか?
DBはAccessのMDBを使っています。
>>フィルタプロパティに kana = '*タナ*'
フィルタプロパティに '*タナ*'以外を設定したときには抽出は成功しているのでしょうか?
上記設定は動的(プログラム上で)に設定しているのでしょうか?
日付の項目や、キー項目(数値)を絞り込むことはできました。
文字列型も*を使わなければOKです。
動的にプログラム上で設定しています
kana Like '%タナ%'
ではダメ?
TQueryを使われいるんでしたら、SQL文で書いてみては?
Query1.SQL.Text := 'SELECT * FROM table1 WHERE kana LIKE ' + QuatedStr(%タナ%));
Query.Open;
kana Like '%タナ%'
を試したところ、「この操作は行えません」とDelphiのエラーがでました
SQL文で書けば解決するのですが、
できればFilterプロパティで実現したいのです(TーT
>>文字列型も*を使わなければOKです。
>>動的にプログラム上で設定しています
可能であれば「フィルタプロパティに kana = '*タナ*'」を
設定しているところのコードを表示してほしいのですが
たぶん「edit.text」を使用しているかと思うのですが...
コードですが、
今はこんな感じにベタ書きしてます。
dtmGrobal.qryFax.Filter := 'kana Like ''%タナ%''';
dtmGrobal.qryFax.Filtered := True;
この状態で動かないので、なぜなんだろうと悩んでいます(−−;;
ちょっくら調べてみたら
・文字列の部分検索のメタキャラクタは、* で、文字列の
最後にしか使えません。
との事
ゆえに
kana = '*タナ*'; はだめ見たいですね。
となるとSQLしかないのかも?
ps
もう一人の kkk どうも(^^)
次回から私はHNを3kにしようかな
でも3kだと...(笑)。
>文字列の部分検索のメタキャラクタは、* で、文字列の
>最後にしか使えません。
そうでしたか
調べてもらって申し訳ないです。
SQLでやってみます。
皆さん、親切にありがとうございました。
ツイート | ![]() |