POLITEKNIK NEGERI SRIWIJAYA PALEMBANG
MENGAKSES DATABASE MS ACCESS MENGGUNAKAN ADO DATA CONTROL
4. MEMBUAT APLIKASI DENGAN ADO LIBRARY DAN SQL
2. Tambahkan sebuah module untuk menyimpan string koneksi dari object Connection, sehingga dapat dipergunakan oleh modul/form lain, sehingga cukup sekali saja mendefinisikan Connection.
Tuis kode program untuk module tersebut :
‘modKoneksi.bas ‘--- Option Explicit
Public koneksi As New ADODB.Connection '--- Public Sub buka_koneksi()
On Error GoTo error_handel
koneksi.CursorLocation = adUseClient
koneksi.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Persist Security Info=false;" _
& "Data Source = c:\data\dbcourse.mdb;" koneksi.Open
If Not koneksi.State = 1 Then
MsgBox "koneksi KE SERVER GAGAL", vbCritical + vbOKOnly, "Konfirmasi" End
End If Exit Sub error_handel:
MsgBox "Gagal Koneksi Ke Server ...." & Chr(13) _ & "Silahkan Menguhubungi Administrator" & Chr(13) _ & "Laporkan Komentar Berikut : " & Chr(13) & Chr(13) _ & Err.Description, vbOKOnly + vbInformation, "Konfirmasi" End Sub
Public Sub tutup_koneksi() On Error GoTo salah
If koneksi.State = adStateOpen Then koneksi.Close
Set koneksi = Nothing End If
Exit Sub salah:
MsgBox "Ada Kesalahan : " & vbCrLf _
& "Silahkan Menguhubungi Administrator" & Chr(13) _ & "Laporkan Komentar Berikut : " & Chr(13) & Chr(13) _ & Err.Description, vbOKOnly + vbInformation, "Konfirmasi" End Sub
3. Desain form seperti berikut :.
Gambar 7.3 Desain Form
4. Setting properties dari masing-masing kontrol yang ada dalam form sebagai berikut :
Komponen Properties Nilai
MaskEditBox1 Name Mask
mskNoreg #####
Text1 Name TxtProgram
Combo1 Name CmbBulan MaskEditBox2 Name
Mask
MskTahun ####
Text2 Name TxtTglReg
Text3 Name TxtNam
Text4 Name TxtTmpLahir
MaksEditBox3 Name Mask
MskTglLahir ##/##/####
Combo2 Name CmbSex
Text5 Name TxtAlamat
Command1 Name Caption CmdCek &cek Command2 Name Caption CmdNew &New Command3 Name Caption CmdSimpan &Simpan Command4 Name Caption CmdHapus &Hapus Command1 Name Caption CmdSelesai &Selesai
5. Kemudian tuliskan kode program sebagai berikut :
Option Explicit
Dim rsregistrasi As New ADODB.Recordset
--- 'prosedur menampilkan data
Sub browse_data()
If rsregistrasi.State = adStateOpen Then rsregistrasi.Close
rsregistrasi.Open "t_registrasi", koneksi, adOpenStatic, adLockOptimistic Set DataGrid1.DataSource = rsregistrasi
End Sub
--- 'fungsi untuk mengecek data
Function cek_data() As Boolean
If rsregistrasi.State = adStateOpen Then rsregistrasi.Close
rsregistrasi.Open "SELECT * FROM t_registrasi WHERE no_registrasi='" & mskNoreg.Text & "'", koneksi, adOpenStatic, adLockOptimistic
If rsregistrasi.RecordCount > 0 Then cek_data = True Else cek_data = False End If End Function --- Private Sub Form_Load()
If Not koneksi.State = adStateOpen Then buka_koneksi
End If browse_data
txtTglReg.Text = Format(Date, ("dd/mm/yyyy")) End Sub
--- Private Sub Form_Unload(Cancel As Integer)
If koneksi.State = adStateOpen Then tutup_koneksi
End If
If rsregistrasi.State = adStateOpen Then rsregistrasi.Close
Set rsregistrasi = Nothing End If
End Sub
--- Private Sub cmdCek_Click()
If cek_data() = True Then
MsgBox "Data Tersebut sudah ada", vbOKOnly + vbInformation, "Konfirmasi" End If
browse_data End Sub
--- Private Sub cmdNew_Click()
mskNoreg.Mask = " " mskNoreg.Mask = "#####" txtProgram.Text = "" cmbBulan.Text = "" mskTahun.Mask = " " mskTahun.Mask = "####" txtNama.Text = "" txtTmpLahir.Text = "" mskTglLahir.Mask = " " mskTglLahir.Mask = "##/##/####" cmbSex.Text = "" txtAlamat.Text = "" mskNoreg.SetFocus End Sub --- Private Sub cmdSimpan_Click()
On Error GoTo salah
If cek_data() = True Then
MsgBox "No. Registrasi Telah Terdaftar, Cek Ulang", vbOKOnly + vbInformation, "Konfirmasi"
koneksi.Execute "INSERT INTO
t_registrasi(no_registrasi,periode_bulan,periode_tahun," _
& "tgl_registrasi,nama,tmp_lahir,tgl_lahir,sex,alamat,id_program)" _ & "VALUES('" & mskNoreg.Text & "','" & cmbBulan.Text & "','" & mskTahun.Text _
& "','" & CDate(txtTglReg.Text) & "','" & txtNama.Text _ & "','" & txtTmpLahir.Text & "','" & CDate(mskTglLahir.Text) _ & "','" & cmbSex.Text & "','" & txtAlamat.Text & "','" & txtProgram.Text & "')"
End If browse_data Exit Sub salah:
MsgBox "Cek Inputan" & vbCrLf _
& "Mungkin ada data yang salah atau belum terisi"
End Sub
--- Private Sub cmdHapus_Click()
If cek_data() = True Then
If MsgBox("Apakah Data Akan dihapus ? ", vbYesNo + vbQuestion, "DELETE RECORD") = vbYes Then
koneksi.Execute "DELETE FROM t_registrasi WHERE no_registrasi='" & mskNoreg.Text & "'" End If End If browse_data End Sub --- Private Sub cmdSelesai_Click()
Unload Me End Sub
6. Jalankan program sehingga diperoleh tampilan sebagai berikut :
7. Keterangan :
• Untuk menciptakan sebuah objek koneksi dan recorset adalah sebagai berikut : Dim koneksi as ADODB.Connection
Set koneksi = New ADODB.Connection Dim rsregistrasi As ADODB.Recordset Set rsregistrasi = New ADODB.Recordet Atau
Dim koneksi As New ADODB.Recordset Dim rsregistrasi As New ADODB.Recordset
Setelah seluruh objek Connection dan Recordset dipakai dalam aplikasi, maka objek- objek tersebut harus segera dibebaskan dari memori, caranya adalah sebagai berikut : Koneksi.close
Set koneksi = Nothing Rsregistrasi.close Set rsregistrasi = Nothing
• Untuk membuat koneksi dengan database, dibuat sebuah prosedur yang akan menangani koneksi, dan jika terjadi kesalahan, maka akan segera ditampilkan pesan kesalahan, tanpa harus keluar dari program.
Public Sub buka_koneksi() On Error GoTo error_handle
koneksi.CursorLocation = adUseClient
koneksi.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Persist Security Info=false;" _
& "Data Source = c:\data\dbcourse.mdb;" koneksi.Open
If Not koneksi.State = 1 Then
MsgBox "koneksi KE SERVER GAGAL", vbCritical + vbOKOnly, "Konfirmasi" End
End If Exit Sub error_handel:
MsgBox "Gagal Koneksi Ke Server ...." & Chr(13) _ & "Silahkan Menguhubungi Administrator" & Chr(13) _ & "Laporkan Komentar Berikut : " & Chr(13) & Chr(13) _ & Err.Description, vbOKOnly + vbInformation, "Konfirmasi" End Sub
Jika koneksi yang diciptakan lewat ConnectionString berhasil, maka objek Connection akan mengembalikan nilai 1 atau konstanta AdStateOpen. Hal ini ditandai dengan property state dari objek Connection.
• Setiap kali sebuah objek akan dibuka, maka terlebih dahulu objek tersebut dalam kondisi tertutup, jika masih terbuka maka harus ditutup dahulu, seperti objek recordset harus ditutup terlebih dahulu sebelum dibuka.
If rsregistrasi.State = adStateOpen Then rsregistrasi.Close
rsregistrasi.Open "SELECT * FROM t_registrasi WHERE no_registrasi='" _ & mskNoreg.Text & "'", koneksi, adOpenStatic, adLockOptimistic
• Untuk menampilkan seluruh data yang ada dalam tabel, kemudian menampilkan datanya, dibuat sebuah prosedur sebagai berikut :
Sub browse_data()
If rsregistrasi.State = adStateOpen Then rsregistrasi.Close
rsregistrasi.Open "t_registrasi", koneksi, adOpenStatic, adLockOptimistic Set DataGrid1.DataSource = rsregistrasi
End Sub
• Dalam program di atas dibuat sebuah fungsi untuk mendeteksi apakah sebuah record dengan nomor tertentu sudah ada dalam tabel. Fungsi tersebut akan mengembalikan nilai True jika data yang dimaksud sudah ada dalam table, demikian juga sebaliknya.
Fungsi tersebut adalah :
Function cek_data() As Boolean
If rsregistrasi.State = adStateOpen Then rsregistrasi.Close
rsregistrasi.Open "SELECT * FROM t_registrasi WHERE no_registrasi='" _ & mskNoreg.Text & "'", koneksi, adOpenStatic, adLockOptimistic If rsregistrasi.RecordCount > 0 Then cek_data = True Else cek_data = False End If End Function
JURUSAN TEKNIK KOMPUTER
POLITEKNIK NEGERI SRIWIJAYA PALEMBANG
MICROSOFT