VERSION 5.00 Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX" Begin VB.Form frmData ClientHeight = 5625 ClientLeft = 60 ClientTop = 345 ClientWidth = 8025 LinkTopic = "Form1" ScaleHeight = 5625 ScaleWidth = 8025 StartUpPosition = 3 'Windows Default Begin MSComctlLib.ProgressBar pbrRecordSet1 Height = 4935 Left = 7080 TabIndex = 2 Top = 840 Width = 375 _ExtentX = 661 _ExtentY = 8705 _Version = 393216 Appearance = 1 Min = 1e-4 Orientation = 1 Scrolling = 1 End Begin MSComctlLib.TreeView trvBookList Height = 5295 Left = 360 TabIndex = 1 Top = 120 Width = 6255 _ExtentX = 11033 _ExtentY = 9340 _Version = 393217 Style = 7 Appearance = 1 End Begin VB.CommandButton cmdGo Caption = "GO !" Height = 495 Left = 6720 TabIndex = 0 Top = 240 Width = 1215 End End Attribute VB_Name = "frmData" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False 'oefening treeview 'req. Microsoft Windows Commen Controls 6.0 (voor TrrView componen, ' en references : ADO library, voor ADO data connection) Option Explicit Dim CN As ADODB.Connection Dim rsAuthors As ADODB.Recordset Dim rsBoeken As ADODB.Recordset Private Sub MakeTreeView() 'declareer een variabele van het type Node, van de collectie Nodes Dim objNode As Node 'tussendoortje : Progresbar klaarzetten Dim aantRecs As Integer While Not rsAuthors.EOF aantRecs = aantRecs + 1 rsAuthors.MoveNext Wend pbrRecordSet1.Min = 0 pbrRecordSet1.Max = aantRecs pbrRecordSet1.Value = 0 'niewe nodes worden toegevoegd door de methode ADD : 'obj.add(relative, relation, key, text, ...) 'make root 'leegmaken ... trvBookList.Nodes.Clear Set objNode = trvBookList.Nodes.Add(, , "Root", "Boeken :") 'een paar eigenschappen aanpassen With objNode .Expanded = True End With 'make children, 1st level, using data from record set 'variabelen Dim strParentKey As String Dim strChildKey As String Dim lngAutoNumber As Long Dim strText As String rsAuthors.MoveFirst lngAutoNumber = 1 While Not rsAuthors.EOF 'add children 'syntax zoals root, maar parameters zijn anders strParentKey = "Root" strChildKey = "A" & lngAutoNumber strText = rsAuthors.Fields(1).Value Set objNode = trvBookList.Nodes.Add(strParentKey, tvwChild, strChildKey, strText) objNode.Expanded = True '_____________________________________________________ ' >>> Add children, lebel 2 'identiek aan level 1, maar andere recordset Dim AuthorID As Integer 'maak rekordset "Boeken" van huidig Author AuthorID = rsAuthors.Fields(0).Value MakeRecordSetBoeken (AuthorID) strParentKey = strChildKey While Not rsBoeken.EOF 'add children 'syntax zoals level, maar parameterwaarden zijn anders strChildKey = "B" & lngAutoNumber strText = rsBoeken.Fields(0).Value Set objNode = trvBookList.Nodes.Add(strParentKey, tvwChild, strChildKey, strText) objNode.Expanded = True lngAutoNumber = lngAutoNumber + 1 rsBoeken.MoveNext Wend rsBoeken.Close Set rsBoeken = Nothing '_____________________________________________________ 'level 1 vberder afwerken rsAuthors.MoveNext lngAutoNumber = lngAutoNumber + 1 'Progress Bar pbrRecordSet1.Value = pbrRecordSet1.Value + 1 Wend 'recordset en connectie afsluiten; niet meer nodig rsAuthors.Close Set rsAuthors = Nothing CN.Close Set CN = Nothing End Sub Private Sub Database() 'connect Set CN = New ADODB.Connection CN.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & App.Path & "\BIBLIO.MDB" CN.Open End Sub Private Sub MakeRecordSetAuthors() Set rsAuthors = New ADODB.Recordset rsAuthors.ActiveConnection = CN rsAuthors.Source = "SELECT * FROM Authors" rsAuthors.Open End Sub Private Sub MakeRecordSetBoeken(intAuthor As Integer) Dim strSQL As String strSQL = " select * from Titles, [Title Author] Linked " _ & "where Titles.ISBN = Linked.ISBN " _ & "AND Linked.Au_ID = " & intAuthor & ";" Set rsBoeken = New ADODB.Recordset rsBoeken.ActiveConnection = CN rsBoeken.Source = strSQL rsBoeken.Open End Sub Private Sub Afsluiten() rsAuthors.Close Set rsAuthors = Nothing CN.Close Set CN = Nothing End Sub Private Sub cmdGo_Click() Database MakeRecordSetAuthors MakeTreeView End Sub Private Function AantalRecords() As Integer AantalRecords = 0 Do While Not rsAuthors.EOF AantalRecords = AantalRecords + 1 rsAuthors.MoveNext Loop End Function