Ms access 在MS Access中循环遍历子记录
我有一个嵌套的数据表,其中bar是foo的子对象 要遍历foo的所有记录,我只需Ms access 在MS Access中循环遍历子记录,ms-access,vba,Ms Access,Vba,我有一个嵌套的数据表,其中bar是foo的子对象 要遍历foo的所有记录,我只需 Dim rst As DAO.Recordset Set rst = Forms!foo.Form.RecordsetClone Do Until rst.EOF 'Do Something rst.MoveNext Loop 但现在我想遍历它的子表单栏的所有记录。我试过了 遗憾的是,这只会循环遍历第一个记录的子记录。所有其他子记录永远无法访问。如何访问所有其他子记录的记录集?您拥有的关系是属于
Dim rst As DAO.Recordset
Set rst = Forms!foo.Form.RecordsetClone
Do Until rst.EOF
'Do Something
rst.MoveNext
Loop
但现在我想遍历它的子表单栏的所有记录。我试过了
遗憾的是,这只会循环遍历第一个记录的子记录。所有其他子记录永远无法访问。如何访问所有其他子记录的记录集?您拥有的关系是属于父记录的当前(可见)记录的子记录
要检索剩余的子记录,请移动主窗体上的记录(使用Bookmark)或打开子窗体的recordsource并在当前循环(foo)中父记录的键上循环此筛选。因此,如果我接受您的第一个建议,我需要在
rst.MoveNext
之后执行Me.Bookmark=rst.Bookmark
?在没有克隆的情况下移动显示的记录集是一种糟糕的风格吗?只操作UI来计数记录是一种糟糕的风格,而且速度也慢得多,因为它可以轻松地以静默和更快的方式完成,并且代码的数量和复杂度相似。
Dim rst As DAO.Recordset
Dim subrst As DAO.Recordset
Set rst = Forms!foo.Form.RecordsetClone
Do Until rst.EOF
Set subrst = Forms!foo.Form!bar.Form.RecordsetClone
Do Until subrst.EOF
'Do Something
subrst.MoveNext
Loop
rst.MoveNext
Loop