Modul Microsoft Visual Basic 6.
MASAMIN SOFTWARE SOLUTIONS (MSS)
MICROSOFT
MODUL 7 MENGGUNAKAN ADO LIBRARY & SQL
VISUAL BASIC 6.0
Lecturer : Muhammad Miftakhul Amin
1. MENGAITKAN ADO LIBRARY DENGAN VISUAL BASIC 6.0
Agar Visual Basic dapat menggunakan library ADO, maka library ADO harus terdaftar terlebih
dahulu pada registry windows dan memberi tanda cek pada library tersebut. Untuk melakukannya
buka menu Project > References.
Gambar 7.1 Mengaitkan Visual Basic dengan ADO Library
Setelah library ADO dicek, maka library tersebut sudah dapat digunakan secara default, biasanya
library ADO sudah terinstall pada saat Visual Basic 6.0 diinstall. Untuk distribusi ADO library dapat
diperoleh dari Instalasi Microsoft Data Access Componen (MDAC) versi 2.x, sehingga tidak perlu
menginstall VB.
Object ADO yang sering dipergunakan untuk membuat aplikasi database adalah :
- Connection
Dipergunakan untuk membuat koneksi dengan database, property penting yang dipergunakan
adalah :
- Open : metode open bertanggung jawab untuk membuka koneksi
dengan database.
- Execute : metode execute dipergunakan untuk menjalankan perintah query,
pernyataan SQL, atau prosedur tersimpan.
- State : property ini dipergunakan untuk mengetahui apakah object
connection dalam kondisi terbuka (adStateOpen) atau tidak.
- Command
Dipergunakan untuk mengirim perintah ke database, umumnya perintah yang dikirim tersebut
berupa Stored Procedure dan perintah SQL.
- Recordset
48
Modul Microsoft Visual Basic 6.0
Objek recordset dipergunakan untuk menampung hasil eksekusi dalam bentuk table. Obyek
recordset memiliki beberapa property dan metode yang penting sbb :
1. property cursorType : menentukan arah pergerakan ketika recordset dibaca, nilainya :
a. AdOpenDynamic : jenis kursor ini memungkinkan segala perubahan yang
dilakukan pada record(insert,update,delete) dapat dilihat user lain.
b. AdOpenKeyset : mirip seperti AdOpenDynamic, hanya saja penambahan record
baru yang dilakukan oleh user lain tidak dapat diketahui
c. AdOpenStatic : jenis kursor ini dapat dibaca ke segala arah.
d. AdOpenForwardOnly : arah pembacaan record hanya bergerak maju saja
2. property LockType : menangani aktifitas penguncian record, nilainya :
a. AdLockReadOnly : record hanya bisa dibaca.
b. AdLockPessimistic : mengunci sebuah record selama proses perubahan dan
tidak mengijinkan pengguna lain untuk merubah record pada saat yang sama.
c. AdLockOptimistic : tipe ini banyak dipergunakan dalam pemrograman, karena
record hanya akan dikunci sesaat saja ketika perubahan akan dilakukan sehingga
memberi kesempatan user lain untuk merubah record.
d. AdLockBatchOptimistic : dipergunakan untuk pemrograman recordset terputus.
2. MEMBUAT KONEKSI
Hal yang pertama kali harus dilakukan setelah mengaitkan Visual Basic dengan ADO Library
adalah membuat koneksi.
Untuk melakukan koneksi antara Visual Basic dengan database digunakan object Connection
dari ADO.
Property dan method yang penting pada obyek ini yaitu property ConnectionString dan metode
Open.
Property ConnectionString adalah sebuah string yang terdiri dari pasangan parameter dan nilai
parameter yang dipisahkan oleh titik koma (;). Sedangkan method Open digunakan untuk
membuka koneksi sesuai dengan ConnectionString-nya.
Untuk database [Link] 2000, ConnectionStringnya adalah :
ConnectionString = "Provider=[Link].4.0;" _
& "Persist Security Info=false;" _
& "Data Source = c:\data\[Link];"
Untuk membuat koneksi, anda dapat membuat dan kemudian menyimpannya dalam sebuah
module khusus, sehingga object Connection tersebut dapat dipanggil oleh modul-modul/form
yang lain.
3. Menggunakan SQL (Structured Query Language)
Bahasa SQL adalah sarana dasar yang dibutuhkan untuk mengakses data di dalam database
relasional. Menguasai bahasa SQL adalah langkah pertama dan terpenting dalam memahami
database relasional.
Untuk memanipulasi data, bahasa SQL yang dipergunakan adalah DML (Data Manipulation
Language). Perintah-perintah ini bertanggung jawab untuk melakukan query dan perubahan yang
dilakukan di dalam tabel.
Perintah DML meliputi :
49
Modul Microsoft Visual Basic 6.0
- INSERT
Pernyataan INSERT dipergunakan untuk menambahkan baris baru pada sebuah tabel.
Contoh : INSERT INTO r_program(id_program,program,jumlah_sesi,biaya)
VALUES(‘VFP’,’ORACLE 9i’,15,400000)
- UPDATE
Pernyataan UPDATE dipergunakan untuk memperbaharui data yang ada dalam sebuah tabel.
Contoh : UPDATE r_program
SET program =’MS. Viual FoxPro 8.0’
WHERE id_program=’VFP’
- DELETE
Pernyataan DELETE dipergunakan untuk menghapus sebuah baris yang ada di dalam tabel.
Contoh : DELETE FROM r_program
WHERE id_program=’VFP’
- SELECT
Pernyataan SELECT dipergunakan untuk melakukan pengambilan data dari sebuah tabel.
Contoh : SELECT * FROM r_program
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.
Gambar 7.2 Menambahkan Module
Tuis kode program untuk module tersebut :
50
Modul Microsoft Visual Basic 6.0
‘[Link]
‘--------------
Option Explicit
Public koneksi As New [Link]
'-----------------------------------
Public Sub buka_koneksi()
On Error GoTo error_handel
[Link] = adUseClient
[Link] = "Provider=[Link].4.0;" _
& "Persist Security Info=false;" _
& "Data Source = c:\data\[Link];"
[Link]
If Not [Link] = 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) _
& [Link], vbOKOnly + vbInformation, "Konfirmasi"
End Sub
Public Sub tutup_koneksi()
On Error GoTo salah
If [Link] = adStateOpen Then
[Link]
Set koneksi = Nothing
End If
Exit Sub
salah:
MsgBox "Ada Kesalahan : " & vbCrLf _
& "Silahkan Menguhubungi Administrator" & Chr(13) _
& "Laporkan Komentar Berikut : " & Chr(13) & Chr(13) _
& [Link], vbOKOnly + vbInformation, "Konfirmasi"
End Sub
3. Desain form seperti berikut :.
51
Modul Microsoft Visual Basic 6.0
Gambar 7.3 Desain Form
4. Setting properties dari masing-masing kontrol yang ada dalam form sebagai berikut :
Komponen Properties Nilai
Name mskNoreg
MaskEditBox1
Mask #####
Text1 Name TxtProgram
Combo1 Name CmbBulan
Name MskTahun
MaskEditBox2
Mask ####
Text2 Name TxtTglReg
Text3 Name TxtNam
Text4 Name TxtTmpLahir
Name MskTglLahir
MaksEditBox3
Mask ##/##/####
Combo2 Name CmbSex
Text5 Name TxtAlamat
Name CmdCek
Command1
Caption &cek
Name CmdNew
Command2
Caption &New
Name CmdSimpan
Command3
Caption &Simpan
Name CmdHapus
Command4
Caption &Hapus
Name CmdSelesai
Command1
Caption &Selesai
DataGrid1 Name DataGrid1
5. Kemudian tuliskan kode program sebagai berikut :
52
Modul Microsoft Visual Basic 6.0
Option Explicit
Dim rsregistrasi As New [Link]
------------------------------------------------------------------------------
'prosedur menampilkan data
Sub browse_data()
If [Link] = adStateOpen Then [Link]
[Link] "t_registrasi", koneksi, adOpenStatic, adLockOptimistic
Set [Link] = rsregistrasi
End Sub
------------------------------------------------------------------------------
'fungsi untuk mengecek data
Function cek_data() As Boolean
If [Link] = adStateOpen Then [Link]
[Link] "SELECT * FROM t_registrasi WHERE no_registrasi='" &
[Link] & "'", koneksi, adOpenStatic, adLockOptimistic
If [Link] > 0 Then
cek_data = True
Else
cek_data = False
End If
End Function
------------------------------------------------------------------------------
Private Sub Form_Load()
If Not [Link] = adStateOpen Then
buka_koneksi
End If
browse_data
[Link] = Format(Date, ("dd/mm/yyyy"))
End Sub
------------------------------------------------------------------------------
Private Sub Form_Unload(Cancel As Integer)
If [Link] = adStateOpen Then
tutup_koneksi
End If
If [Link] = adStateOpen Then
[Link]
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()
[Link] = " "
[Link] = "#####"
[Link] = ""
[Link] = ""
[Link] = " "
[Link] = "####"
[Link] = ""
[Link] = ""
[Link] = " "
[Link] = "##/##/####"
[Link] = ""
[Link] = ""
[Link]
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"
Else
[Link] "INSERT INTO
53
Modul Microsoft Visual Basic 6.0
t_registrasi(no_registrasi,periode_bulan,periode_tahun," _
& "tgl_registrasi,nama,tmp_lahir,tgl_lahir,sex,alamat,id_program)" _
& "VALUES('" & [Link] & "','" & [Link] & "','" &
[Link] _
& "','" & CDate([Link]) & "','" & [Link] _
& "','" & [Link] & "','" & CDate([Link]) _
& "','" & [Link] & "','" & [Link] & "','" &
[Link] & "')"
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
[Link] "DELETE FROM t_registrasi WHERE no_registrasi='" &
[Link] & "'"
End If
End If
browse_data
End Sub
------------------------------------------------------------------------------
Private Sub cmdSelesai_Click()
Unload Me
End Sub
6. Jalankan program sehingga diperoleh tampilan sebagai berikut :
Gambar 7.4 Hasil Running Program
7. Keterangan :
54
Modul Microsoft Visual Basic 6.0
• Untuk menciptakan sebuah objek koneksi dan recorset adalah sebagai berikut :
Dim koneksi as [Link]
Set koneksi = New [Link]
Dim rsregistrasi As [Link]
Set rsregistrasi = New [Link]
Atau
Dim koneksi As New [Link]
Dim rsregistrasi As New [Link]
Setelah seluruh objek Connection dan Recordset dipakai dalam aplikasi, maka objek-
objek tersebut harus segera dibebaskan dari memori, caranya adalah sebagai berikut :
[Link]
Set koneksi = Nothing
[Link]
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
[Link] = adUseClient
[Link] = "Provider=[Link].4.0;" _
& "Persist Security Info=false;" _
& "Data Source = c:\data\[Link];"
[Link]
If Not [Link] = 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) _
& [Link], 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 [Link] = adStateOpen Then [Link]
[Link] "SELECT * FROM t_registrasi WHERE no_registrasi='" _
& [Link] & "'", koneksi, adOpenStatic, adLockOptimistic
• Untuk menampilkan seluruh data yang ada dalam tabel, kemudian menampilkan datanya,
dibuat sebuah prosedur sebagai berikut :
55
Modul Microsoft Visual Basic 6.0
Sub browse_data()
If [Link] = adStateOpen Then [Link]
[Link] "t_registrasi", koneksi, adOpenStatic, adLockOptimistic
Set [Link] = 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 [Link] = adStateOpen Then [Link]
[Link] "SELECT * FROM t_registrasi WHERE no_registrasi='" _
& [Link] & "'", koneksi, adOpenStatic, adLockOptimistic
If [Link] > 0 Then
cek_data = True
Else
cek_data = False
End If
End Function
56