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 EventArgs) Handles 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 ^_^
2 Comments
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