Imports System
Imports System.Data
Imports System.Data.OleDb

Public Class frmSQLTester
  Inherits System.Windows.Forms.Form

  Private Const MAX_RECORDS As Integer = 10000
  Private strConnect As String

  ' Windows Form Designer generated code

  Private Function GetFileName() As String
    ' Przeznaczenie: Ta funkcja próbuje otworzyć bazę danych Access 
    '
    ' Lista argumentów:
    '  brak
    '
    ' Zwracana wartość
    '  string   nazwa wskazanego pliku albo pusty łańcuch znaków 
    '        w przypadku anulowania.
    '
    Dim NewFileName As String
    Dim NewFile As OpenFileDialog = New OpenFileDialog()
    Dim MyChoice As DialogResult

    With NewFile
      .Filter = "Access Files(*.mdb)|*.mdb|All Files " & _
                         "(*.*)|*.*"
      .FilterIndex = 1        ' Przyjmujemy za domyślne pliki bazy 
                              ' Access
      .DefaultExt = "mdb"      ' Jak wyżej
      .InitialDirectory = "D:\VSNET\Crystal Reports\Samples\Database\"
      .CheckFileExists = False
      .ReadOnlyChecked = True
      .Title = "Open Access Data File"
    End With

    MyChoice = NewFile.ShowDialog      ' Co wybrał użytkownik?

    If MyChoice = DialogResult.Cancel Then ' Zrezygnował?
      NewFileName = ""
    Else
      NewFileName = NewFile.FileName
    End If

    If NewFileName.Length > 0 Then
      Return NewFileName
    End If
    Return 0
  End Function

  Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As _
              System.EventArgs) Handles MyBase.Load
    ' Przeznaczenie: Otwarcie bazy danych i przeczytanie z niej nazw 
    ' tabel.
    Dim FileName As String
    Dim AdoConn As New ADODB.Connection()
    Dim MyCat As New ADOX.Catalog()
    Dim tbl As ADOX.Table

    FileName = GetFileName()      ' Pobierz nazwę pliku bazy danych
    If FileName.Length = 0 Then
      Exit Sub
    End If
    Me.Text = "SQL Tester: " & FileName ' Pokaż nazwę pliku

    ' Tu budujemy łańcuch połączenia. Będzie on używany również później.
    strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User" & _
             "ID=Admin;Data Source="
    strConnect &= FileName
    AdoConn.Open(strConnect)
    MyCat.ActiveConnection = AdoConn

    For Each tbl In MyCat.Tables    ' Pokaż nazwy pól
      lstTables.Items.Add(tbl.Name.ToString)
    Next
    AdoConn.Close()

  End Sub
