VERSION 5.00 Object = "{BDC217C8-ED16-11CD-956C-0000C04E4C0A}#1.1#0"; "TABCTL32.OCX" Begin VB.Form frmData ClientHeight = 5355 ClientLeft = 60 ClientTop = 345 ClientWidth = 8025 LinkTopic = "Form1" ScaleHeight = 5355 ScaleWidth = 8025 StartUpPosition = 3 'Windows Default Begin VB.ListBox lstBooks Height = 2985 Left = 1200 TabIndex = 5 Top = 1680 Width = 6375 End Begin VB.CommandButton cmdPrev Caption = "Back" Height = 495 Left = 1200 TabIndex = 4 Top = 2160 Width = 1215 End Begin VB.CommandButton cmdNext Caption = "Next" Height = 495 Left = 2520 TabIndex = 3 Top = 2160 Width = 1215 End Begin VB.TextBox txtAuthor Height = 285 Left = 1200 TabIndex = 2 Top = 1800 Width = 2895 End Begin TabDlg.SSTab tabData Height = 3855 Left = 720 TabIndex = 1 Top = 1080 Width = 7005 _ExtentX = 12356 _ExtentY = 6800 _Version = 393216 MousePointer = 14 Tabs = 2 TabsPerRow = 2 TabHeight = 520 TabCaption(0) = "Author" Tab(0).ControlEnabled= -1 'True Tab(0).ControlCount= 0 TabCaption(1) = "Books" Tab(1).ControlEnabled= 0 'False Tab(1).ControlCount= 0 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 'uses components : Sheridan Tab Dialog Controll - SStab Option Explicit Dim CN As ADODB.Connection Dim rsAuthors As ADODB.Recordset Dim rsBoeken As ADODB.Recordset Private Sub Database() 'connect Set CN = New ADODB.Connection CN.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=E:\Microsoft Visual Studio\VB98\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 End Sub Private Function AantalRecords() As Integer AantalRecords = 0 Do While Not rsAuthors.EOF AantalRecords = AantalRecords + 1 rsAuthors.MoveNext Loop End Function Private Sub cmdNext_Click() rsAuthors.MoveNext txtAuthor.Text = rsAuthors.Fields(1).Value End Sub Private Sub cmdPrev_Click() 'rsAuthors.MovePrevious txtAuthor.Text = rsAuthors.Fields(1).Value End Sub Private Sub tabData_Click(PreviousTab As Integer) 'components in tab moeten visible/enabled (of niet) 'gezet worden afhankelijk van het geselecteerde tabblad 'dit gaat niet vanzelf 'bijv. : Select Case tabData.Tab 'tabData.Tab is het nummer van de tab, re. properties Case 0 cmdNext.Visible = True cmdNext.Enabled = True cmdPrev.Visible = True cmdPrev.Enabled = True lstBooks.Visible = False Case 1 cmdNext.Visible = False cmdNext.Enabled = False cmdPrev.Visible = False cmdPrev.Enabled = False lstBooks.Visible = True End Select 'of : met index 0/1 als true/false 'in andere gevallen : contrall arrays gebruiken, 'zodat index van controll overeenkomt met nummer van tab, 'zodat daarmee gewerkt kan worden. '(ander voorbeeldprogramma maken ?) ' procedures volgens tab-index If tabData.Tab = 1 Then 'corresponderende boeken ophalen Dim intAuthor_ID As Integer Dim strSQL As String 'make rs 'dit klan beter in aparte procedure , 'maar ter illustratie van tab is dit voldoende intAuthor_ID = rsAuthors.Fields(0).Value strSQL = " select * from Titles, [Title Author] Linked " _ & "where Titles.ISBN = Linked.ISBN " _ & "AND Linked.Au_ID = " & intAuthor_ID & ";" Set rsBoeken = New ADODB.Recordset rsBoeken.ActiveConnection = CN rsBoeken.Source = strSQL rsBoeken.Open 'Dump to listbox Dim i As Integer lstBooks.Clear While Not rsBoeken.EOF For i = 0 To (rsBoeken.Fields.Count - 1) If rsBoeken.Fields(i) <> vbNullString Then lstBooks.AddItem rsBoeken.Fields(i).Value End If Next i rsBoeken.MoveNext Wend rsBoeken.Close Set rsBoeken = Nothing End If End Sub