Apa yang saya pikir adalah hal yang paling menarik tentang Visual Basic itu cara yang mudah mengakses dan memodifikasi database. Ini adalah apa yang saya pikir Anda harus belajar berikutnya, Anda akan menemukan banyak aplikasi untuk pengetahuan ini. Aku hampir tidak pernah membuat program tanpa menggunakan database untuk penyimpanan data.
Ada banyak cara untuk bekerja dengan database dalam Visual Basic, dan saya akan berpikir Anda memiliki sekurangnya melirik kontrol Data. Aku bahkan tidak akan menyebutkan kontrol data lebih lanjut dalam teks ini, karena sangat mudah digunakan dan terlalu terbatas untuk menjadi menarik bagi seorang pengembang profesional. (Ok, ada beberapa pengecualian untuk ini.)
Apa yang saya akan mengajarkan Anda untuk menggunakan dalam teks ini adalah DAO (Data Access Objects). Anda akan mendapatkan akrab dengan membuka database dan mengambil / menambahkan / menghapus / memperbarui catatan dari tabel. Saya hanya akan menggunakan Database Access (*. mdb) dalam contoh saya, karena ini adalah yang paling banyak digunakan DBMS (DataBase Management System) untuk aplikasi yang lebih kecil dibuat dalam Visual Basic. Kami akan pada akhir pelajaran ini telah membuat, sederhana namun fungsional, aplikasi buku telepon.
Teks ini memerlukan beberapa pengetahuan tentang bahasa pemrograman Visual Basic dan Anda harus akrab dengan Visual Basic IDE (Integrated Development Environment).
Obyek Database
Hal pertama yang harus Anda lakukan dalam aplikasi Anda adalah dengan membuka database dimana tabel Anda disimpan. Anda perlu untuk mendeklarasikan variabel untuk menyimpan database Anda untuk melakukan hal ini. Hal ini dilakukan dengan:
Dim dbMyDB Sebagai Database
Ini akan memberikan Anda sebuah variabel / objek yang dapat memegang referensi ke database Anda. Untuk membuka sebuah database Access sederhana bernama "MyDatabase.mdb", lakukan ini:
Set dbMyDB = OpenDatabase ("MyDatabase.mdb")
Anda benar-benar harus menentukan path lengkap ke db, tapi jika direktori saat ini Anda adalah direktori dimana database terletak, ini akan bekerja.
Jadi, sekarang Anda telah membuka database. Ini tidak akan memberikan Anda data. Apa yang perlu anda lakukan adalah membuka tabel dalam database. Kau tidak terbatas untuk membuka tabel tunggal, kadang-kadang Anda memiliki dua atau lebih tabel yang saling berhubungan dan terkait bersama-sama w engan kunci asing, dan ada cara untuk menangani ini. Tapi dalam hal ini "Visual Basic - Database Primer" Saya hanya akan menunjukkan cara untuk membuka tabel tunggal.
Obyek Recordset
Visual Basic menggunakan objek disebut Recordset untuk menahan meja Anda. Untuk menyatakan seperti obyek dan untuk membuka meja, lakukan ini:
Dim rsMyRS Sebagai Recordset
Set rsMyRS = dbMyDB.OpenRecordSet ("MyTable", dbOpenDynaset)
Apa yang terjadi di sana? Well, saya telah menyatakan objek Recordset dan menggunakan metode objek Database OpenRecordSet untuk membuka tabel Dynaset tipe. Anda dapat membuka Recordset dalam beberapa mode. file bantuan online VB yang menjelaskan modus yang berbeda dan apa yang mereka ar e untuk. Modus Dynaset adalah modus saya gunakan sebagian besar. Ini memberikan Anda sebuah Recordset yang Anda dapat menambah, menghapus dan memodifikasi catatan masuk
Mengakses catatan
Sekarang kita telah membuka tabel (disebut sebagai Recordset dari sekarang) kita ingin mengakses catatan di dalamnya. Objek Recordset memungkinkan kita untuk bergerak di dalamnya dengan menggunakan metode MoveFirst, MoveNext, MovePrevious, MoveLast (antara lain). Saya akan menggunakan beberapa untuk mengisi kotak daftar dengan catatan Recordset kami.
Untuk mendapatkan contoh ini untuk bekerja, membuat database (dengan Access) yang disebut "MyDatabase.mdb" dengan tabel "MyTable" di dalamnya. Tabel ini harus memiliki ladang "ID" jenis "Counter" yang Anda tetapkan untuk menjadi kunci utama, lapangan "Nama" Teks jenis dan bidang "P mengasah" Teks tipe. Tambahkan beberapa catatan untuk itu. Letakkan daftar di kotak formulir dan menyebutnya "lstRecords".
Dim dbMyDB As Database
Dim rsMyRS As RecordSet
Private Sub Form_Load()
Set dbMyDB = OpenDatabase("MyDatabase.mdb")
Set rsMyRS = dbMyDB.OpenRecordSet("MyTable", dbOpenDynaset)
If Not rsMyRS.EOF Then rsMyRS.MoveFirst
Do While Not rsMyRS.EOF
lstRecords.AddItem rsMyRS!Name
lstRecords.ItemData(lstRecords.NewIndex) = rsMyRS!ID
rsMyRS.MoveNext
Loop
End Sub
Ini akan membuat kotak daftar isi dengan catatan Anda ketika beban formulir. Aku telah memperkenalkan beberapa konsep baru dengan contoh ini. Kita semua siap menutupi bagian pertama di mana kita membuka meja. Baris mengatakan Jika Tidak rsMyRS.EOF Lalu rsMyRS.M oveFirst mengatakan program untuk pindah ke rekaman pertama dalam kasus ada catatan sama sekali. The EOF adalah properti Boolean itu benar jika rekor saat ini adalah yang terakhir. Hal ini juga berlaku jika tidak ada catatan dalam Recordset.
Lalu kita membuat program menambahkan Nama "" bidang semua catatan ke daftar kotak dengan menambahkan catatan lapangan saat ini "Nama" dan pindah ke catatan berikutnya. Anda meminta sebuah bidang Recordset dengan meletakkan sebuah! antara nama objek Recordset dan na saya dari lapangan. Sementara cek loop untuk melihat apakah ada catatan lebih untuk menambahkan.
Pencarian recordset
Anda mungkin bertanya-tanya mengapa saya menempatkan nilai field "ID" pada properti ItemData kotak daftar itu. Saya melakukan ini sehingga kita akan mengetahui kunci utama untuk semua catatan dalam rangka untuk mencari rekaman.
Letakkan kotak teks di suatu tempat pada formulir dan menyebutnya "txtPhone". Kemudian salin kode berikut ke proyek.
Private Sub lstRecords_Click ()
rsMyRS.FindFirst "ID =" & Str (lstRecords.ItemData (lstRecords.ListIndex))
txtPhone.Text = rsMyRS! Telepon
End Sub
Ini akan menampilkan nomor telepon dari orang yang dipilih saat mengklik dalam kotak daftar. Menggunakan metode FindFirst dari objek Recordset. Ini mengambil parameter string yang seperti apa yang setelah WHERE dalam ekspresi SQL. Anda menyatakan bidang yang ingin Anda cari di (di sini "ID"), maka kriteria evaluasi (di sini "=") dan terakhir nilai untuk mencari (di sini ItemData item yang dipilih pada list box).
Jadi apa yang kita lakukan adalah untuk mencari record dengan nilai "ID" bidang yang sama dengan properti ItemData dari item yang dipilih dalam kotak daftar. Lalu kami menampilkan nilai dari kolom "Telepon dalam kotak teks.
Memperbarui database
Anda mungkin ingin dapat memperbarui beberapa nilai dari lapangan beberapa saat melakukan pemrograman database. Hal ini dilakukan dengan Edit dan Update. Kami akan mencoba untuk mengubah nilai dari kolom "Telepon dengan mengedit teks dalam kotak teks dan mengklik tombol.
Letakkan tombol perintah pada bentuk dan nama itu "cmdUpdate". Kemudian salin kode berikut ke proyek.
Private Sub cmdUpdate_Click ()
rsMyRS.Edit
rsMyRS! Telepon = txtPhone.Text
rsMyRS.Update
End Sub
Mungkinkah sederhana? Ya. Hal ini akan mengubah phonenumber orang yang dipilih kami. Atau dengan kata teknis: Hal ini akan mengubah nilai kolom "" Telepon dari catatan kita saat ini. Bayangkan rekor saat ini menjadi satu set kotak, dengan sebuah lapangan di setiap kotak. T metode Edit ia mengambil tutup semua kotak dan Update menempatkan mereka kembali. Ketika kita menulis rsMyRS Telepon =! TxtPhone.Text kita mengganti isi dari kotak "" Telepon dengan konten dalam kotak teks.
Menghapus dan Menambahkan catatan
Menghapus
Menghapus catatan tidak bisa sederhana. Untuk menghapus catatan saat ini Anda hanya menjalankan metode Hapus dari objek Recordset. Kami akan menempatkan fitur ini dalam proyek kecil kami. Membuat satu tombol perintah lebih bernama "cmdDelete" dan kode berikut ini akan melakukan pekerjaan kami menghapus orang yang sedang dipilih.
Private Sub cmdDelete_Click ()
rsMyRS.Delete
lstRecords.RemoveItem lstRecords.ListIndex
End Sub
Aku tidak akan repot-repot untuk menjelaskan bahwa dalam detail yang lebih besar =). Pernyataan pertama menghapus rekaman dan yang kedua menghilangkan kotak entri daftar.
Menambahkan
Menambahkan catatan mirip updateing, kecuali Anda menggunakan AddNew bukan Edit. Mari kita tambahkan satu tombol perintah lagi untuk aplikasi kita. Sebut saja ... errh ... biarkan aku melihat ... ya! "CmdNew" =). Berikut ini adalah kode yang menambahkan catatan baru.
Private Sub cmdNew_Click ()
rsMyRS.AddNew
rsMyRS Nama =! "A New Person"
lstRecords.AddItem rsMyRS! Nama
lstRecords.ItemData (lstRecords.NewIndex) = rsMyRS! ID
rsMyRS Telepon =! "Person's Telpon"
rsMyRS.Update
End Sub
Saya akan menggunakan analogi kotak untuk menjelaskan ini. Metode AddNew mengambil satu set kotak baru dan menambahkannya ke Recordset kami. Kami kemudian dimasukkan beberapa nilai baru dalam mereka dan menutup tutup dengan Update. Seperti yang dapat Anda lihat kita tidak pernah menyatakan apapun valu e untuk "ID", tetapi karena Anda ingat, ini adalah bidang jenis "Counter" yang secara otomatis mendapatkan nilai yang unik. Kode ini juga menambahkan catatan baru ke daftar kotak sehingga kami akan dapat mengubah nomor telepon dari orang ini. Saya menyerahkannya kepada Anda untuk menambahkan fitur e th mengubah nama.
Tidak ada komentar:
Posting Komentar