vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Datenbanken
Re: Konten und Unterkonten 
Autor: modellskipper
Datum: 09.07.05 08:55

Jeder Datensatz in deiner Tabelle bekommt eine eindeutige ID und einen Verweis auf sein übergeordnetes Element, eine Parent-ID. Die oberste Stufe, quasi deine Hauptkonten, haben als Parent-ID ein 0.

Du selektierst dann die Daten beginnen bei Parent-ID=0. In einer zweiten Abfragen überprüfst du ob zur entsprechenden ID ein untegordnetes Konto gespeichert ist.

Diese zweite Abfrage rufst du rekursiv auf.

Mit was programmjerst du? In vb.net sieht das anhand eines Beispiels mit Warengruppen so aus:

Function lade_hauptnodes()
 
        Dim dt As DataTable = New DataTable("warengruppe")
        Dim Haupt_Tn As TreeNode
        Dim Tn As TreeNode
 
        Dim sCN As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
          projektdatenbank
        Dim sqlkommando As String= "Select * FROM stamm_warengruppen ORDER BY" & _
        "parent_id, bezeichnung"
 
        Dim cn As OleDb.OleDbConnection = New OleDb.OleDbConnection(sCN)
        Dim da As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter( _
          sqlkommando, cn)
        Dim cmd As OleDb.OleDbCommandBuilder = New OleDb.OleDbCommandBuilder(da)
        da.Fill(dt)
 
        With TreeView
 
            .SelectedNode = Nothing
            .Nodes.Clear()
 
            .BeginUpdate()
 
            Haupt_Tn = New TreeNode("Warengruppen")
            .Nodes.Add(Haupt_Tn)
 
            For Each r As DataRow In dt.Rows
 
                Tn = New TreeNode(r("bezeichnung"))
 
                If r("parent_id") = 0 Then
                    Haupt_Tn.Nodes.Add(Tn)
                    lade_subnodes(Tn, dt, r("warengruppe_id"))
                Else
                    Exit For
                End If
 
            Next
 
            .EndUpdate()
 
        End With
 
    End Function
 
    Private Function lade_subnodes(ByRef tn As TreeNode, ByRef dt As DataTable, _
      ByVal ID As Integer)
 
        Dim foundRows() As DataRow = dt.Select("parent_id = " + ID.ToString, _
          "bezeichnung")
        Dim Tn_Sub As TreeNode
 
        For Each _r As DataRow In foundRows
 
            Tn_Sub = New TreeNode(_r("bezeichnung"))
            tn.Nodes.Add(Tn_Sub)
            lade_subnodes(Tn_Sub, dt, _r("warengruppe_id"))
 
        Next
 
    End Function
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Konten und Unterkonten1.261Peacemaker08.07.05 19:04
Re: Konten und Unterkonten816modellskipper09.07.05 08:55
Re: Konten und Unterkonten794Peacemaker09.07.05 11:58
Re: Konten und Unterkonten797modellskipper09.07.05 16:40
Re: Konten und Unterkonten770Peacemaker10.07.05 13:25
Re: Konten und Unterkonten774Peacemaker23.07.05 00:44

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel