6.8k Aufrufe
Gefragt in Datenbanken von pydna Einsteiger_in (27 Punkte)
Hallo zusammen,

ich würde gerne das TreeView Steuerelement als Navigation für meine
Access 2007 Datenbank verwenden.

Meine Fragen wären:

1) Kann ich andere Formularseiten durch klicken eines Ortsknotens
aufrufen, oder ist das TreeView Element nur zum anzeigen gedacht?

2) Wie muss der VBA Code aussehen um den TreeView mit Leben zu
füllen bzw. um die Formularseiten aufzurufen

Danke schonmal im voraus!

Greetz
Steppl

5 Antworten

0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hallo Steppl,

klar geht das. Angenommen du hast ein Treeobjekt in deinem Formular mit dem Namen "tree". Dann kannst du z.B. im VBA-Code des Formulars im oberen Bereich in der rechten Combobox das Steuerelement "tree" auswählen und in der rechten das Ereignis "nodeClick". In der erzeugten Prozedure "Private Sub tree_NodeClick(ByVal Node As Object)" kannst du z.B den Key des Knotens über "MsgBox node.key" ausgeben.

Das Füllen eines Trees geht prinzipiell mit "tree.Nodes.Add", hier ein Beispielansatz:

Dim t As TreeView
Set t = Form!tree.Object
Set n = t.Nodes.Add(, , "L1", "Hauptelement1")
Set n = t.Nodes.Add("L1", tvwChild, "L11, "Unterelement zu 1")
Die Eigenschaften und Methoden von Tree sind allerdings so vielfältig, dass dies hier den Rahmen sprengen würde

Gruß
Ralf
0 Punkte
Beantwortet von pydna Einsteiger_in (27 Punkte)
Hallo Ralf,

vielen Dank für deine Hilfe. Das mit dem Füllen des TreeView Elements hat ganz gut geklappt.

Nur verstehe ich noch nicht ganz genau wieder VBA Code aussehen muss, dass er eine "Klick"-Option ausführt.

Könntest Du mir da noch helfen?

Gruß
Steppl
0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hallo pydna,

Hast du das aus probiert, was ich in A1 geschrieben habe? Hat das nicht funktioniert oder wo
bist du nicht weiter gekommen ?

Gruß Ralf
0 Punkte
Beantwortet von pydna Einsteiger_in (27 Punkte)
Hallo,

also ich habe die Prozedure "Private Sub tree_NodeClick(ByVal Node As Object)" angelegt.

Ein Menüpunkt bei mir ist:

Set n = t.Nodes.Add("L6", tvwChild, "L61", "Stammdaten")

Wie muss jetzt unter der angelegten Prozedure der Code aussehen das das Formular "Stammdaten" geöffnet wird.

*bindochblond*

Danke :-)
0 Punkte
Beantwortet von rahi Experte (1.5k Punkte)
Hallo Steppl,


füge ruhig mal den Code
MsgBox node.key
ein. Statt der Eigenschaft "key" findest du auch noch viele andere Eigenschaften, die du verwenden kannst. Wenn du die Eigenschaft gefunden hast, die z.B. den Wert "Stammdaten" enthält, kannst du das zugehörige Formular mit
DoCmd.openForm <wert>, ....
öffnen.
Experimentiere mal, das geht auch mit blonden Haaren...

Gruß
Ralf
...