Anda di halaman 1dari 8

DAO DATABASE

Visual Basic 6.0 menyediakan 2 cara untuk mengakses database. Cara yang pertama adalah menggunakan komponen Data / DAO (Data Access Object). Komponen ini merupakan komponen lanjutan dari Visual Baric 5.0. DAO dapat digunakan untuk mengakses database access 97, foxpro 2.0 -3.0, paradox 3.x 5.x, worksheet excel dan lotus, dbase.(III, IV, 5.0). Perlu diperhatikan bahwa untuk database access, komponen ini hanya mampu menggunakan database sampai dengan Microsoft Access 97. Jika ingin menggunakan database Microsoft Access 2000 keatas maka oleh Microsoft disarankan untuk menggunakan komponed ADO. Komponen ADO merupakan cara yang kedua yang disediakan oleh Microsoft Visual Basic 6.0 untuk mengakses database. Dan pada komponen ini cara pengaksesan database menjadi jauh lebih mudah dan sederhana karena kita tidak lagi perlu menggunakan perintah-perintah yang bertingkat untuk melakukan koneksi, menciptakan workspace dan sebagainya. Hal-hal seperti itu sudah disederhanakan oleh komponen ini, artinya apapun database yang akan digunakan tidak akan menjadi masalah karena perintah-perintah yang digunakan pada komponen ADO akan sama saja untuk berbagai macam database tersebut.

Pemakaian komponen DAO


Pada Microsoft Visual Basic 6.0, komponen DAO secara default sudah ada di toolbox dengan tampilan seperti berikut ini

Gambar 1.1 Icon DAO Untuk menggunakan komponen tersebut, lakukanlah klik ganda pada icon dao yang terdapat pada toolbox sehingga muncul pada form seperti tampilan berikut ini

Gambar 1.2 Komponen DAO

Gambar 1.3 Komponen DAO di form Setelah itu untuk mengkoneksikan DAO, sebelum melangkah lebih lanjut ada beberapa properti yang harus diperhatikan agar dalam membuat program dengan menggunakan komponen ini tidak mengalami kesusahan. Perhatikan tabel properti komponen DAO berikut ini. 1

Tabel Properti Komponen DAO


Properti Align BOFAction Caption Access DatabaseName DefaultCursorType DefaultType EOFAction Exclusive ReadOnly RecordsetType RecordSource Keterangan Menentukan pemerataan kontrol pada Form (0-None, 1- Top, 2 - Bottom, 3 - Left, 4 - Right) Menentukan metoda yang akan otomatis diaktifkan ketika posisi pointer mencapai BOF (1 - MoveFirst, 0 - BOF) Menentukan tulisan pada data kontrol Menentukan jenis software file database (Access, dBaseIII, dBaseIV, dll) sebagai sumber data Menentukan path dan nama database file yang akan digunakan sebagai sumber data Menentukan jenis kursor yang digunakan (0 - DefaultCursor, 1 - ODBCCursor, 2 - ServerSideCursor) Menentukan jenis data yang digunakan (2 - UseJext, 1 UseODBC) Menentukan metoda yang akan otomatis diaktifkan ketika posisi pointer mencapai BOF (1 - MoveLast, 0 - EOF,2-AddNew) Menentukan modus pengaktifan database secara Share atau Exclusive (False, True) Menentukan apakah recordset adalah readonly atau tidak (False, True) Menentukan jenis recordset yang akan digunakan (1-Dynaset, 0-Table, 2-Snapshot) Menentukan sumber data untuk recordset, dapat berupa nama tabel maupun bahasa SQL (khusus untuk Dynaset dan Snapshot)

Secara default, untuk menggunakan komponen DAO properti yang harus di ubah nilainya adalah : Databasename RecordSource Setelah meletakan komponen data ke form, langkah selanjutnya adalah pastikan bahwa properti connect isinya adalah access. Kemudian set properti databasename dengan melakukan klik pada icon berikut ini yang tampak pada isian

Gambar 1.4 : Icon untuk memilih dan mencari database pada properti databasename Kemudian pilih database yang akan digunakan dengan menggunakan dialog box yang muncul. Ingat, yang dapat dipakai untuk database access adalah access 97.

Gambar 1.5 : Dialog Box memilih database Setelah dipilih maka tampilan properti window untuk komponen dao seperti berikut ini

Gambar 1.6 : Properti Window Kemudian properti yang harus diubah nilainya selain databasename adalah RecordSource. Nilai yang akan tampil di properti RecordSource adalah tabel yang terdapat pada database. Tinggal dipilih tabel mana yang dibutuhkan pada komponen ini. Berikut ini adalah tampilan yang terdapat pada properti RecordSource

Gambar 1.7 : Memilih tabel yang akan dipakai pada properti RecordSource

Gambar 1.8 : Tabel yang sudah dipilih di properti RecordSource

Memahami Jenis RecordSet


Selain RecordSource, properti yang harus diperhatikan adalah jenis Recordset karena jenis Recordset jika digunakan untuk keperluan yang tepat akan mendukung performa dari aplikasi yang dibuat. Visual Basic menerima dan menampilkan record dari database dengan menggunakan objek Recordset. Recordset menampilkan record dari suatu Tabel atau record yang merupakan hasil Query (SQL). Ada tiga jenis recordset yang dapat ditentukan pada properti 4

RecordSetType pada data control, adapun ketiga jenis recordset tersebut adalah sebagai berikut : Tabel Properti Recordset Jenis Recordset Keterangan Table Suatu himpunan dari record yang diambil dari suatu tabel tunggal database. Anda dapat menambah, mengubah, atau menghapus record pada jenis recordset ini. Dynaset Suatu himpunan dari record secara dinamis yang di ambil dari suatu tabel tunggal maupun hasil Query (SQL) dari satu atau lebih tabel. Anda dapat menambah, mengurangi, atau menghapus record pada jenis recordset ini, dan perubahan akan mempengaruhi tabel yang bersangkutan. Snapshot Suatu himpunan dari record yang merupakan duplikasi secara statis. Anda dapat menggunakan recordset jenis ini untuk mencari data, dan membuat laporan. Recorset Snapshot dapat mengandung field dari satu atau lebih tabel yang tidak dapat di update. Untuk memilih jenis Recordset yang ingin digunakan pada Property (RecordsetType), dan nilai defaultnya adalah vbDynasetType. Catatan : Pada Dynaset dan Snapshot, recordset disimpan pada memori lokal, jika aplikasi anda tidak menggambil data lebih dari satu tabel, ataupun sumber data non-ODBC, maka Recordset jenis Table merupakan pilihan yang baik dari segi kecepatan dan efisiensi pemakaian memori.

Metoda-metoda pada Data Kontrol


Sebagaimana objek-objek standar lainnya, objek Data kontrol menyediakan berbagai metoda yang dapat digunakan untuk mendukung program yang dibuat dengan menggunakan komponen tersebut.

Bergerak dalam RecordSet


Metoda MoveFirst MoveLast MovePrevious Fungsi Memindahkan keaktifan pointer ke awal recordset Memindahkan keaktifan pointer ke akhir recordset Memindahkan keaktifan pointer ke record sebelumnya

MoveNext Memindahkan keaktifan pointer ke record berikutnya Contoh : Data1.Recordset.MoveFirst

Mencari suatu record tertentu


a. Untuk RecordSet jenis Dynaset dan SnapShot Metoda FindFirst kriteria FindLast kriteria FindNext kriteria FindPrevious Kriteria Fungsi Mencari dari ecord pertama yang memenuhi kriteria Mencari dari record terakhir yang memenuhi kriteria Mencari ke record berikutnya yang memenuhi kriteria Mencari ke record sebelumnya yang memenuhi kriteria

Contoh : Data1.Recordset.FindFirst "nama = 'Doraemon'" b. Untuk RecordSet jenis Table Pada recordset jenis table untuk pencarian dapat menggunakan metoda Seek, tetapi sebelumnya perlu ditentukan dahulu pada saat pembuatan tabel, field mana yang menjadi index dan field ini yang akan digunakan pada properti index di komponen data. Bentuk umumnya : Data1.RecordSet.Index = NamaIndex Data1.RecordSet.Seek perbandingan, key1, key2, ... Perbandingan "=" ">=" ">" "<=" "<" Keterangan Sama dengan Lebih besar atau sama Lebih besar Lebih kecil atau sama Lebih kecil

Contoh : Data1.Recordset.Index = "nama" Data1.Recordset.Seek "=","doraemon"

Memeriksa hasil pencarian record


Setelah proses pencarian dilakukan, maka hasil dari proses tersebut haruslah diperiksa apakah ditemukan atau tidak. Untuk itu, proses pemeriksaannya dapat menggunakan properti NoMatch baik untuk metoda Find maupun metoda Seek. Dimana arti dari properti NoMatch adalah tidak cocok Contoh Data1.Recordset.FindFirst "nama = 'doraemon'" If Data1.Recordset.NoMatch Then MsgBox "Peserta belum terdaftar !" Else MsgBox "Peserta telah terdaftar !" End If atau Data1.Recordset.Index = "nama" Data1.Recordset.Seek "=","doraemon" If Data1.Recordset.NoMatch Then MsgBox "Peserta belum terdaftar !" Else MsgBox "Peserta telah terdaftar !" End If

Menandai posisi record


Untuk menyimpan posisi record dapat menggunakan properti bookmark. Contoh : Dim MyPosisi As Variant MyPosisi = Data1.RecordSet.Bookmark Data1.RecordSet.MoveFirst Data1.RecordSet.Bookmark = MyBookMark 6

Mengambil nilai field dari record aktif


Jika suatu kontrol di bound pada data kontrol, maka kontrol tersebut akan menampilkan nilai field dari record yang sedang aktif. Untuk mengambil nilai field dari record yang sedang aktif secara koding atau menuliskannya pada code window, dapat menggunakan salah satu cara berikut :
Data1.Recordset.Fields(0).Value n = 0

' Mengacu pada nilai pada field pertama ' Mengacu tidak langsung dengan suatu field number. Data1.Recordset.Fields(n) ' Mengacu pada nilai pada field pertama. Data1.Recordset.Fields("FName") ' Mengacu pada FName field. string$ = "FName" ' Mengacu tidak langsung dengan nama field. Data1.Recordset.Fields(string$) ' Mengacu pada FName field Data1.Recordset("FName") ' Mengacu kepada field sebagai collection default. Data1.Recordset(n) ' Mengacu kepada field sebagai collection default. Contoh : Debug.Print Data1.Recordset("Email")

Mengubah nilai field dari record aktif


Untuk mengubah nilai field dari record yang sedang aktif secara koding / penulisan program pada code window, lakukan langkah sebagai berikut : 1. Posisikan current record ke record yang akan diedit. 2. Tentukan nilai baru kefield yang mau diubah 3. Gunakan method Update atau method Move, Find, atau Seek. Contoh : Data1.Recordset.Edit Data1.Recordset("nama") = "Doraemon" ... Data1.RecordSet.Update

Menambah record baru ke recordset


Untuk menambahkan record baru ke dalam recordset, dapat digunakan properti EOFAction untuk secara otomatis menambahkan record baru ketika posisi record pointer berada di EOF, sehingga dapat dengan segera menyimpan data di tabel walaupun tidak menggunakan perintah. Cukup dengan melakukan seting pada properti EOFAction, maka proses tersebut sudah terlaksana. Secara koding lakukan langkah berikut untuk menambahkan record baru ke recordset : 1. Membuat suatu record baru dengan method AddNew dimana Current record pointer disimpan dan berpindah ke record baru. 2. Tentukan nilai baru untuk record baru. 3. Simpan record baru dengan method Update. Contoh : Data1.Recordset.AddNew Data1.Recordset("nama") = "Nobita" ... Data1.RecordSet.Update

Menghapus record yang sedang aktif


Untuk menghapus seluruh record, posisikan ke record yang akan dihapus, dan gunakan method Delete. Sesaat setelah record tersebut dihapus, maka record tersebut menjadi invalid, sehingga harus menggunakan method MoveNext untuk memindahkan posisi setelah setiap penghapusan. Contoh : Data1.Recordset.Delete Data1.Recordset.MoveNext If Data1.Recordset.Eof Then Data1.Recordset.MoveLast End If

Melakukan refresh data pada Recordset


Anda dapat menggunakan metoda Refresh untuk menutup dan membentuk ulang isi Recordset. Contoh : Data1.Refresh

Menutup suatu Recordset


Method Close menutup recordset dan membebaskan resource yang dialokasikan padanya. Usaha untuk melakukan suatu metode atau akses pada element dari recordset yang telah terhapus akan menghasilkan kesalahan. Contoh : Data1.Recordset.Close Database dan recordset akan secara otomatis tertutup ketika : 1. Menggunakan method Close terhadap recordset tertentu. 2. Form yang mengandung data control di unload 3. Program menjalankan statement End.

Anda mungkin juga menyukai