• ベストアンサー

ADOでFilter

Access 2002ですが ADOのRecordsetにVBAでフィルターをかけようと思っています。 条件は・・・ RS.Filter = "((場所 ='キッチン') OR (場所 ='台所') OR (場所 ='居間') OR (場所='寝室')) AND (予約状況 ='予約済み')" という感じです。 キッチン、台所、居間、寝室でどれでもいいので予約済みになっている ところを抽出したいのですがエラーになります。 エラー内容を控えてくるのを忘れましたが、これは文法的に不可能でしょうか? なお、アクセスのクエリーだと動きます。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

AND,ORの演算子に制約があるためでしょう (場所='居間' or 場所='台所') AND ( 予約状況='予約済み') といった 複数フィールドでフィルターをかける場合 OR句の結果を ANDで句で結合することが出来ません 逆の AND句を OR句で結合は可能ですので (場所='居間' AND 予約状況='予約済み') or ( 場所='台所' AND 予約状況='予約済み') といった条件に変更しましょう

tss_jp
質問者

お礼

ありがとうございます。 教えていただいた方法で書き直したら動きました。 また、よろしくお願いします。

関連するQ&A