Showing posts with label VB.NET MS. Acces. Show all posts
Showing posts with label VB.NET MS. Acces. Show all posts

Sunday, September 13, 2020

Koneksi Visual Basic .Net (Vb.Net) Ke Ms Access


Pada peluang ini Rani mau buat suatu Windows Form Application yang dikoneksikan dengan database Microsoft Access. Hal yang paling yummy (klo mampu disebut kelebihan) dari pemrograman database dengan Ms Access yakni kita tinggal menyimpan file database mdb atau accdb satu lokasi/folder dengan file .exe (aplikasi) kita. Ini memudahkan dikala deployment dan instalasi alasannya kita tidak butuhlagi mengontrol koneksi/connectionstring.

Okay.... kita akan buat satu aplikasi window sederhana, dan selama proses development kita akan menyimpan database kita di folder bin debug supaya satu lokasi dengan file exe yang digunakan ketika proses debug. Untuk mendapatkan folder ini setelah aplikasi dibentuk kita lakukan kompilasi/build dengan cara mirip berikut (VS2012) klik sajian BUILD --> Build Solution.
(Pastikan configuration dalam mode Debug)
Kemudian buat dan simpan file database pada path folder solution/project/bin/debug. Sebagai acuan solution/project berjulukan VBAccess.
Saat ini kita cuma akan fokus terhadap koneksi database nya saja, aplikasi yang mau kita buat yakni untuk mengecek apakah koneksi sukses atau tidak. Buat UI sederhana sebagai berikut:
Mari beralih ke code. Pertama-tama kita perlu mengimport OleDb.
Imports System.Data.OleDb


Kemudian menciptakan satu fungsi bertipe boolean untuk memeriksa koneksi.
Function OpenConnection() As Boolean
  Dim con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;" & _
                                 "Data Source=latihan.accdb;" & _
                                 "Persist Security Info=False;")
  Try
      con.Open()
      con.Close()
      Return True
  Catch ex As Exception
      MsgBox("Error: " & ex.Message)
      Return False
  End Try


End Function


Pada Event form load kita atur text untuk button1.
Private Sub Form1_Load(sender As Object, _
            e As EventArgs) Handles MyBase.Load
    Button1.Text = "Test Koneksi"
End Sub


Kemudian pengecekan koneksi dijalankan saat button1 diklik.
Private Sub Button1_Click(sender As Object, _
             e As EventArgs) Handles Button1.Click
   If OpenConnection() = True Then
        MsgBox("Koneksi database berhasil")
   End If
End Sub


Berikut code lengkapnya:
Imports System.Data.OleDb

Public Class Form1

 Function OpenConnection() As Boolean
     Dim con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;" & _
                                    "Data Source=latihan.accdb;" & _
                                    "Persist Security Info=False;")
     Try
         con.Open()
         con.Close()
         Return True
     Catch ex As Exception
         MsgBox("Error: " & ex.Message)
         Return False
     End Try


 End Function

 Private Sub Form1_Load(sender As Object, _
             e As EventArgs) Handles MyBase.Load
     Button1.Text = "Test Koneksi"
 End Sub

 Private Sub Button1_Click(sender As Object, _
             e As EventArgs) Handles Button1.Click
     If OpenConnection() = True Then
         MsgBox("Koneksi database berhasil")
     End If
 End Sub

End Class


Setelah simpulan dengan code, coba run debug.
Klik tombo "Test Koneksi" dan jikalau berhasil akan muncul pesan sebagai berikut:

Click here if you like this article.



Sumber http://rani-irsan.blogspot.com

Saturday, September 12, 2020

Vb.Net Ms Access: Menampilkan Data Di Datagridview


Sekarang kita akan membahas bagaimana memperlihatkan data dari table di Ms Access ke DataGridView.
Bentuk tabel yang kita gunakan:
UI yang akan dipakai hanya form dan sebuah DataGridView.
Code VB.NET:
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;")

    Private Sub Form1_Load(sender As Object, _
                e
As EventArgs) Handles MyBase.Load
        Dim cmd As New OleDbCommand
       
Dim adapt As New OleDbDataAdapter
       
Dim dt As New DataTable

        Try
            con.Open()

            cmd.Connection = con
            cmd.CommandText = "SELECT kodekategori, namakategori " & _
                              "FROM klasifikasi"

            adapt.SelectCommand = cmd
            adapt.Fill(dt)

            DataGridView1.DataSource = dt

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

End Class


Hasil run:



Click here if you like this article.



Sumber http://rani-irsan.blogspot.com

Friday, September 11, 2020

Vb.Net Ms Access: Memperlihatkan List Tabel Yang Ada Pada Database Access


Bagaimana memperlihatkan 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 jikalau list terpilih berubah datagrid akan memperlihatkan isi tabel yang terpilih.

Click here if you like this article.



Sumber http://rani-irsan.blogspot.com

Thursday, September 10, 2020

Vb.Net Ms Access: Memperlihatkan Data Dari Database Ke List Combobox


Sekarang kita coba memperlihatkan data dari tabel klasifikasi ke dalam list combobox.
Atur layout sederhana seperti berikut:
Semudian source code di belakang form yakni selaku berikut:
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;")


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

      Dim cmd As New OleDbCommand
     
Dim adapt As New OleDbDataAdapter
     
Dim dt As New DataTable

      Try
          con.Open()

          cmd.Connection = con
          cmd.CommandText = "Select kodekategori, namakategori From kategori"

          adapt.SelectCommand = cmd
          adapt.Fill(dt)


          ComboBox1.DataSource = dt
          ComboBox1.DisplayMember = "namakategori"
          ComboBox1.ValueMember = "kodekategori"

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


End Class

Coba Run:
 List akan memperlihatkan data kategori.


Click here if you like this article.



Sumber http://rani-irsan.blogspot.com

Vb.Net Ms Access: Filter Combobox Untuk Ditampilkan Di Combobox Lain


Untuk artikel yang satu ini Rani agak gundah memberi judul bahu-membahu.
Intinya kalau terdapat 2 buah combobox yang ingin menampilkan data dari database, dimana performa combobox kedua merupakan hasil filter dari combobox pertama.

Dua tabel dari database yang akan kita gunakan adalah:
Tabel Kategori:
Tabel Item:

Atur UI di form sebagai berikut:
Seperti lazimkita perlu mengimport OLEDB untuk membuat koneksi Access, di bab paling atas jendela code.
Imports System.Data.OleDb

Kemudian di antara area class form kita deklarasikan object koneksi dan buat suatu sub procedure untuk mebuka koneksi.
Dim con As New OleDbConnection   

Sub Open_Koneksi()
    con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0" & _
                           ";Data Source=latihan.accdb;" & _
                           "Persist Security Info=False;"
    con.Open()
End Sub


Kode untuk memperlihatkan data di ComboBox1
  Sub ListKategori()
      Dim cmd As New OleDbCommand
     
Dim adapt As New OleDbDataAdapter
     
Dim dt As New DataTable

      Try
          If Not con.State = ConnectionState.Open Then Open_Koneksi()

          cmd.Connection = con
          cmd.CommandText = "Select kodekategori, namakategori From klasifikasi"

          adapt.SelectCommand = cmd
          adapt.Fill(dt)

          ComboBox1.DataSource = dt
          ComboBox1.DisplayMember = "namakategori"
          ComboBox1.ValueMember = "kodekategori"

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


Kode untuk menampilkan data di ComboBox2
Sub ListItem(KodeKategori As String)
    Dim cmd As New OleDbCommand
   
Dim adapt As New OleDbDataAdapter
   
Dim dt As New DataTable

    Try
        If Not con.State = ConnectionState.Open Then Open_Koneksi()

        cmd.Connection = con
        cmd.CommandText = "Select kodeitem, namaitem From item " & _
                          "WHERE kodekategori = '" & KodeKategori & "'"

        adapt.SelectCommand = cmd
        adapt.Fill(dt)


        ComboBox2.DataSource = dt
        ComboBox2.DisplayMember = "namaitem"
        ComboBox2.ValueMember = "kodeitem"

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


Kita akan mengundang sub ListKategori pada ketika event form load.
Private Sub Form2_Load(sender As Object, _
      e As EventArgs) Handles MyBase.Load

    ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList
    ComboBox2.DropDownStyle = ComboBoxStyle.DropDownList

    ListKategori()
End Sub


Dan memanggil ListItem pada saat event combobox1 selectedvaluechanged.
Private Sub ComboBox1_SelectedValueChanged(sender As Object, _
        e As EventArgs) Handles ComboBox1.SelectedValueChanged
    ListItem(ComboBox1.SelectedValue.ToString)
End Sub


Runtime:



Kode selengkapnya:
Imports System.Data.OleDb

Public Class Form2
  Dim con As New OleDbConnection   

  Sub Open_Koneksi()
      con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0" & _
                             ";Data Source=latihan.accdb;" & _
                             "Persist Security Info=False;"
      con.Open()
  End Sub

  Sub ListKategori()
      Dim cmd As New OleDbCommand
     
Dim adapt As New OleDbDataAdapter
     
Dim dt As New DataTable

      Try
          If Not con.State = ConnectionState.Open Then Open_Koneksi()

          cmd.Connection = con
          cmd.CommandText = "Select kodekategori, namakategori From kategori"

          adapt.SelectCommand = cmd
          adapt.Fill(dt)

          ComboBox1.DataSource = dt
          ComboBox1.DisplayMember = "namakategori"
          ComboBox1.ValueMember = "kodekategori"

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


  Sub ListItem(KodeKategori As String)
      Dim cmd As New OleDbCommand
     
Dim adapt As New OleDbDataAdapter
     
Dim dt As New DataTable

      Try
          If Not con.State = ConnectionState.Open Then Open_Koneksi()

          cmd.Connection = con
          cmd.CommandText = "Select kodeitem, namaitem From item " & _
                            "WHERE kodekategori = '" & KodeKategori & "'"

          adapt.SelectCommand = cmd
          adapt.Fill(dt)


          ComboBox2.DataSource = dt
          ComboBox2.DisplayMember = "namaitem"
          ComboBox2.ValueMember = "kodeitem"

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


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

      ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList
      ComboBox2.DropDownStyle = ComboBoxStyle.DropDownList

      ListKategori()
  End Sub

  Private Sub ComboBox1_SelectedValueChanged(sender As Object, _
          e As EventArgs) Handles ComboBox1.SelectedValueChanged
      ListItem(ComboBox1.SelectedValue.ToString)
  End Sub

End Class



Click here if you like this article.



Sumber http://rani-irsan.blogspot.com

Wednesday, September 9, 2020

Vb.Net Ms Access: Memperlihatkan Data Di Datagridview Dengan Filter Combobox


Dari judul mungkin udah jelas artikel ini tentang apa, jadi pribadi aja yaaah...
Dua tabel dari database yang mau kita gunakan ialah:
Tabel Kategori:

Tabel Item:

Atur UI di form sebagai berikut:

Seperti lazimkita perlu mengimport OLEDB untuk menciptakan koneksi Access, di bagian paling atas jendela code.
Imports System.Data.OleDb

Kemudian di antara area class form kita deklarasikan object koneksi dan buat sebuah sub procedure untuk mebuka koneksi.
Dim con As New OleDbConnection   

Sub Open_Koneksi()
    con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0" & _
                           ";Data Source=latihan.accdb;" & _
                           "Persist Security Info=False;"
    con.Open()
End Sub


Kode untuk memperlihatkan data di ComboBox1
Sub ListKategori()
    Dim cmd As New OleDbCommand
   
Dim adapt As New OleDbDataAdapter
   
Dim dt As New DataTable

    Try
        If Not con.State = ConnectionState.Open Then Open_Koneksi()

        cmd.Connection = con
        cmd.CommandText = "Select kodekategori, namakategori From klasifikasi"

        adapt.SelectCommand = cmd
        adapt.Fill(dt)

        ComboBox1.DataSource = dt
        ComboBox1.DisplayMember = "namakategori"
        ComboBox1.ValueMember = "kodekategori"

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


Runtime:


Kode selengkapnya:
Imports System.Data.OleDb

Public Class Form2
  Dim con As New OleDbConnection   

  Sub Open_Koneksi()
      con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0" & _
                             ";Data Source=latihan.accdb;" & _
                             "Persist Security Info=False;"
      con.Open()
  End Sub

  Sub ListKategori()
      Dim cmd As New OleDbCommand
     
Dim adapt As New OleDbDataAdapter
     
Dim dt As New DataTable

      Try
          If Not con.State = ConnectionState.Open Then Open_Koneksi()

          cmd.Connection = con
          cmd.CommandText = "Select kodekategori, namakategori From klasifikasi"

          adapt.SelectCommand = cmd
          adapt.Fill(dt)

          ComboBox1.DataSource = dt
          ComboBox1.DisplayMember = "namakategori"
          ComboBox1.ValueMember = "kodekategori"

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


  Sub DisplayToGrid(ByVal KodeKategori As String)
      Dim cmd As New OleDbCommand
     
Dim adapt As New OleDbDataAdapter
     
Dim dt As New DataTable

      Try
          If Not con.State = ConnectionState.Open Then Open_Koneksi()

          cmd.Connection = con
          cmd.CommandText = "SELECT kodeitem, namaitem FROM item " & _
                            "WHERE kodekategori = '" & KodeKategori & "'"

          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 Form2_Load(sender As Object, _
        e As EventArgs) Handles MyBase.Load

      ComboBox1.DropDownStyle = ComboBoxStyle.DropDownLis
      ListKategori()


  End Sub

  Private Sub ComboBox1_SelectedValueChanged(sender As Object, _
          e As EventArgs) Handles ComboBox1.SelectedValueChanged
     
DisplayToGrid(ComboBox1.SelectedValue.ToString)
  End Sub

End Class



Click here if you like this article.



Sumber http://rani-irsan.blogspot.com

Vb.Net: Proses Login Dengan Database Ms Access - Part 1


Bentuk tabel user yang akan kita gunakan:

Kebut mode on, kita bikin UI nya pakai template aja yah. Caranya?
Project --> Add Windows Form...
Pada Common Item pilih windows form, lalu pilih Login Form dan klik tombol Add.
Dan login form dari template pun terbentuk.
Begitu pula code di belakangnya, terdapat code yang di generate secara otomatis.
Bagian arahan yang tidak kita gunakan mampu kita hapus.
Dan mirip lazimkita perlu mengimport OLEDB untuk menciptakan koneksi Access, di bagian paling atas jendela code.
Imports System.Data.OleDb

Kemudian di antara area class form kita deklarasikan object koneksi dan buat sebuah sub procedure untuk mebuka koneksi.
Dim con As New OleDbConnection   

Sub Open_Koneksi()
    con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0" & _
                           ";Data Source=latihan.accdb;" & _
                           "Persist Security Info=False;"
    con.Open()
End Sub


Lalu kita akan mendeklarasikan suatu variable integer bernama iFail untuk mengkalkulasikan berapa kali kesalahan login.
Dim iFail As Integer

Lalu si variable iFail ini diberi nilai initial = 0 pada event form_load.
Private Sub LoginForm1_Load(ByVal sender As Object, _
     ByVal e As System.EventArgs) Handles Me.Load
     iFail = 0
End Sub


Buat ngecek apa login nya bener ato salah, kita membuatfungsi tersendiri berjulukan CheckLogin yang akan mengembalikan nilai integer. Nilai 1 bila benar dan 0 kalau salah.
Function CheckLogin(ByVal UserName As String, _
    ByVal Password As String) As Integer


    Dim cmd As New OleDbCommand
    Dim objValue As Object

    If Not con.State = ConnectionState.Open Then Open_Koneksi()


    Try
        cmd.Connection = con
        cmd.CommandText = "SELECT COUNT(username) AS getin " & _
                          "FROM tbluser WHERE username = " & _
                          "'" & UserName & "' AND " & _
                          "password = '" & Password & "'"

        objValue = cmd.ExecuteScalar()
        con.Close()
        If objValue Is Nothing Then
            Return 0
        Else
            Return
objValue.ToString
        End If
    Catch
myerror As OleDbException
        MessageBox.Show("Error: " & myerror.Message)
    Finally
        con.Dispose()
    End Try
    Return
0
End Function


Proses login dimulai dengan mengisi username dan password kemudian klik tombol OK. Dan berikut ini code yang berada pada event OK_Click.
Private Sub OK_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles OK.Click
    Dim strUserName As String = UsernameTextBox.Text
   
Dim strPassword As String = PasswordTextBox.Text

    If strUserName = String.Empty Then _
       MsgBox("Username belum diisi!") : Exit Sub
   
If strPassword = String.Empty Then _
       MsgBox("Password belum diisi!") : Exit Sub

    Try
        If
CheckLogin(strUserName, strPassword) > 0 Then
            MsgBox("Welcome " & strUserName & "!")
            'tulis code lainnya sesudah login disini
            Me.Close()
        Else
            iFail = iFail + 1
            If iFail >= 3 Then
                MsgBox("Gagal login 3 kali." & vbCrLf & _
                       "Aplikasi akan ditutup.")

                End
            End If
            MsgBox("Username/password Salah." & vbCrLf & _
                   "Silahkan cek lagi!")
        End If
    Catch
ex As Exception
        MsgBox("Error Login: " & ex.Message)
    End Try
End Sub


Terakhir tombol Cancel digunakan sebagai perhiasan jika kita batal melakukan proses login. Dalam event Cancel_Click kita akan menyisipkan code untuk menutup form login.
Private Sub Cancel_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Cancel.Click

    Me.Close()

End Sub


Kode selengkapnya di Part 2.

Click here if you like this article.



Sumber http://rani-irsan.blogspot.com