VB 5/6-Tipp 0625: Inhalt einer Datenbank in einem Treeview anzeigen
von H. W. Wiemer
Beschreibung
Das folgende Beispiel beschreibt, wie man den Inhalt einer Datenbank in einem Treeview darstellen kann.
Schwierigkeitsgrad: | Verwendete API-Aufrufe: keine | Download: |
'Dieser Quellcode stammt von http://www.activevb.de 'und kann frei verwendet werden. Für eventuelle Schäden 'wird nicht gehaftet. 'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. 'Ansonsten viel Spaß und Erfolg mit diesem Source! '-------------- Anfang Projektdatei tvwdb.vbp -------------- ' Es muss ein Verweis auf 'Microsoft ActiveX Data Objects 2.5 Library' gesetzt werden. ' Die Komponente 'Microsoft Windows Common Controls 6.0 (SP6) (MSCOMCTL.OCX)' wird benötigt. '------- Anfang Formular "frmMain" alias frmMain.frm ------- ' Steuerelement: Bilderlistenelement "il" ' Steuerelement: Baumstrukursteuerelement "tvw" Option Explicit Private db As ADODB.Connection Private Sub Form_Load() 'Deklarieren der Variablen für die NodeObjekte Dim sGruppe As String Dim sGruppenid As String Dim sKey As String Dim i As Integer Dim nNode As Node Dim rs As Recordset Dim comm As ADODB.Command Set db = New ADODB.Connection db.CursorLocation = adUseClient 'Für ACCESS 97 db.Open "PROVIDER=Microsoft.Jet.OLEDB.3.51;Data " & _ "Source=" & App.Path & IIf(Right(App.Path, 1) = "\", "", "\") & "Personal.mdb;" 'Für ACCESS 2000 'db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data " & _ "Source=" & App.Path & IIf(Right(App.Path, 1) = "\", "", "\") & "Personal.mdb;" 'Mit Command Objekt auf Tabelle zugreifen Set comm = New ADODB.Command With comm .ActiveConnection = db .CommandType = adCmdText .CommandText = "Select * From Gruppe" End With Set rs = comm.Execute 'Datensätze auslesen While Not rs.EOF For i = 0 To rs.Fields.Count - 1 'Feldnamen auslesen 'Groß und Kleinschrift beachten! Select Case rs.Fields(i).Name Case "GRUPPEN_NAME" sGruppe = rs.Fields(i).Value Case "GRUPPEN_ID" sGruppenid = rs.Fields(i).Value End Select Next i 'Deklarieren des Schlüssels für die Untergruppe sKey = "ID," & sGruppenid Set nNode = tvw.Nodes.Add(, tvwChild, sKey, sGruppe, 1) Call AddPersonal(sGruppenid, sKey) rs.MoveNext Wend Set rs = Nothing Set comm = Nothing Set nNode = Nothing End Sub Public Sub AddPersonal(sGruppenid, sKey) Dim sPersonalname As String Dim sPersonalid As String Dim sTelefonid As String Dim comm As ADODB.Command Dim rs As ADODB.Recordset Dim i As Integer Dim nNode As Node Set comm = New ADODB.Command With comm .ActiveConnection = db .CommandType = adCmdText .CommandText = "Select * From PERSONAL Where GRUPPEN_ID =" & CVar(sGruppenid) End With Set rs = comm.Execute 'Datensätze auslesen While Not rs.EOF For i = 0 To rs.Fields.Count - 1 Select Case rs.Fields(i).Name Case "PERSONAL_NAME" sPersonalname = rs.Fields(i).Value Case "PERSONAL_ID" sPersonalid = rs.Fields(i).Value End Select Next i sTelefonid = sKey & "," & sPersonalid Set nNode = tvw.Nodes.Add(sKey, tvwChild, sTelefonid, sPersonalname, 1) Call AddTelefon(sPersonalid, sTelefonid) rs.MoveNext Wend Set nNode = Nothing Set rs = Nothing Set comm = Nothing End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) db.Close Set db = Nothing End Sub Private Sub tvw_Collapse(ByVal Node As MSComctlLib.Node) Node.Image = 1 End Sub Private Sub tvw_Expand(ByVal Node As MSComctlLib.Node) Node.Image = 2 End Sub Public Sub AddTelefon(sPersonalid, sTelefonid) Dim sTelefon As String Dim comm As ADODB.Command Dim nNode As Node Dim rs As Recordset Dim i As Integer Set comm = New ADODB.Command With comm .ActiveConnection = db .CommandType = adCmdText .CommandText = "Select * From TELEFON Where PERSONAL_ID =" & CVar(sPersonalid) End With Set rs = comm.Execute 'Datensätze auslesen While Not rs.EOF For i = 0 To rs.Fields.Count - 1 Select Case rs.Fields(i).Name Case "TEL_NUMBER" sTelefon = rs.Fields(i).Value End Select Next i Set nNode = tvw.Nodes.Add(sTelefonid, tvwChild, , sTelefon, 3) rs.MoveNext Wend Set rs = Nothing Set comm = Nothing Set nNode = Nothing End Sub '-------- Ende Formular "frmMain" alias frmMain.frm -------- '--------------- Ende Projektdatei tvwdb.vbp ---------------
Tipp-Kompatibilität:
Windows/VB-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | |||||||
VB5 | |||||||
VB6 |
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.
Archivierte Nutzerkommentare
Klicken Sie diesen Text an, wenn Sie die 3 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.
Kommentar von martin am 30.08.2005 um 02:32
Muy bueno, very good
Kommentar von Martin K. am 20.12.2004 um 00:52
Hallo,
Leider schaffe ich es nicht den Tipp 0625: Inhalt einer Datenbank in einem Treeview anzeigen in die aktuelle .NET umgebung einzubinden, könnten sie mir helfen?
Beste Grüße
Martin
Kommentar von flo am 11.10.2004 um 10:57
UND WIE PSEICHERT MAN DES?