Menyimpan Setting Koneksi VB.NET MS Access

Artikel ini semoga bisa menjawab pertanyaan dari Andre di http://rani-irsan.blogspot.com/2015/05/vbnet-menyimpan-setting-koneksi-di-user.html

Sebenernya Rani udah pernah bahas tentang koneksi VB.NET ke Ms. Access di http://rani-irsan.blogspot.com/2015/05/koneksi-visual-basic-net-vbnet-ke-ms.html karena memang pada umumnya kita menyimpan file database access di folder yang sama dengan file exe saat dicompile.

Tapi klo pengen membuat connection string yang lebih dinamis, baiklah Rani coba kasih contoh tapi terbatas hanya pada lokasi penyimpanan file database access nya yah. Dan Rani anggap temen2 coder udah tau klo connection string itu bisa bermacam2 juga. Tergantung versi dan settingan seperti password atau penggunaan Data Directory.
Rani cuman kasih 1 contoh connection string standard: (teks dengan highlight kuning adalah nilai yang akan dibuat dinamis.
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\latihan.accdb;Persist Security Info=False;

OLEDB 12.0 berlaku untuk access2007, 2010, 2013. Rani buat database bernama latihan.accdb dan membuat copy 2 file yang disimpan di path:
  • D:\latihan.accdb
  • D:\Blogging\latihan.accdb
Isi database kira-kira seperti ini dan nanti Rani bakal pakai tabel kategori sebagai contoh.


Lalu kita beranjak ke project VB.NET. Project yang Rani gunakan sebagaimana terlihat pada gambar di bawah. Form1 dengan layout sebagai berikut:



Kemudian kita buka project properties.


Klik bagian setting, maka kita akan disediakan grid/tabel untuk menginput data setting yang kita perlukan.



Rani bikin satu saja, bernama dbPath (yang akan menjadi nama property setting ketika dipanggil di code). Type string karena memang mau digabungkan dengan connection string, Scope = User agar saat sudah compile user dapat mengubah dan perubahan tersimpan di setting. Value awal saya buat D:\latihan.accdb.


Kemudian kita kembali ke code di belakang Form1.

Public Class Form1
    Dim strConn As String

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'menampilkan nilai dbPath saat ini
        txtFile.Text = My.Settings.dbPath

        'Kombinasi nilai dbPath dengan connection string
        strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                  "Data Source="My.Settings.dbPath & ";" _
                  "Persist Security Info=False;"
        lblConnectionString.Text = strConn


    End Sub
End Class

Saat kita coba run, code di atas akan menghasilkan tampilan sebagai berikut:


Lanjut kita buat code untuk memilih file dengan OpenFileDialog.

Private Sub btnFile_Click(sender As Object, e As EventArgs) Handles btnFile.Click
    OpenFileDialog1.Filter = "Ms. Access|*.accdb"
    OpenFileDialog1.FileName = ""
    If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
        txtFile.Text = OpenFileDialog1.FileName
        strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                  "Data Source=" & txtFile.Text & ";" & _
                  "Persist Security Info=False;"
        lblConnectionString.Text = strConn
    End If
End Sub

Private Sub btnSave_Click(sender As Object, e As EventArgsHandles btnSave.Click
    My.Settings.dbPath = txtFile.Text
    My.Settings.Save()
End Sub

Mari kita coba run lagi! Klik tombol File untuk memilih...
Setelah terpilih baru klik Open.



File text akan menampilkan path dari file database yang terpilih. Klik Save Connection Setting untuk mengubah ke setting path file terpilih.


Temen-temen bisa coba close dan run lagi untuk melihat apakah setting menunjukan path file database yang baru.

Sebagai pelengkap, Rani tambahkan penggunaan koneksi ke Ms Access ini untuk menampilkan data kategori di datagridview.
Jangan lupa menambahkan import di paling atas!!!

Imports System.Data.OleDb

Kemudian tambahkan code berikut di event btnCheck_Click.

Private Sub btnCheck_Click(sender As Object, e As EventArgs) Handles btnCheck.Click
    Dim con As New OleDbConnection(strConn)
    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)

        grdData.DataSource = dt

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

Coba run dan klik tombol Check Connection.


Code lengkapnya sebagai berikut:


Supaya lebih memahami kegunaan tiap baris kode, temen-temen coder bisa mengikuti tiap langkah dalam artikel ini. Semoga bisa membantu untuk memahami dan silahkan copy paste dengan cerdas!!!

HAPPY CODING ^_^






Post a Comment

2 Comments

Kalo kasusnya misalkan file accd/mdb ada passwordnya gimana ya bu?
rani said…
Tinggal dimodifikasi connectionstring nya jadi:
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\myFolder\myAccessFile.accdb;Jet OLEDB:Database Password=MyDbPassword;


Klo perlu si password di simpan sebagai setting juga