我在MS Access 2010中使用VBA。
我目前正在尝试从包含2个字段的记录集中进行过滤。 但是我很累,它不会按照我想要的方式过滤。
但如果我只根据一个字段进行过滤,则记录集可以相应地进行过滤。
这就是我现在所拥有的。
{
"id": "123456",
"country": "US",
"locale": "en_us"
}
我已阅读MSDN上的文档,但没看到我哪里出错了。 (也许我错过了一些东西)
答案 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