DAO记录集过滤器功能无法过滤2个属性

时间:2018-03-28 00:07:18

标签: vba ms-access-2010 dao

我在MS Access 2010中使用VBA。

我目前正在尝试从包含2个字段的记录集中进行过滤。 但是我很累,它不会按照我想要的方式过滤。

但如果我只根据一个字段进行过滤,则记录集可以相应地进行过滤。

这就是我现在所拥有的。

{
    "id": "123456",
    "country": "US",
    "locale": "en_us"
}

我已阅读MSDN上的文档,但没看到我哪里出错了。 (也许我错过了一些东西)

2 个答案:

答案 0 :(得分:0)

如果您通过复制/粘贴提供实际代码,则更容易排除故障。 话虽这么说,我只是想知道你为什么要使用两个记录集? 如果你真的对真实的过滤记录集进行循环,你会得到正确的答案吗?

消除界限

Set rsFiltered = rs.OpenRecordset

rs 上使用此代码块,而不是 rsFiltered

Do While Not rs.EOF
    ' Do Something
Loop

答案 1 :(得分:0)

我已经改变了一些代码并且它有效。但不确定为什么。

Private Function getCheckedRecordsFromDB(ByVal cmNum As String) As Boolean
    Dim rs As Recordset
    Dim rsFiltered As Recordset
    Dim dSerial As Double

    'Gets different fields from different tables and store them into rs
    Set rs = CurrentDb.OpenRecordset("QueryMemoOutFrm")

    rs.Filter = "Doctype='Outgoing' AND DocumentRef='" & cmNum & "'"
    Set rsFiltered = rs.OpenRecordset

    ' newly added
    rsFiltered.MoveFirst

        Do While Not rsFiltered.EOF
            dSerial = rsFiltered!SerialNo
            rsFiltered.MoveNext
        Loop

    rs.Close
    Set rs = Nothing
    rsFiltered.Close
    Set rsFiltered = Nothing
End Function