sql >> Database teknologi >  >> RDS >> Access

Trævisningskontrol Afkrydsningsmærke Tilføj Slet noder

Introduktion.

I denne episode af Tree View Control Tutorial lærer vi, hvordan du Tilføj/Slet Noder. Placeringen af ​​Tilføj/Slet kandidatelementet vil være markeret, hvor vi ønsker at Tilføj() den nye node eller til Remove() den markerede Node. Tilføjelsen af ​​noden kan være på samme niveau som den markerede node eller som en børneknude.

TreeView Control Tutorial Sessioner indtil videre.

  1. Microsoft TreeView Control Tutorial
  2. Oprettelse af adgangsmenu med TreeView-kontrol
  3. Tildeling af billeder til TreeView-kontrol
  4. Tildeling af billeder til TreeView Control-2

Den normale visning af Demo Tree View Control på MS-Access Form, med andre kontroller, er givet nedenfor.

Datatabellen til TreeView Controls demo.

Tabellen med navnet Eksempel vi har brugt i den første tutorialsession, vil vi også bruge her. Det er en lille tabel med optegnelser over Access-database, tabel-, formular- og rapportkontrolstruktur, arrangeret i hierarkisk rækkefølge og let at forstå.

ID kolonne (Trævisning Nøgle ) er et autonummereringsfelt.

Nye besøgende bliver opdateret til denne selvstudiesession.

Hvis du ikke har gennemgået den første selvstudiesession, kan du downloade demodatabasen fra den anden sessionsside:Oprettelse af adgangsmenu med trævisningskontrol. Der er en tabel i den database med navnet:Sample og formular frmSample . Du kan importere dem til din nuværende database. Der er en anden form med navnet frmMenu derinde, og du kan kopiere kommandoknapperne Udvid alle, Skjul alle, og deres kommandoknap Klik på Hændelsesprocedurer fra frmMenu til frmSample Kodemodul til at fortsætte med denne session.

Som jeg har nævnt tidligere, kan vi dele ImageList Control, med de uploadede billeder til andre projekter, vi vil lave en kopi af ImageList Control fra den sidste vejledningssession og bringe den her, med alle de uploadede billeder, og bruge den på Trævisningskontrolnoder på frmSample .

Import af billedlistekontrol med billeder.

Du kan indsætte den ImageList Control, du allerede har, med uploadede billeder i en anden database, på følgende måder:

  1. Importer formularen med ImageList Control til den aktive database fra databasen, hvor du har ImageList kontrol med manuelt uploadede billeder. Kopiér og indsæt ImageList-kontrolelementet til formularen, hvor du vil have det.

  2. Eller kopier ImageList Control til udklipsholderen fra databasen, hvor du har den, først. Hvis du har downloadet demodatabasen fra den tidligere tutorialsession, har du allerede ImageList Control med uploadede billeder. Luk databasen efter kopiering af ImageList-kontrollen til udklipsholderen.

  3. Åbn måldatabasen og åbn formularen, hvor du vil have ImageList Control og indsæt den på formularen.

    Med følgende kodelinjer i CreateTreeView() Underrutine kan du videregive ImageList Object Reference til Tree View Control.

    Dim tv As MSComctlLib.TreeViewDim ImgList As MSComctlLib.ImageListSet tv =Me.TreeView0 .Objecttv.Nodes.ClearSet ImgList =Me.ImageList0 .Objecttv.ImageList =ImgList 

Skift de fremhævede objektnavne i koden, hvis de er forskellige på formularen.

Derefter kan du tilføje billednøglenavnene til TreeView Nodes.Add() metodens sidste to parametre.

Disse øvelser har vi allerede lavet i de tidligere sessioner. For at minde dig om, at vi bruger den tabel- og trævisningskontrol, vi har oprettet i den første selvstudiesession og implementeret med de ovenfor forklarede ændringer.

Visning af de afkrydsede nodes egenskabsværdier.

Den valgte node nøgle , Forældrenøgle, og Tekst Egenskaber vises i tekstboksene i højre side af trævisningskontrollen. Afkrydsningsfeltet med billedteksten:Child Node, Slet Node, og Tilføj node Kommandoknapper er nye tilføjelser til formularen. Deres funktioner vil blive forklaret om kort tid.

Visning af afkrydsningsfelter på TreeView Control.

Normalt vises afkrydsningsfeltet ikke på TreeView-kontrollen, medmindre vi aktiverer en egenskab i trævisningskontrollens egenskabsark. Den har kun en vis begrænset funktionalitet her. Hvad end vi skal gøre her, kan også gøres uden afkrydsningsfeltet.

En bedre tilgang til brugen af ​​CheckBoxes kan være, som udarbejdelse af en rapport om udvalgte filialer af virksomhedens virksomheder, baseret på brugervalgbare tilfældige valg af filialer, fra Access Project Menu.

Her er målet at give en bevidsthed om denne funktion og køre en demo om dens brug.

  1. Åbn formularen med TreeView Control i Design View.
  2. Højreklik på TreeView-kontrolelementet, fremhæv TreeCtrl-objektet , vælg Egenskaber mulighed for at vise egenskabsarket.
  3. Sæt flueben på afkrydsningsfelterne mulighed på egenskabskontrol som vist på billedet nedenfor.

Demo TreeView-billedet vist øverst, Detaljer.

Lad os se, hvad vi har på demoformularen frmSample præsenteret øverst på denne side. Trævisningskontrollen og de to øverste kommandoknapper, Udvid alle og Skjul alle, på Klik på Udvider eller skjuler noderne, og vi har set deres funktioner i sidste afsnit.

På højre side er der tre tekstbokse under overskriften Label:Egenskabsværdier , for at vise den afkrydsede nodes nøgle , Forældrenøgle, og Tekst Værdier.

Slet node Kommandoknap fjerner den afkrydsede node eller noden og dens underordnede noder.

Før du vælger Add Node Command Button , Tekst Egenskabsværdien skal redigeres for at erstatte den med den nye tekstværdi for den nye node.

Over Tilføj node Kommandoknap, der er et afkrydsningsfelt med etiketten Child Node. Tilføj node og Child Node Check-Box arbejder sammen for at indstille reglen for, hvor den nye node skal vises.

Forstå handlingen Tilføj node.

Antag, at du vil tilføje en ny node til Hyperlink feltet under Felter gruppe (eller overordnet node) datatype Liste. Se på demobilledet øverst på denne side, hvor jeg har markeret datofeltet Node, blandt andre Child-Nodes. Egenskabsarkene på højre side viser dens nøgle:X15 , ParentKey:X4 &Tekst:Datofelt Beskrivelse.

Skift teksten:datofelt til Hyperlink på egenskabens tekstboks og klik på Tilføj node Kommandoknap. Outputtet vil være som vist nedenfor:

Hvis du markerer felterne overordnet node-element, og sæt flueben i Child-Node mulighed over Tilføj node Kommandoknap, du vil få det samme resultat.

Hvis du i stedet beholder Node-fluebenet i datofeltet og sæt fluebenet på Child-Node mulighed over Tilføj node Kommandoknap, du får resultatet som vist nedenfor.

Den underordnede node vil blive oprettet under den afkrydsede node.

Tilføj node-handlingerne skal først oprette en ny post i den underliggende tabel.

En ny post oprettes i Eksemplen Tabel med den nye tekst:HyperLink og Forældre-id Værdier. Autonummerfeltet genererer et nyt nummer, og vi henter det og bruger det som nøgleværdi for noden.

Tilføj Node underrutine VBA-koden er angivet nedenfor:

Privat Sub cmdAdd_Click()Dim strKey As StringDim lngKey As LongDim strParentKey As StringDim lngParentkey As LongDim strText As StringDim lngID As LongDim strIDKey As StringDim childflag As IntegerDim db As DAO.Databasel As Strimd AsCom As Integeri =0For hver tmpnode I tv.Nodes If tmpnode.Checked Then tmpnode.Selected =True i =i + 1 End IfNextIf i> 1 Then MsgBox "Selected Nodes:" &i &vbCr &"Select only One Node for at markere tilføjelse .", vbCritical, "cmdAdd()" Afslut SubEnd If'Read egenskabsværdier fra FormstrKey =Trim(Me![TxtKey])lngKey =Val(Mid(strKey, 2))strParentKey =Trim(Me![TxtParent])lngParentkey =IIf(Len(strParentKey)> 0, Val(Mid(strParentKey, 2)), 0)strText =Trim(Me![Text])'Læs child Node Option settingchildflag =Nz(Me.ChkChild.Value, 0)intflag =0strSql ="INSERT INTO Sample ([Desc], [ParentID] ) "Hvis lngParentkey =0 Og childflag =0 Så 'Add Root-level Node, ParentKey i s Blank strSql =strSql &"SELECT '" &strText &"' AS [Desc], '" &" " strSql =strSql &"' AS ParentID FROM Sample WHERE ((Sample.ID =1));" intflag =1ElseIf (lngParentkey>=0) Og (childflag =True) Så 'Indsætter en underordnet node til den afkrydsede node, her Nøgleværdi brugt som ParentKey strSql =strSql &"SELECT '" &strText &"' AS [Desc ], '" &lngKey strSql =strSql &"' AS ParentID FROM Sample WHERE ((Sample.ID =1));" intflag =2ElseIf (lngParentkey>=0) Og (childflag =False) Derefter 'Indsætter Node på det afkrydsede niveau, Tilføj element under samme ParentKey strSql =strSql &"SELECT '" &strText &"' AS [Desc], '" &lngParentkey strSql =strSql &"' AS ParentID FROM Sample WHERE ((Sample.ID =1));" intflag =3End IfSet db =CurrentDbdb.Execute strSql'Få nyoprettet autonumber til brug som KeylngID =DMax("ID", "Sample")strIDKey =KeyPrfx &CStr(lngID)Ved fejl GoTo IdxOutofBounddSelect Root Case int-1fAdlag niveau Node, ParentKey er Blank tv.Nodes.Add , , strIDKey, strText, "folder_close", "folder_open" Case 2 'Indsætter en underordnet node til den afkrydsede node, her Nøgleværdi brugt som ParentKey tv.Nodes.Add strKey , tvwChild, strIDKey, strText, "left_arrow", "right_arrow" Case 3 'Indsætter Node på det afkrydsede niveau, Tilføj element under samme ParentKey tv.Nodes.Add strParentKey, tvwChild, strIDKey, strText, "left_arrow", " right_arrow"End Selecttv.Refresh 'Slet egenskabsværdier fra formular med mig .TxtKey ="" .TxtParent ="" .Text ="" End WithSet db =NothingcmdExpand_Click cmdAdd_Click_Exit:Exit SubIdxOutofBound:CreateTreeExitRe 

Lad os undersøge VBA-koden. Efter de lokale variabeldeklarationer scannes TreeView-knuderne for afkrydsninger og tager en optælling af afkrydsede elementer. Hvis afkrydsede noder er mere end én, viser den en besked og afbryder programmet.

Bemærk: I stedet for at markere kan vi klikke direkte på en node for at vælge den. I begge tilfælde overføres den kontrollerede/klikkede node som en parameter til hændelsesproceduren. Afkrydsning er godt, når du skal vælge mere end ét element fra en projektmenu, for eksempel:for at vælge et andet sæt data for en bestemt rapport osv.

Den kontrollerede nodes egenskabsværdier læses fra formularkontrollerne til strKey , strParentKey, og strText. ID, ParentID Numeriske værdier udtrækkes og gemmes i lngKey og lngParentKey Variabler til brug i SQL String.

Dernæst Child-Node Afkrydsningsfeltets værdi er gemt i ChildFlag Variabel.

Tre forskellige sæt SQL-strenge oprettes baseret på den valgte node og Child-Node Afkrydsningsfelt over kommandoknappen Tilføj node.

  1. Hvis Forældre-id Ejendomsværdien på formularen er tom og Child Node afkrydsningsfeltet ikke er markeret, så oprettes en ny post på root-niveau, fordi brugeren har markeret en node på root-niveau.
  2. Hvis Forældre-id Ejendomsværdi>=0 og Child Node afkrydsningsfeltet er markeret (markeret ) så oprettes en ny post som en Child-Node til den afkrydsede node. Den afkrydsede Nodes Nøgle (ID) bruges som forældre-ID på den nye post for den nye node.
  3. Hvis Forældre-id Værdi >=0 og Child Node afkrydsningsfelt ikke valgt (ikke markeret ) så oprettes den nye post for den nye node på samme niveau som den afkrydsede node.

intFlag Variabel indstilles med en af ​​de tre værdier:1,2 eller 3, afhængigt af udførelsen af ​​SQL, som en indikation for typen af ​​node, der skal oprettes på trævisningskontrollen.

Dernæst, baseret på valget af muligheder, udføres SQL'en for at oprette New Record på Samplen Tabel med en ny AutoNumber ID-feltværdi.

Dernæst DMax() Funktion returnerer det unikke post-id som nøgleværdi for den nye node.

Baseret på indstillingen Node type (1,2 eller 3) oprettes noden på trævisningskontrollen.

Indholdet i egenskabsvisningens tekstfelt ryddes.


Sletning af node eller node med børn.

Slet node Option er meget nemmere end den tidligere øvelse. Sletter simpelthen den afkrydsede node og dens børn, hvis den er til stede, fra trævisningskontrollen. De relaterede poster slettes også fra tabellen.

VBA-koden til fjernelse af noder er angivet nedenfor:

Privat Sub cmdDelete_Click()Dim nodId As Long, nodParent As LongDim strSql As StringDim db As DAO.DatabaseDim j As IntegerDim tmpnode As MSComctlLib.NodeDim strKey As StringDim strMsg As StringDim-Notdes tv.Nodes If tmpnode.Checked Then tmpnode.Selected =True strKey =tmpnode.Key j =j + 1 End IfNext If j> 1 Then MsgBox "Selected Nodes:" &j &vbCr &"Select Only One Node to Delete." , vbCritical, "cmdDelete()" Exit Sub End IfSet tmpnode =tv.Nodes.Item(strKey)tmpnode.Selected =TrueSet db =CurrentDb'kontroller tilstedeværelsen af ​​Child Node(r) af markerede NodeIf tmpnode.Children> 0 Then' Advarsler:'Sletning af noder tilfældigt vil efterlade forældreløse noder' i tabellen og ende med fejl under næste trævisningsindlæsningsproces strMsg ="Den markerede node har " &tmpnode.Børn &" Børn. " &vbCr &"Slet Også børneknuder?" Hvis MsgBox(strMsg, vbYesNo + vbCritical, "cmdDelete()") =vbYes Så 'Dobbelttjek og få bekræftelse. strMsg ="Slet kun det dybeste sæt af underordnede noder" &vbCr strMsg =strMsg &"og deres overordnede node på én gang." &vbCr &vbCr strMsg =strMsg &"Er du sikker på, at du vil fortsætte..?" Hvis MsgBox(strMsg, vbYesNo + vbCritical, "cmdDelete()") =vbYes Then Do Until tmpnode.Children =0 nodId =Val(Mid(tmpnode.Child.Key, 2)) 'Slet Child Node tv.Nodes.Remove tmpnode. .Child.Index 'Slet den relaterede post strSql ="DELETE Sample.*, Sample.ID FROM Sample WHERE (((Sample.ID)=" &nodId &"));" db.Execute strSql Loop Else Exit Sub End If Else Exit Sub End IfEnd If nodId =Val(Mid(tmpnode.Key, 2)) 'Delete Parent tv.Nodes.Remove tmpnode.Key tv.Refresh 'Delete Marked Record strSql =" DELETE Sample.*, Sample.ID FROM Sample WHERE (((Sample.ID)=" &nodId &"));" db.Execute strSql 'Slet egenskabsværdier fra Form With Me .TxtKey ="" .TxtParent ="" .Text ="" End With Set db =Intet End Sub

Efter de lokale variabeldeklarationer vises For hver . . . Næste Loop tager en optælling af noder med flueben. Hvis der er fundet mere end ét markeret element, vises en meddelelse, og programmet afbrydes.

Hvis der kun er markeret ét element, søger det andet trins valideringstjek efter tilstedeværelsen af ​​underordnede noder for den valgte node. Hvis der findes underordnede noder, vises en meddelelse om den effekt. Brugeren skal genbekræfte sin hensigt om at fortsætte med at slette de underordnede noder først og derefter den afkrydsede overordnede node.

Bemærk: Brugere rådes til at slette det dybeste niveau af underordnede noder først, eller alle de dybeste underordnede noder med deres umiddelbare overordnede node, ved kun at markere den overordnede node, ikke markere den bedste-forældre node. Begrænsning af sletningsreglen til dette niveau vil holde koden enkel og let at forstå. Overtrædelse af denne regel kan efterlade nogle noder forældreløse og ende med fejl, når trævisningen åbner næste gang .

De underordnede noder fjernes én efter én, og de tilsvarende poster på bordet slettes også én efter én. Sletter derefter den markerede forældrepost.

Hvis den markerede node ikke har nogen underordnet node(r), slettes den umiddelbart efter valideringskontrollen, og den tilsvarende tabelpost slettes også.

Indholdet i egenskabsvisningens tekstboks på formularen ryddes.


Formularen fra Samples komplette VBA-kode for klassemodul.

Følgende er den komplette VBA-kode i frmSample s klassemodul med andre små underrutiner til udvidelse af sammenklappende noder, TreeView0_NodeCheck Hændelsesprocedure, cmdExit Kommandoknap Klik på Hændelse, Form_Load() Procedurer og CreateTreeView() Underrutine:

Option Sammenlign DatabaseOption ExplicitDim tv As MSComctlLib.TreeViewDim ImgList As MSComctlLib.ImageListConst KeyPrfx As String ="X"Private Sub cmdAdd_Click()Dim strKey As StringDim lngKey As LongDim Strkey AsText As LongDim strParent AsIDKey StringDim childflag As IntegerDim db As DAO.DatabaseDim strSql As StringDim intflag As IntegerDim tmpnode As MSComctlLib.NodeDim i As Integeri =0For Every tmpnode In tv.Nodes If tmpnode.Checked =TrueSend. 1 Derefter MsgBox "Valgte noder:" &i &vbCr &"Vælg kun én node for at markere tilføjelse.", vbCritical, "cmdAdd()" Afslut SubEnd If'Read egenskabsværdier fra FormstrKey =Trim(Me![TxtKey])lngKey =Val(Mid(strKey, 2))strParentKey =Trim(Mig![TxtParent])lngParentkey =IIf(Len(strParentKey)> 0, Val(Mid(strParentKey, 2)), 0)strText =Trim(Mig![ Tekst])'Læs child Node Option settingchildflag =Nz(Me.ChkChild.Value, 0)intflag =0strSql ="INSERT INTO Sample ([Desc], [ParentID] ) "Hvis lngParentkey =0 Og childflag =0 Så 'Tilføj rodniveau node, ParentKey er Blank strSql =strSql &"SELECT '" &strText &"' AS [ Desc], '" &" " strSql =strSql &"' AS ParentID FROM Sample WHERE ((Sample.ID =1));" intflag =1ElseIf (lngParentkey>=0) Og (childflag =True) Så 'Indsætter en underordnet node til den afkrydsede node, her Nøgleværdi brugt som ParentKey strSql =strSql &"SELECT '" &strText &"' AS [Desc ], '" &lngKey strSql =strSql &"' AS ParentID FROM Sample WHERE ((Sample.ID =1));" intflag =2ElseIf (lngParentkey>=0) Og (childflag =False) Derefter 'Indsætter Node på det afkrydsede niveau, Tilføj element under samme ParentKey strSql =strSql &"SELECT '" &strText &"' AS [Desc], '" &lngParentkey strSql =strSql &"' AS ParentID FROM Sample WHERE ((Sample.ID =1));" intflag =3End IfSet db =CurrentDbdb.Execute strSql'Få nyoprettet autonumber til brug som KeylngID =DMax("ID", "Sample")strIDKey =KeyPrfx &CStr(lngID)Ved fejl GoTo IdxOutofBounddSelect Root Case int-1fAdlag niveau Node, ParentKey er Blank tv.Nodes.Add , , strIDKey, strText, "folder_close", "folder_open" Case 2 'Indsætter en underordnet node til den afkrydsede node, her Nøgleværdi brugt som ParentKey tv.Nodes.Add strKey , tvwChild, strIDKey, strText, "left_arrow", "right_arrow" Case 3 'Indsætter Node på det afkrydsede niveau, Tilføj element under samme ParentKey tv.Nodes.Add strParentKey, tvwChild, strIDKey, strText, "left_arrow", " right_arrow"End Selecttv.Refresh 'Slet egenskabsværdier fra formular med mig .TxtKey ="" .TxtParent ="" .Text ="" End WithSet db =NothingcmdExpand_Click cmdAdd_Click_Exit:Exit SubIdxOutofBound:Create cm_TreeViewd_EndClosedClosee cmd Click() DoCmd.CloseEnd SubPrivate Sub cmdDelete_Click()Dim nodId As Long, nodParent As LongDim strSql As StringDim db As DAO.DatabaseDim j As IntegerDim tmpnode As MSComctlLib.NodeDim strKey =Key =String Ascount StringDim Hver tmpnode I tv.Nodes If tmpnode.Checked Then tmpnode.Selected =True strKey =tmpnode.Key j =j + 1 End IfNext If j> 1 Then MsgBox "Selected Nodes:" &j &vbCr &"Select Only One Node to Delete.", vbCritical, "cmdDelete()" Exit Sub End IfSet tmpnode =tv.Nodes.Item(strKey)tmpnode.Selected =TrueSet db =CurrentDb'kontroller tilstedeværelsen af ​​Child Node(r) af markerede NodeIf tmpnode.Children> 0 Derefter 'Advarsler:' Sletning af noder tilfældigt vil efterlade forældreløse noder' i tabellen og ende med fejl under næste trævisningsindlæsningsproces strMsg ="Den markerede node har " &tmpnode.Children &" børn. " &vbCr &"Slet også underordnede noder?" Hvis MsgBox(strMsg, vbYesNo + vbCritical, "cmdDelete()") =vbYes Så 'Dobbelttjek og få bekræftelse. strMsg ="Slet kun det dybeste sæt af underordnede noder" &vbCr strMsg =strMsg &"og deres overordnede node på én gang." &vbCr &vbCr strMsg =strMsg &"Er du sikker på, at du skal fortsætte..?" Hvis MsgBox(strMsg, vbYesNo + vbCritical, "cmdDelete()") =vbYes Så gør indtil tmpnode.Children =0 nodId =Val(Mid(tmpnode.Child.Key, 2)) 'Slet underordnet node tv.Nodes.Remove tmpnode.Child.Index 'Slet den relaterede post strSql ="DELETE Sample.*, Sample.ID FROM Sample WHERE (((Sample.ID)=" &nodId &"));" db.Execute strSql Loop Else Exit Sub End If Else Exit Sub End IfEnd If nodId =Val(Mid(tmpnode.Key, 2 )) 'Delete Parent tv.Nodes.Remove tmpnode.Key tv.Refresh 'Slet Marked Recor d strSql ="DELETE Sample.*, Sample.ID FROM Sample WHERE (((Sample.ID)=" &nodId &"));" db.Execute strSql 'Erase Property Values ​​from Form With Me .TxtKey ="" . TxtParent ="" .Text ="" Afslut med Sæt db =Intet Afslut SubPrivat Sub cmdExpand_Click()Dim nodExp As MSComctlLib.Node For Every nodExp In tv.Nodes nodExp.Expanded =True NextEnd SubPrivate Sub cmdCollapse_Click(Lib)MSComctlLib. Node For Hver nodExp I tv.Nodes nodExp.Expanded =False NextEnd SubPrivate Sub Form_Load() CreateTreeView cmdExpand_ClickEnd SubPrivate Sub CreateTreeView()Dim db As DatabaseDim rst As RecordsetDim nodKey As StringDim Strey Asree String Asree Strim ParentK TVS Strey Strey As Strey Asstree .Objecttv.Nodes.Clear'Pass ImageList kontrolreference til TreeViews ImageList Property.Set ImgList =Me.ImageList0.Objecttv.ImageList =ImgListstrSql ="SELECT ID, Desc, ParentID FROM Sample;"Set db =CurrentDbSet rst =db.OpenRecordset("sample", dbOpenTable)Do While Not rst.EOF And Not rst.BOF If Nz(rst!PrentID, "") ="" Så nodKey =KeyPrfx &CStr(rst!ID) strText =rst!desc tv.Nodes.Add , , nodKey, strText, "folder_close", "folder_open" Else ParentKey =KeyPrfx &CStr(rst!PrentID) nodKey =C KeyStrPrfx rst!ID) strText =rst!desc tv.Nodes.Add ParentKey, tvwChild, nodKey, strText, "left_arrow", "right_arrow" End Ifrst.MoveNextLooprst.CloseOn Error GoTo 0Set rst =IntetSet db =NothingSet SubTrePrivateNothingalEndCheV As Object)Dim xnode As MSComctlLib.NodeSet xnode =Node If xnode.Checked Then xnode.Selected =True With Me .TxtKey =xnode.Key If xnode.Text =xnode.FullPath Then .TxtParent ="" Else .TxtParent Parent.Key End If .Text =xnode.Text End With Else xnode.Selected =False With Me .TxtKey ="" .TxtParent ="" .Text ="" End WithEnd IfEnd Sub

Designvisningen af ​​frmSample Formen er givet nedenfor:

Dine observationer, kommentarer, forslag er velkomne.

Demodatabasen er vedhæftet til download.


ORDBOG OBJECT

  1. Grundlæggende om ordbogsobjekter
  2. Dictionary Object Basics-2
  3. Sortering af ordbogsobjektnøgler og -elementer
  4. Vis poster fra ordbog
  5. Tilføj klasseobjekter som ordbogselementer
  6. Opdater Class Object Dictionary Element


  1. pdo udarbejdede udsagn med jokertegn

  2. Migrering fra MySQL til PostgreSQL

  3. SQL Server:Find ud af standardværdien af ​​en kolonne med en forespørgsel

  4. PostgreSQL:Query Parallelism in Action