• Tidak ada hasil yang ditemukan

MEMBUAT APLIKASI DENGAN ADO LIBRARY DAN SQL

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

Dokumen terkait