• ベストアンサー

ADOでアクセスのレコードに複数のフィルタをかけるには?

Sub ADO() Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & アクセスファイル名 Set rs = New ADODB.Recordset rs.Open "テーブル1", cn, adOpenKeyset, adLockOptimistic rs.Filter = ("フィールド1 = " & "'" & 変数1 & "'") rs.Filter = ("フィールド2 = " & "'" & 変数2 & "'") Debug.Print rs.RecordCount Set rs = Nothing Set cn = Nothing End Sub だと最終的にはフィールド2のフィルタ後の個数しか取得できません。 rs.Filter = ("案件CD = " & "'" & 案件CD & "'" And "プロセス = " & "'" & プロセス & "'") だと「型が一致しません」になります。 どうすれば変数1と変数2のフィルタ後のレコードの個数を取得できるのでしょうか? ご教授よろしくお願い致します。

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

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.2

> "案件CD = " & "'" & 案件CD & "'" And "プロセス = " & "'" & プロセス & "'" とりあえず、現状では条件式(より正確には「And」の入れ方)に問題があります。 (この「And」は、ダブルクォート内にある必要があるのに、外に出てしまっている) 案件CDが文字列型なのでしたら、  "案件CD = '" & 案件CD & "' And プロセス = '" & プロセス & "'"  (シングルクォート「'」やAnd演算子などは、前後の文字列の中に入れました) また案件CDが数値型の場合も念のために書くと、  "案件CD = " & 案件CD & " And プロセス = '" & プロセス & "'" といった形にしてみてください。

sdfdfadgh
質問者

お礼

できました!!!!アドバイスありがとうございます。

その他の回答 (1)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

ADOでFilter http://okwave.jp/qa3818384.html こちらが参考になるのではないかと。

sdfdfadgh
質問者

お礼

ご回答ありがとうございます。

関連するQ&A