2017-04-06 50 views
0

我有一個嵌套的數據表,其中barfoo的子碼。在MS Access中通過子記錄循環

要遍歷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 
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 

不幸的是,這隻能通過第一個記錄的子記錄循環。所有其他子記錄永遠不會到達。我如何訪問所有其他子記錄的記錄集?

回答

1

您擁有的關係是屬於父記錄的當前(可見)記錄的子記錄。

要檢索剩餘的子記錄,請移動主窗體上的記錄(使用Bookmark)或打開子窗體的記錄源,並在當前循環(「foo」)的父記錄的鍵上循環此篩選。

+0

因此,如果我採取你的第一個建議,我需要在'rst.MoveNext'之後執行'Me.Bookmark = rst.Bookmark'?如果沒有克隆而是通過顯示的記錄集移動,這是不好的風格嗎? – Nikno

+0

操作用戶界面僅用於記錄記錄的風格很糟糕,而且當它可以輕鬆快速地以及以相似體積和複雜度的代碼輕鬆完成時,這種風格也會變得更慢。 – Gustav