Forum des Access-Tutorials

Untereinträge durchlaufen (VBA)

Nikno, Mittwoch, 17. Mai 2017, 14:42 (vor 37 Tagen)

Hallo,

ich habe ein verschachteltes Unterformular, also ein Unterformular frmA, das ein Unterformular frmB enthält. Das führt in Datenblattansicht zu einer ausklappbaren Ansicht.

Nun möchte ich die Daten aus dieser Ansicht abgreifen. Da treffe ich auf 2 Probleme, die ich bisher nur sehr hässlich umgangen habe:

1) Möchte ich nur einen Datensatz durchlaufen, funktioniert das wunderbar mit:

Dim rst As DAO.Recordset
Set rst = Forms!frmA.Form.RecordsetClone
 
Do Until rst.EOF
    'Etwas machen
    rst.MoveNext
Loop

Möchte ich nun aber meinen verschachtelten durchlaufen, funktioniert das nicht mit:

Dim rst As DAO.Recordset
Dim subrst As DAO.Recordset
Set rst = Forms!frmA.Form.RecordsetClone
 
Do Until rst.EOF
    Set subrst = Forms!frmA.Form!frmB.Form.RecordsetClone
 
    Do Until subrst.EOF
        'Etwas machen
        subrst.MoveNext
    Loop
rst.MoveNext
Loop


Stattdessen wird immer nur der erste Datensatz durchlaufen. Das liegt wohl daran, weil der Datensatz von frmB nie geändert wird und immer beim ersten bleibt.

Wenn ich Set rst = Forms!foo.Form.RecordsetClone
zu Set rst = Forms!foo.Form.Recordset ändere, funktioniert es, aber es sucht dann natürlich in der aktiven Ansicht, was sehr hässlich und langsam ist. Ich vermute das muss ich irgendwie mit Bookmark machen, aber ich habe keine Ahnung wie. :)

2) Hängt vielleicht mit 1 zusammen, die Datensätze sind standardmäßig eingeklappt. Wenn ich diese durchlaufen möchte, muss ich die vorher mit Code ausklappen, was eine Weile dauert. Vielleicht erübrigt sich das ja, wenn 1) elegant gelöst wird.


gesamter Thread:

 RSS-Feed dieser Diskussion

RSS Einträge  RSS Threads   Kontakt
powered by my little forum