mengolah data dengan data access object.pdf

Upload: dwijo-yusup

Post on 06-Jul-2018

233 views

Category:

Documents


0 download

TRANSCRIPT

  • 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