ich stehe vor einem Problem mit meiner Treeview, finde aber keinen Fehler.
In meiner Treeview sieht es wie folgt aus:
Ich habe 3 Tabellen: tblTyp (Datensätze: Hardware, Software), tblFehlerKat (hier drin befinden sich Hardwarekomponenten), und tbl SubKat (Hier ist die genauere Spezifikation drin, z.B. Asus P4P800)
So, nun soll der Treeview die Datensätze passend zur Kategorie ausgeben. Der Fehler bei mir allerdings ist, dass wenn der Baum die Elemente der SubKat ausgibt, er sie alle direkt unter die erste HW-Komponente packt und den Rest einfach übersieht.
Für die Fehleranalyse ist hier noch der Quellcode:
Quellcode
- Option Compare Database
- Option Explicit
- Dim objImageList As MSComctlLib.ImageList
- Dim ObjTreeView As MSComctlLib.TreeView
- Private Sub Form_Load()
- Dim objNode As MSComctlLib.Node
- Dim i As Integer
- Dim j As Integer
- Dim k As Integer
- Dim lang As Integer
- Dim lang2 As Integer
- Dim db As DAO.Database
- Dim TBLA As DAO.Recordset
- Dim TBLB As DAO.Recordset
- Dim TBLC As DAO.Recordset
- Dim TypKn As Node
- lang = 0
- lang2 = 0
- Set db = CurrentDb
- Set TBLA = db.OpenRecordset("tblTyp")
- Set TBLB = db.OpenRecordset("tblFehlerKat")
- Set TBLC = db.OpenRecordset("tblSubKat")
- Do Until TBLB.EOF
- lang = lang + 1
- TBLB.MoveNext
- Loop
- TBLB.MoveFirst
- Do Until TBLC.EOF
- lang2 = lang2 + 1
- TBLC.MoveNext
- Loop
- TBLC.MoveFirst
- For j = 1 To 2
- Set TypKn = TreeView.Nodes.Add(, , , TBLA!Kategorie)
- For i = 1 To lang
- If TBLB!TypID = j Then
- TreeView.Nodes.Add TypKn.Index, tvwChild, , TBLB!FehlerKat
- For k = 1 To lang2
- If TBLB!QuellenID = TBLC!QuellenID Then
- TreeView.Nodes.Add TypKn.Index + 1, tvwChild, , TBLC!SubKat
- End If
- TBLC.MoveNext
- Next k
- TBLC.MoveFirst
- End If
- TBLB.MoveNext
- Next i
- TBLB.MoveFirst
- TBLA.MoveNext
- Next j
- End Sub
Ich hoffe, dass jemand der Fehler findet.
Danke schon im Voraus für die Hilfe.
Bluedragon