プロが教える店舗&オフィスのセキュリティ対策術

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のフィルタ後のレコードの個数を取得できるのでしょうか?
ご教授よろしくお願い致します。

A 回答 (2件)

> "案件CD = " & "'" & 案件CD & "'" And "プロセス = " & "'" & プロセス & "'"



とりあえず、現状では条件式(より正確には「And」の入れ方)に問題があります。
(この「And」は、ダブルクォート内にある必要があるのに、外に出てしまっている)

案件CDが文字列型なのでしたら、
 "案件CD = '" & 案件CD & "' And プロセス = '" & プロセス & "'"
 (シングルクォート「'」やAnd演算子などは、前後の文字列の中に入れました)

また案件CDが数値型の場合も念のために書くと、
 "案件CD = " & 案件CD & " And プロセス = '" & プロセス & "'"

といった形にしてみてください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/02/26 14:43

ADOでFilter


http://okwave.jp/qa3818384.html

こちらが参考になるのではないかと。
    • good
    • 2
この回答へのお礼

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

お礼日時:2009/02/26 13:15

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A