重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

こんにちは。
rs.Filterで、likeを使った検索がどうしてもできません。いろいろ調べて、ADOやACCESSVBAなどのページでは、%をワイルドカードにして問題なくできるようないことが書いてありますが・・・

SQL検索のWHEREでは問題なくLikeを使って抽出ができています。WHEREと構文は変わらないと記載してるページもありましたがうまくういきません。。。

DBのデータ型は数値です。
たとえば、20~29 までを抽出させたいので、

(R=2です。実際にはForで、2は、変化しますので。)
 rs.Filter ="rest like '"&R&"%'" と記載したとします。

数値型とはいえ、Whereではこれで検索できます。
ためしに、
rs.Filter ="rest like "&R&"%" ’をとってみましたがだめでした・・・

力技ですが、現在は
 rs.Filter ="rest >= '"&R&"0' and rest < '"&R+1&"0'" (以上、未満)を使用しています。

FILTERって、betweenも使えないようだし、likeもエラーはでないものの機能しないんでしょうか・・・
どなたか経験のある方教えて下さい!

A 回答 (1件)

数値フィールドに対しては上手くないようです


レコードセットに文字列フィールドを加えてその文字列フィールドに対してLike演算子を使ってみましょう

rs.Open "SELECT *, CStr(rest) as sRest FROM テーブル", cnn
rs.Filter = "sRest Lik '" & r & "%'"
といった具合で ・・・
    • good
    • 0
この回答へのお礼

できました~!
すっきりです。

SELECT *, CStr(rest) as sRest FROM テーブル

SELECTの後にデータを取得するときに、フィールドのデータ形式を別のものとして取得する という操作自体を知らなかったので、大変役に立ちました。

どうもありがとうございました!

お礼日時:2008/10/31 13:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!