- ベストアンサー
ado フィルタで 含まない とするには?
含むなら rs.Filter = "文字列 like '*A*'" でいけるのですが rs.Filter = "文字列 not like '*A*'" だと 実行時エラー3001「引数が間違った型、許容範囲外、または競合しています。」 になります。 rs.Filter = "文字列 not like '%A%" でもダメでした。 NOTの位置がおかしいのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
普段レコードセットのFilterは使わないので、今更ながら気が付きました。 ヘルプによれば "演算子" は、<、>、<=、>=、<>、=、または LIKE である必要があります となっていて、NOT そのものが無いですね。 NOTの代わりに <> like '*A*' も無駄な足掻きでした。 DAOのRecordsetやフォームのFilter なら、NOT も有効なのですけどねぇ。 #1 さんのリンク先の様にSQLで求めるのがベストかな。 Sub FilterTestDAO() Dim rs As DAO.Recordset Set rs = CurrentDb.OpenRecordset("テーブル名", dbOpenSnapshot) rs.Filter = "文字列 not like '*A*'" Set rs = rs.OpenRecordset() rs.MoveLast Debug.Print rs.RecordCount End Sub
その他の回答 (1)
- hallo-2007
- ベストアンサー率41% (888/2115)
回答No.1
既、回答例ですが http://okwave.jp/qa/q5263578.html のようですね。
質問者
お礼
無理なようですね。
お礼
adoでフィルタを使うことは諦めます。 daoでやったらできました。 ご回答ありがとうございました。