27 May 2015


Bagaimana menampilkan nama-nama tabel yang terdapat dalam satu file database Ms Access ke dalam ListBox? Rani mau coba jawab pertanyaan ini yah.

Berikut  ini database access yang akan menjadi kelinci percobaan kita, ada 3 tabel di dalam nya.

 Kemudian kita susun UI sebagai berikut:
Klo ada pertanyaan "koq ada datagridview nya juga sih?" Ini tambahan aja, biar model nya kayak artikel excel yang ini nih --> Click Here
Mari kita kebelakang panggung:
Imports System.Data.OleDb

Public Class Form1

Dim con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0" & _
                               ";Data Source=latihan.accdb;" & _
                               "Persist Security Info=False;")

Sub ListTables()
  Dim SchemaTable As DataTable

  Try
   ListBox1.Items.Clear()
   con.Open()
   SchemaTable = con.GetOleDbSchemaTable( _
       System.Data.OleDb.OleDbSchemaGuid.Tables, _
       New Object() {Nothing,
Nothing, Nothing, Nothing})

   For i As Integer = 0 To SchemaTable.Rows.Count - 1
     If SchemaTable.Rows(i).Item("TABLE_TYPE").ToString() = "TABLE" Then
      ListBox1.Items.Add(SchemaTable.Rows(i).Item("TABLE_NAME").ToString())
     End If
   Next


  Catch ex As Exception
      MessageBox.Show("Error: " & ex.Message)
  Finally
      con.Close()
  End Try

End Sub

Sub GetDataTable(TableName As String, Limit As Integer)
  Dim cmd As New OleDbCommand
 
Dim adapt As New OleDbDataAdapter
 
Dim dt As New DataTable

  Try
      con.Open()

      cmd.Connection = con
      cmd.CommandText = "SELECT TOP " & Limit.ToString() & _
                              " * FROM " & TableName

      adapt.SelectCommand = cmd
      adapt.Fill(dt)

      DataGridView1.DataSource = dt

  Catch ex As OleDbException
      MessageBox.Show("Error: " & ex.Message)
  Finally
      con.Close()
  End Try
End Sub


Private Sub Form1_Load(sender As Object, _
          e As EventArgs) Handles MyBase.Load

  ListTables()
  If ListBox1.Items.Count > 0 Then
      ListBox1.SelectedIndex = 0
  End If      
       
End Sub

Private Sub
ListBox1_SelectedIndexChanged(sender As Object, _
          e As EventArgs) Handles ListBox1.SelectedIndexChanged

  GetDataTable(ListBox1.SelectedItem.ToString, 100)

End Sub

End Class

Mari kita coba run, secara otomatis terpilih list item yang pertama.
 Dan jika list terpilih berubah datagrid akan menampilkan isi tabel yang terpilih.

Click here if you like this article.


1 comments:

Fadli F. Aziz (f2a) said...

Hallow Mbak Rani.. keren sharing ilmunya.

Mau tanya ni mbak, klo misalnya database MySql gmn ya?

Terima kasih