Selamat malam sobat,
Malam ini saya ingin berbagi cerita, eh
maksud saya source program sederhana untuk membuat koneksi antara visual
basic 6 dengan database Access. Agar sobat lebih paham, tolong source
code nya di ketik ulang, jangan cuma di kopas. berikut ini
langkah-langkahnya:
Step 1, Buat Folder untuk menyimpan project latihan kita. sebagai contoh, saya simpan project di drive D: di folder project, saya
buat folder lagi dengan nama latihan2 , kalau diringkas, bentuk alamat
di windows explorer bakal seperti ini "D:\Project\Latihan2"
Step 2,
Hal pertama yang kita buat dahulu adalah::: Databasenya... kayaknya
nggak perlu saya jembrengkan cara membuat database dan tabel dengan
microsoft Access, langsung saja, buat file database access, lalu buat
tabel mahasiswa dengan struktur tabel seperti berikut:
Simpan dengan Save As (Jangan yang Save), pilih Access 2000 Database, Simpan di folder
"D:\Project\Latihan2" dengan nama Mahasiswa.mdb
Step 3, Buka Visual Basic 6, Buat Project baru, pilih Vb Enterpise Edition Control
Step 4, Simpan Project di "D:\Project\Latihan2"
Step 5, Buat Modul baru, Cara membuat modul di Vb6 seperti ini nih,
lihat
ke sisi paling kanan dari IDE Visual basic 6, anda bisa melihat ada
jendela project disana. Klik folder modul trus klik kanan, pilih Add di
menu, kemudian pilih modul
Step 6, Buat dua modul
Step 7,
Ganti nama modul, modul pertama = "modVar", modul kedua = "modUtil",
Hasil struktur projectnya bisa anda lihat seperti dibawah ini:
Step 8, Struktur dan Bentuk Form1
| Nama Object | Type | Properties |
| txtNim | TextBox | |
| txtNama | TextBox | |
| txtAlamat | TextBox | |
| txtTempatLahir | TextBox | |
| dtpTglLahir | DTPicker | Updown = True |
| txtKota | TextBox | |
| Adodc1 | Adodc1 | Visible = False |
| DataGrid1 | DataGrid1 | |
| txtCariNama | TextBox | |
| txtCariAlamat | TextBox | |
| Label untuk text box | Label |
Step 9: Isi Form1
Private Sub cmdBatal_Click()
Call BersihForm
End Sub
Private Sub cmdHapus_Click()
strSQL = "Delete from Mahasiswa where NIM = '" & txtNIM.Text & "'"
Call execCmd(dbCmd, strSQL)
Call BersihForm
FillGrid
End Sub
Private Sub cmdSimpan_Click()
strSQL = "select Nim from mahasiswa where Nim = '" & txtNIM.Text & "';"
Call bukaRs(strSQL, rs)
If rs.EOF = True Or rs.BOF = True Then
strSQL = "Insert into Mahasiswa (Nim, Nama, Alamat, TempatLahir, TglLahir, Kota, IdFakultas) values " & _
"('" & txtNIM.Text & "', '" & txtNama.Text & "', '" & txtAlamat.Text & "', '" & txtTempatLahir.Text & "', '" & dtpTglLahir.Value & "', '" & txtKota.Text & "')"
Call execCmd(dbCmd, strSQL)
Else
strSQL = "Update Mahasiswa set Nama = '" & txtNama.Text & "', Alamat = '" & txtAlamat.Text & "', TempatLahir = '" & txtTempatLahir & "', TglLahir = '" & dtpTglLahir.Value & "', Kota = '" & txtKota.Text & "' Where Nim = '" & txtNIM.Text & "'"
Call execCmd(dbCmd, strSQL)
End If
Call BersihForm
FillGrid
End Sub
Private Sub DataGrid1_Click()
If DataGrid1.ApproxCount < 1 Then Exit Sub
With DataGrid1
txtNIM.Text = .Columns("Nim").Value
txtNama.Text = .Columns("Nama").Value
txtAlamat.Text = .Columns("Alamat").Value
txtTempatLahir.Text = .Columns("TempatLahir").Text
dtpTglLahir.Value = .Columns("TglLahir").Value
txtKota.Text = .Columns("Kota").Text
End With
cmdHapus.Enabled = True
End Sub
Private Sub dtpTglLahir_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyReturn Then txtKota.SetFocus
End Sub
Private Sub Form_Load()
Call OpenConnection
Call BersihForm
FillGrid
End Sub
Private Sub BersihForm()
txtNIM.Text = ""
txtNama.Text = ""
txtAlamat.Text = ""
txtKota.Text = ""
txtTempatLahir.Text = ""
dtpTglLahir.Value = Now
cmdHapus.Enabled = False
FillGrid
End Sub
Private Sub txtAlamat_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then txtTempatLahir.SetFocus
End Sub
Private Sub txtCariAlamat_Change()
FillGrid
End Sub
Private Sub txtCariNama_Change()
FillGrid
End Sub
Private Sub txtKota_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then cmdSimpan.SetFocus
End Sub
Private Sub txtNama_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then txtAlamat.SetFocus
End Sub
Private Sub txtTempatLahir_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then dtpTglLahir.SetFocus
End Sub
Public Sub FillGrid()
strSQL = "select a.Nim, a.Nama, a.TempatLahir, a.TglLahir, a.Alamat, a.Kota from Mahasiswa as a where a.Nama like '%" & txtCariNama.Text & "%' and a.Alamat like '%" & txtCariAlamat.Text & "%'"
Call bukaRs(strSQL, rs)
Set DataGrid1.DataSource = rs
End Sub
Step 10: Isi modVar
Public dbconn As ADODB.Connection
Public rs As ADODB.Recordset
Public dbCmd As ADODB.Command
Public strSQL As String
Step 11: Isi ModUtil
'Fungsi untuk membuka koneksi
Public Function OpenConnection()
Set dbconn = New ADODB.Connection
dbconn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\mahasiswa.mdb;Persist Security Info=False"
dbconn.CursorLocation = adUseClient
dbconn.Open
End Function
'Fungsi untuk membuat query yang menghasilkan recordset
Public Function bukaRs(Query As String, Record As Recordset)
Set Record = New ADODB.Recordset
Record.Open Query, dbconn, adOpenStatic, adLockReadOnly
End Function
'Procedure untuk mengisi Data Combo
Public Sub IsiDataSource(dcName As DataCombo, rsTemp As ADODB.Recordset, Query As String)
Set rs = New ADODB.Recordset
Set rs = dbconn.Execute(Query)
Set dcName.RowSource = rsTemp
dcName.BoundColumn = rsTemp.Fields(0).Name
dcName.ListField = rsTemp.Fields(1).Name
End Sub
'Procedure untuk menjalankan perintah query untuk simpan, update dan delete
Public Sub execCmd(Cmd As ADODB.Command, Query As String)
Dim num_Affected As Integer
Set Cmd = New ADODB.Command
Cmd.ActiveConnection = dbconn
Cmd.CommandText = Query
Cmd.CommandType = adCmdText
Cmd.CommandTimeout = 60
Cmd.Execute num_Affected
If num_Affected = 0 Then
Call MsgBox("Transaksi Gagal")
Else
Call MsgBox("Transaksi Berhasil")
End If
End Sub
Penjelasan: Lihat ke bagian Kode ini
Public Function OpenConnection()
Set dbconn = New ADODB.Connection
dbconn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\mahasiswa.mdb;Persist Security Info=False"
dbconn.CursorLocation = adUseClient
dbconn.Open
End Function
set dbconn = new ADODB.Connection ---> Membuat Koneksi Baru
dbconn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=" + App.Path + "\mahasiswa.mdb;Persist Security Info=False"
--> Koneksi string untuk database Access Mahasiswa, sekedar catatan,
dulu sekali saat ujian skripsi banyak teman-teman saya yang gagal
presentasi aplikasi karena aplikasinya tidak bisa konek database,
mengapa bisa begitu? karena mereka beli program dari orang lain, pas di
kopi ke komputernya, folder penyimpanan databasenya beda dengan komputer
yang buat ujian, Nah, supaya kalian tidak mengalami nasib yang sama
dengan teman-teman saya, pakai saja perintah "
App.Path" yang artinya kurang lebih "Path tempat aplikasi (exe) berada".
App.Path artinya Path aplikasi berada.