8/17/2019 MENGOLAH DATA DENGAN DATA ACCESS OBJECT.pdf
1/12
D:\Materi Kuliah\MENGOLAH DATA DENGAN DATA ACCESS OBJECT.doc Hal. 1 dari 12
MENGOLAH DATA DENGAN DATA ACCESS OBJECT (DAO)
Dengan mengaitkan Objek data dengan form terdapat kelemahan yaitu jika
program databasenya dipindah ke folder atau disk lain maka pemakai program harus
melakukan setting ulang dalam mengaitkan databasenya. Kelemahan tersebut dapat
diatasi dengan memberikan perintah-perintah penanganan database lewat kode-kode
program yang salah satunya menggunakan Data Access Object (DAO). Dengan
demikian pemrogram memiliki keluwesan yang maksimum dalam bekerja dengan
database.
Sebelum bekerja untuk merancang program database dengan DAO, terlebih
dahulu harus ditambahkan referensi DAO pada project yang sedang dibuat. Untuk
menambahkan referensi tersebut dapat dilakukan dengan mengaktifkan (mengklik)menu Project → References kemudian berilah tanda cek pada kotak cek Microsoft
DAO 2.5/3.5 Compatibility Library, dan akhiri dengan mengklik tombol OK .
Untuk proses membuka database lewat kode program harus diawali dengan
mereferensi DAO. Adapun langkah-langkah yang harus dilakukan untuk membuka
database lewat kode program adalah sebagai berikut:
a. Mendeklarasikan sebuah variabel Database lewat form (general) atau pada
level lain, tetapi sebaiknya tidak pada level prosedur. Bentuk penulisannya
adalah :
Dim AS Database
Contoh:
Dim dbBeli AS Database
b. Mendeklarasikan variabel Recordset lewat form (general) atau pada level lain,
tetapi sebaiknya tidak pada level prosedur. Bentuk penulisannya adalah :
Dim AS Recordset
Contoh:
Dim rsBarang AS Recordset
c.
Selanjutnya dapat membuka file database beserta tabel-tabelnya pada suatu
form, misalnya pada Form_Load.
Bentuk penulisannya adalah :
Set = OpenDatabase(“”)
Contoh:
Set dbBeli = OpenDatabase("E:\Data\LatihVB\dbBeli.mdb"))
8/17/2019 MENGOLAH DATA DENGAN DATA ACCESS OBJECT.pdf
2/12
D:\Materi Kuliah\MENGOLAH DATA DENGAN DATA ACCESS OBJECT.doc Hal. 2 dari 12
Catatan:
Penulisan nama file database harus disertakan nama folder atau path secara
lengkap dimana file database berada. Jika file database tditempatkan menjadi
satu dengan file aplikasi programnya (file project (.VBP) atau file executable
(.EXE), penulisan nama file database dan folder (drive kerja) tidak perludilakukan, cukup ditambahkan properti App dan Path setelah penulisan
objeknya.
Contoh:
Set dbBeli = OpenDatabase(App.Path & ("\dbBeli.mdb"))
d. Menentukan nama tabel yang akan dikaitkan dengan kode program dari file
database yang telah dibuka. Penempatan setting Recordset ini biasanya
dijadikan satu dengan setting OpenDatabase, tetapi pada kondisi tertentu
dapat ditempatkan pada lokasi lain.
Bentuk penulisannya adalah :
Set = .OpenRecordset(“”).
Contoh:
Set rsBarang = dbBeli.OpenRecordset("tblBarang")
Pada saat OpenRecordset, tabel yang dibuka dapt lebih dari satu dan lokasi
penempatannya dapat jadi satu lokasi dengan tabel-tabel yang lain atau
berbeda lokasi tergantung kebutuhan dari pemakaian dari masing-masing
tabel.
Contoh:
Private Sub Form_Load()Set dbBeli = OpenDatabase(App.Path & ("\dbBeli.mdb"))Set rsBarang = dbBeli.OpenRecordset("tblBarang")Set rsSupplier = dbBeli.OpenRecordset("tblSupllier")Set rsPembelian = dbBeli.OpenRecordset("tblPembelian")End Sub
Selain digunakan untuk mengaktifkan tabel, perintah OpenRecordset juga
dapat digunakan untuk mengaktifkan perintah Query. Perintah Query tersebut
diketikkan sebagai ganti dari nama tabel dan harus dilingkupi dengan tanda
petik ganda (“).
Contoh:
Set rsBarang = dbBeli.OpenRecordset("Select * FROMtblBarang")
e.
Dengan demikian proses membuka file database beserta tabelnya sudahselesai. Selanjutnya dapat mengakses file database sesuai dengan yang
8/17/2019 MENGOLAH DATA DENGAN DATA ACCESS OBJECT.pdf
3/12
D:\Materi Kuliah\MENGOLAH DATA DENGAN DATA ACCESS OBJECT.doc Hal. 3 dari 12
diinginkan. Jika seluruh pekerjaan yang berkaitan dengan file database sudah
selesai maka file database dapat ditutup. Bentuk penulisannya adalah :
.Close
Jika file databasenya sudah ditutup secara otomatis seluruh tabel (recordset)
yang berkaitan dengan file database tersebut akan tertutup juga.
Latihan:
Buatlah form Pemasukan Data Barang sebagai berikut:
Ubahlah properti dari objek-objeknya seperti berikut ini:
Objek Properti SettingForm Name
CaptionfrmBarangform Mengakses Data dg ADO
Label Caption PEMASUKAN DATA BARANG
TextBox Name TxtKodeBrg
TextBox Name TxtNamaBrg
TextBox Name TxtHarga
ComboBox Name
List
cboSatuan
(Pcs, Lusin, Box)CommandButton Name
CaptioncmdTambah&Tambah
CommandButton NameCaption
cmdHapus&Hapus
CommandButton NameCaption
cmdEdit&Edit
CommandButton NameCaption
cmdSimpan&Simpan
CommandButton NameCaption
cmdKeluar&Keluar
DBGrid Name DBGrid1
Data NameVisible
Data1False
8/17/2019 MENGOLAH DATA DENGAN DATA ACCESS OBJECT.pdf
4/12
D:\Materi Kuliah\MENGOLAH DATA DENGAN DATA ACCESS OBJECT.doc Hal. 4 dari 12
Tambahkan referensi Data Access Object (DAO) dengan mengaktifkan (mengklik)
menu Project → References kemudian berilah tanda cek pada kotak cek Microsoft
DAO 2.5/3.5 Compatibility Library, dan akhiri dengan mengklik tombol OK .
Tambahkan Module dengan cara Klik Project → Add Module
Ketikkan kode program sebagai berikut:Public dbBeli As DatabasePublic rsBarang As RecordsetPublic Sub BukaDB()Set dbBeli = OpenDatabase(App.Path & ("\dbLatihan.mdb"))Set rsBarang = dbBeli.OpenRecordset("tblBarang", dbOpenTable)rsBarang.Index = "xkodebrg"End Sub
Simpan dengan nama mdlBarang.
Ketikkan Kode Program dalam form frmBarang sebagai berikut:
Private Sub Form_Load()BukaDBData1.DatabaseName = App.Path & "\dbLatihan.mdb"Data1.RecordSource = "tblBarang"If rsBarang.RecordCount = 0 Then
cmdEdit.Enabled = FalsecmdHapus.Enabled = FalseKosong
ElseTampil
cmdSimpan.Enabled = FalseEnd If
Data1.RefreshEnd Sub
Private Sub Tampil()txtKodeBrg.Text = rsBarang.Fields(0)txtNamaBrg.Text = rsBarang.Fields(1)cboSatuan.Text = rsBarang.Fields(2)txtHarga.Text = rsBarang.Fields(3)End Sub
Private Sub Kosong()txtKodeBrg.Text = ""txtNamaBrg.Text = ""cboSatuan.Text = ""txtHarga.Text = ""End Sub
Private Sub cmdEdit_Click()If cmdEdit.Caption = "&Edit" Then
cmdEdit.Caption = "&Batal"cmdSimpan.Enabled = TruecmdTambah.Enabled = False
cmdHapus.Enabled = FalsetxtKodeBrg.SetFocus
Else
8/17/2019 MENGOLAH DATA DENGAN DATA ACCESS OBJECT.pdf
5/12
D:\Materi Kuliah\MENGOLAH DATA DENGAN DATA ACCESS OBJECT.doc Hal. 5 dari 12
cmdEdit.Caption = "&Edit"cmdSimpan.Enabled = FalsecmdTambah.Enabled = TruecmdHapus.Enabled = TrueForm_Load
End IfEnd Sub
Private Sub cmdHapus_Click()If cmdHapus.Caption = "&Hapus" Then
cmdHapus.Caption = "&Batal"cmdSimpan.Caption = "&Hapus"cmdSimpan.Enabled = TruecmdEdit.Enabled = FalsecmdTambah.Enabled = False
ElsecmdHapus.Caption = "&Hapus"cmdSimpan.Caption = "&Simpan"cmdSimpan.Enabled = False
cmdEdit.Enabled = TruecmdTambah.Enabled = TrueForm_Load
End IfEnd Sub
Private Sub cmdKeluar_Click()rsBarang.CloseSet rsBarang = NothingUnload MeEnd Sub
Private Sub cmdSimpan_Click()If cmdTambah.Caption = "&Batal" Then
rsBarang.Index = "xKodeBrg"rsBarang.Seek "=", Trim(txtKodeBrg.Text)If rsBarang.NoMatch Then
rsBarang.AddNewrsBarang.Fields(0) = Trim(txtKodeBrg.Text)rsBarang.Fields(1) = Trim(txtNamaBrg.Text)rsBarang.Fields(2) = cboSatuan.TextrsBarang.Fields(3) = Val(txtHarga.Text)rsBarang.Update
Else
MsgBox "Data Barang sudah ada !", vbOKOnly +vbInformation, "Perhatian"
txtKodeBrg.SetFocusExit Sub
End IfcmdTambah_Click
End If
If cmdHapus.Caption = "&Batal" ThenrsBarang.Index = "xkodebrg"rsBarang.Seek "=", Trim(txtKodeBrg.Text)If Not rsBarang.NoMatch Then
rsBarang.DeleteElse
8/17/2019 MENGOLAH DATA DENGAN DATA ACCESS OBJECT.pdf
6/12
D:\Materi Kuliah\MENGOLAH DATA DENGAN DATA ACCESS OBJECT.doc Hal. 6 dari 12
MsgBox "Data Barang tidak ditemukan !", vbOKOnly +vbInformation, "Perhatian"
Exit SubEnd IfcmdHapus_Click
End If
If cmdEdit.Caption = "&Batal" ThenrsBarang.EditrsBarang.Fields(0) = Trim(txtKodeBrg.Text)rsBarang.Fields(1) = Trim(txtNamaBrg.Text)rsBarang.Fields(2) = cboSatuan.TextrsBarang.Fields(3) = Val(txtHarga.Text)rsBarang.UpdatecmdEdit_Click
End IfEnd Sub
Private Sub cmdTambah_Click()
If cmdTambah.Caption = "&Tambah" ThencmdTambah.Caption = "&Batal"cmdSimpan.Enabled = TruecmdEdit.Enabled = FalsecmdHapus.Enabled = FalsetxtKodeBrg.SetFocusKosong
ElsecmdTambah.Caption = "&Tambah"cmdSimpan.Caption = "&Simpan"cmdSimpan.Enabled = FalsecmdEdit.Enabled = True
cmdHapus.Enabled = TrueForm_Load
End IfEnd Sub
Private Sub txtKodeBrg_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Then
SendKeys "{TAB}"KeyAscii = 0
End IfEnd Sub
Private Sub txtNamaBrg_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Then
SendKeys "{TAB}"KeyAscii = 0
End IfEnd Sub
Private Sub txtHarga_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Then
SendKeys "{TAB}"KeyAscii = 0
End If
End Sub
8/17/2019 MENGOLAH DATA DENGAN DATA ACCESS OBJECT.pdf
7/12
D:\Materi Kuliah\MENGOLAH DATA DENGAN DATA ACCESS OBJECT.doc Hal. 7 dari 12
Modifikasi Program Pengolahan Data dengan DAOBuatlah database dbLatihan dan table tblBarang dengan struktur sebagai berikut :
Buatlah Form Pemasukan data Barang sebagai berikut:
8/17/2019 MENGOLAH DATA DENGAN DATA ACCESS OBJECT.pdf
8/12
D:\Materi Kuliah\MENGOLAH DATA DENGAN DATA ACCESS OBJECT.doc Hal. 8 dari 12
Koding:Private Sub cmdAkhir_Click()On Error Resume NextrsBarang.MoveLastTampil
MsgBox "Data Sudah diAkhir Record !", 16, "Informasi"End Sub
Private Sub cmdAwal_Click()On Error Resume NextrsBarang.MoveFirstTampilMsgBox "Data Sudah diAwal Record !", 16, "Informasi"End Sub
Private Sub cmdNext_Click()
On Error Resume NextrsBarang.MoveNextTampilIf rsBarang.EOF Then
dtbrg.Recordset.MoveLastMsgBox "Data Sudah diAkhir Record !", vbCritical,
"Informasi"End IfEnd Sub
Private Sub cmdSebelum_Click()
On Error Resume NextrsBarang.MovePreviousTampilIf rsBarang.BOF ThenrsBarang.MoveFirstMsgBox "Sudah diAwal Record !", vbCritical, "Informasi"End IfEnd Sub
Private Sub Form_Load()BukaDB
Data1.DatabaseName = App.Path & "\dbLatihan.mdb"Data1.RecordSource = "tblBarang"If rsBarang.RecordCount = 0 Then
cmdEdit.Enabled = FalsecmdHapus.Enabled = FalseKosong
ElseTampilcmdSimpan.Enabled = False
End IfData1.Refresh
End Sub
Private Sub Tampil()
8/17/2019 MENGOLAH DATA DENGAN DATA ACCESS OBJECT.pdf
9/12
D:\Materi Kuliah\MENGOLAH DATA DENGAN DATA ACCESS OBJECT.doc Hal. 9 dari 12
txtKodeBrg.Text = rsBarang.Fields(0)txtNamaBrg.Text = rsBarang.Fields(1)cboSatuan.Text = rsBarang.Fields(2)txtHarga.Text = rsBarang.Fields(3)dtpBeli.Value = rsBarang!tglBeliIf rsBarang!Jenis = "Tunai" Then
optTunai.Value = TrueoptKredit.Value = FalseElse
optTunai.Value = FalseoptKredit.Value = True
End IfEnd Sub
Private Sub Kosong()txtKodeBrg.Text = ""txtNamaBrg.Text = ""
cboSatuan.Text = ""txtHarga.Text = ""optTunai.Value = FalseoptKredit.Value = FalsedtpBeli.Value = Now()End Sub
Private Sub cmdEdit_Click()If cmdEdit.Caption = "&Edit" Then
cmdEdit.Caption = "&Batal"cmdSimpan.Enabled = True
cmdTambah.Enabled = FalsecmdHapus.Enabled = FalsetxtKodeBrg.SetFocus
ElsecmdEdit.Caption = "&Edit"cmdSimpan.Enabled = FalsecmdTambah.Enabled = TruecmdHapus.Enabled = TrueForm_Load
End IfEnd Sub
Private Sub cmdHapus_Click()If cmdHapus.Caption = "&Hapus" Then
cmdHapus.Caption = "&Batal"cmdSimpan.Caption = "&Hapus"cmdSimpan.Enabled = TruecmdEdit.Enabled = FalsecmdTambah.Enabled = False
ElsecmdHapus.Caption = "&Hapus"cmdSimpan.Caption = "&Simpan"
cmdSimpan.Enabled = FalsecmdEdit.Enabled = TruecmdTambah.Enabled = True
8/17/2019 MENGOLAH DATA DENGAN DATA ACCESS OBJECT.pdf
10/12
D:\Materi Kuliah\MENGOLAH DATA DENGAN DATA ACCESS OBJECT.doc Hal. 10 dari 12
Form_LoadEnd IfEnd Sub
Private Sub cmdKeluar_Click()p = MsgBox("Yakin ingin keluar??", 32 + 4, "Informasi")
If p = 6 ThenrsBarang.CloseSet rsBarang = NothingUnload MeEnd IfEnd Sub
Private Sub cmdSimpan_Click()If cmdTambah.Caption = "&Batal" Then
rsBarang.Index = "xKodeBrg"rsBarang.Seek "=", Trim(txtKodeBrg.Text)
If rsBarang.NoMatch ThenrsBarang.AddNewrsBarang.Fields(0) = Trim(txtKodeBrg.Text)rsBarang.Fields(1) = Trim(txtNamaBrg.Text)rsBarang.Fields(2) = cboSatuan.TextrsBarang.Fields(3) = Val(txtHarga.Text)rsBarang!tglBeli = dtpBeli.ValueIf optTunai.Value = True Then
rsBarang!Jenis = "Tunai"Else
rsBarang!Jenis = "Kredit"
End IfrsBarang.UpdateElseMsgBox "Data Barang sudah ada !", vbOKOnly +
vbInformation, "Perhatian"txtKodeBrg.SetFocusExit Sub
End IfcmdTambah_Click
End If
If cmdHapus.Caption = "&Batal" ThenrsBarang.Index = "xkodebrg"rsBarang.Seek "=", Trim(txtKodeBrg.Text)If Not rsBarang.NoMatch ThenrsBarang.Delete
ElseMsgBox "Data Barang tidak ditemukan !", vbOKOnly +
vbInformation, "Perhatian"Exit Sub
End IfcmdHapus_Click
End If
If cmdEdit.Caption = "&Batal" Then
8/17/2019 MENGOLAH DATA DENGAN DATA ACCESS OBJECT.pdf
11/12
D:\Materi Kuliah\MENGOLAH DATA DENGAN DATA ACCESS OBJECT.doc Hal. 11 dari 12
rsBarang.EditrsBarang.Fields(0) = Trim(txtKodeBrg.Text)rsBarang.Fields(1) = Trim(txtNamaBrg.Text)rsBarang.Fields(2) = cboSatuan.TextrsBarang.Fields(3) = Val(txtHarga.Text)rsBarang!tglBeli = dtpBeli.Value
If optTunai.Value = True ThenrsBarang!Jenis = "Tunai"Else
rsBarang!Jenis = "Kredit"End IfrsBarang.UpdatecmdEdit_Click
End IfEnd Sub
Private Sub cmdTambah_Click()
If cmdTambah.Caption = "&Tambah" ThencmdTambah.Caption = "&Batal"cmdSimpan.Enabled = TruecmdEdit.Enabled = FalsecmdHapus.Enabled = FalsetxtKodeBrg.SetFocusKosong
ElsecmdTambah.Caption = "&Tambah"cmdSimpan.Caption = "&Simpan"cmdSimpan.Enabled = False
cmdEdit.Enabled = TruecmdHapus.Enabled = TrueForm_Load
End IfEnd Sub
Private Sub txtKodeBrg_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Then
SendKeys "{TAB}"KeyAscii = 0
End If
End Sub
Private Sub txtNamaBrg_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Then
SendKeys "{TAB}"KeyAscii = 0
End IfEnd Sub
Private Sub txtHarga_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Then
SendKeys "{TAB}"KeyAscii = 0
End If
8/17/2019 MENGOLAH DATA DENGAN DATA ACCESS OBJECT.pdf
12/12
D:\Materi Kuliah\MENGOLAH DATA DENGAN DATA ACCESS OBJECT.doc Hal. 12 dari 12
End Sub
Top Related