Generarea unui arbore de elemente în vizualizarea ierarhică din MS Access prin componenta TreeView
Componenta ActiveX a TreeView din MS Access servește pentru a afișa date complexe care sunt afișate ca listă sau copac. Nivelul de cuibare a elementelor copacilor nu este limitat. Pentru a lucra cu această componentă, trebuie să conectați linkul (referințe) la Microsoft Windows Common Controls 6.0 (SP6).
Pentru a lucra cu arborele, va trebui să creați un tabel, de exemplu, numit Table1. În acesta se indică câmpurile - AutoID, Nume, ParentID. Lasati-l sa fie pentru comoditate AutoID in campul Auto-incremental (aceasta nu este necesara, dar trebuie sa o introduceti manual, respectand unicitatea valorilor pentru aceasta coloana). Un script care vă va permite să creați rapid o masă pentru un exemplu în MS Access:
Pentru comoditate, vom folosi clasa cTreeClass. (! A nu se confunda cu modulul convențional) Apelați modulul de clasă poate doriți, principalul lucru nu este de a uita de dreapta și apoi să-l aplice în forma (prin crearea unui obiect - cuvântul cheie Nou). Modulul nostru de clasă este denumit cu numele "cTreeClass".
Avantajul acestui modul al clasei, așa cum ați observat deja, este că se lipsește la orice masă, dacă conține cel puțin trei câmpuri (cheie, nume, cod părinte).
În forma în sine, unde este adăugată componenta TreeView, încărcăm obiectul cu o referință la clasa noastră în sarcină și ne inițializăm variabilele:
Pentru a atribui un handler unui copac, va trebui să scrieți acest cod:
Când faceți clic pe orice element din listă, vom primi un mesaj cu numărul cheii atribuite.
Am încercat să o folosesc. Nu funcționează. Nepotrivire de tip în Private Sub Form_Load () tr Dim Ca obiect Set tr = Nou cTreeClass * Set tr.Tree = Me.xTree.Object * tr.tbl = "Table1" tr.fldKey = "AutoID" tr.fldParent = "ParentID" tr.fldText = "Nume" tr.GenerateTree End Sub
Deoarece clasa ar trebui să fie numită cTreeClass și nu Class1 ca implicită
Și nu uitați că ParentID al elementului rădăcină trebuie să fie 0. Arborele implicit va fi minimizat. Puteți deschide imediat: Dim nodAcest lucru ca MSComctlLib.Node pentru fiecare nodAcest lucru în Me.xTree.Nodes # „Bucla prin toate nodurile nodThis.Expanded = True Următoarea nodThis Cu Me.xTree .selecteditem.EnsureVisible .SetFocus se termină cu
Bună ziua. Pe linia * Set tr.Tree = Me.xTree.Object * produce mesajul: "Obiectul nu suportă această proprietate sau metodă"
C:: \ Windows \ System32 \ MSCOMCTL.OCX sau C: \ Windows \ SysWOW64 \ MSCOMCTL.OCX (pentru sistemul de operare pe 64 de biți) O componentă MSComctlLib adăugată?
Uneori trebuie să resetați contorul: ALTER TABLE Tabel1 ALTER COLUMN COUNTER AUTO (1, 1)