Kamis, 25 Februari 2016

Membuat Aplikasi Database Dengan Visual Basic 6 dan Microsoft Access

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, Seperti selayaknya dalam pembuatan aplikasi, maka 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



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 ObjectTypeProperties
txtNimTextBox
txtNamaTextBox
txtAlamatTextBox
txtTempatLahirTextBox
dtpTglLahirDTPickerUpdown = True
txtKotaTextBox
Adodc1Adodc1Visible = False
DataGrid1DataGrid1
txtCariNamaTextBox
txtCariAlamatTextBox
Label untuk text boxLabel


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.

0 komentar:

Posting Komentar