- ベストアンサー
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のフィルタ後のレコードの個数を取得できるのでしょうか? ご教授よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> "案件CD = " & "'" & 案件CD & "'" And "プロセス = " & "'" & プロセス & "'" とりあえず、現状では条件式(より正確には「And」の入れ方)に問題があります。 (この「And」は、ダブルクォート内にある必要があるのに、外に出てしまっている) 案件CDが文字列型なのでしたら、 "案件CD = '" & 案件CD & "' And プロセス = '" & プロセス & "'" (シングルクォート「'」やAnd演算子などは、前後の文字列の中に入れました) また案件CDが数値型の場合も念のために書くと、 "案件CD = " & 案件CD & " And プロセス = '" & プロセス & "'" といった形にしてみてください。
その他の回答 (1)
- n-jun
- ベストアンサー率33% (959/2873)
ADOでFilter http://okwave.jp/qa3818384.html こちらが参考になるのではないかと。
お礼
ご回答ありがとうございます。
お礼
できました!!!!アドバイスありがとうございます。