MSComctlLib.TreeView - Probleme (A2000)

09/01/2008 - 15:21 von Swen Snicinski | Report spam
Hallo miteinander,

folgendes Problem stellt sich mir, wenn ich ein TreeView (MSComctlLib)
befüllen möchte:

Per vba lasse ich das TreeView mit Daten aus einer Tabelle befüllen. Mein
TreeView soll 2 Ebenen erhalten. 1. Ebene sind die Leistungsgruppen und 2.
Ebene die Leistungsarten.

Bsp.:
LGZ_ID/Leistungsart
LG1/1000
LG1/1001
LG1/1002
LG2/1001
LG2/1005

angezeigt werden soll das dann so:
LG1
1000
1001
1002
LG2
1001
1005

Wenn ich das TreeView nur mit der Ebene 1 befülle, funktioniert alles
bestens. Wenn ich jedoch die Ebene 2 zuordnen möchte, erscheint folgende
Fehlermeldung.
"Laufzeitfehler '35610': Ungültiges Objekt

Mein Quellcode dazu lautet:

Dim objTreeview As MSComctlLib.TreeView
Dim objNode As MSComctlLib.Node
Dim rst As DAO.Recordset

Private Sub Form_Open(Cancel As Integer)

Dim strVorherigerNode_LGZ As String

Set rst = CurrentDbC.OpenRecordset("dbo_Qry_TreeView_1")
Set objTreeview = Me.TreeView1.Object

Do While Not rst.EOF

If Not rst![LGZ_ID] = strVorherigerNode_LGZ Then
Set objNode = objTreeview.Nodes.Add(, , rst![LGZ_ID],
rst![LGZ_ID])
End If
Set objNode = objTreeview.Nodes.Add(rst![LGZ_ID], tvwChild,
rst![Leistungsart], rst![Leistungsart])

strVorherigerNode_LGZ = rst![LGZ_ID]
rst.MoveNext
Loop

rst.Close
End Sub

Woran kann das denn liegen?

P.S. habe das nach dem Beispiel auf der Seite access-im-unternehmen
ShortLink 321 gemacht.

Gruß und Vielen Dank im Voraus, Swen
 

Lesen sie die antworten

#1 Jörg Ostendorp
09/01/2008 - 15:30 | Warnen spam
Hallo Sven,

folgendes Problem stellt sich mir, wenn ich ein TreeView (MSComctlLib)
befüllen möchte:

Per vba lasse ich das TreeView mit Daten aus einer Tabelle befüllen. Mein
TreeView soll 2 Ebenen erhalten. 1. Ebene sind die Leistungsgruppen und 2.
Ebene die Leistungsarten.

Bsp.:
LGZ_ID/Leistungsart
LG1/1000
LG1/1001
LG1/1002
LG2/1001
LG2/1005

angezeigt werden soll das dann so:
LG1
1000
1001
1002
LG2
1001
1005

Wenn ich das TreeView nur mit der Ebene 1 befülle, funktioniert alles
bestens. Wenn ich jedoch die Ebene 2 zuordnen möchte, erscheint folgende
Fehlermeldung.
"Laufzeitfehler '35610': Ungültiges Objekt

Mein Quellcode dazu lautet:

Dim objTreeview As MSComctlLib.TreeView
Dim objNode As MSComctlLib.Node
Dim rst As DAO.Recordset

Private Sub Form_Open(Cancel As Integer)

Dim strVorherigerNode_LGZ As String

Set rst = CurrentDbC.OpenRecordset("dbo_Qry_TreeView_1")
Set objTreeview = Me.TreeView1.Object

Do While Not rst.EOF

If Not rst![LGZ_ID] = strVorherigerNode_LGZ Then
Set objNode = objTreeview.Nodes.Add(, , rst![LGZ_ID],
rst![LGZ_ID])
End If
Set objNode = objTreeview.Nodes.Add(rst![LGZ_ID], tvwChild,
rst![Leistungsart], rst![Leistungsart])


^^^^^^^^^^^^^^^^^^^^

strVorherigerNode_LGZ = rst![LGZ_ID]
rst.MoveNext
Loop

rst.Close
End Sub

Woran kann das denn liegen?



Ein Node verlangt als Key(-Inhalt) einen String. Versuch mal sowas:

Set objNode = objTreeview.Nodes.Add(rst![LGZ_ID], tvwChild,
"LA" & rst![Leistungsart], rst![Leistungsart])

Grüßle vom Bodensee
Jörg Ostendorp

Access-FAQ: www.donkarl.com

Ähnliche fragen