Sekarang kita mencoba belajar Database visual basic, yaitu database dengan menggunakan Microsoft Office Acces sebagai sumber datanya. Kita akan membuat sebuah aplikasi sederhana “Koleksi Bukuku” yang berfungsi untuk menyimpan daftar koleksi buku yang mungkin sangat banyak dan kita belum sempat melakukan inventarisasi terhadapnya.Saya sendiri sempat terkejut pada saat saya membuat project ini karena ketika saya memasukan data buku-buku saya eh..ternyata jumlahnya lumayan banyak yaitu 45 buku, bayangkan jika semua buku tersebut minimal harganya 25.000 sudah menghabiskan berapa rupiah nih ..???
Tapi semua buku pasti bermanfaat dan saya tentu tidak menyesal untuk membelinya dan memilikinya.
Thanks My Books.
Baik langsung saja yang dibutuhkan dalam project ini adalah :
- Satu form dengan nama main
- Satu dataenvironment dengan nama dataenvironment1
- Datareport dengan nama datareport1
Control yang ada didalam form, yaitu :
- Imagelist1 sebagai penampung image untuk toolbar
- Toolbar1 sebagai tempat menampung gambar yang akan dapat di klik langsung oleh user
- frame1 sebagai tempat
- tujuh Textbox yaitu txtjudul, txtreferensi, txtpenulis, txtcetakan, txtpenerbit, txtrecordaktif dan txtsearch
- satu ComboBox yaitu cbosearch
- satu CommandButton yaitu cmdcari
- membuat Menubar untuk menampung File, Tambah, Hapus, urut sesuai Judul , urut sesuai Resensi dan seterusnya.
Fasilitas yang ada pada project sederhana ini adalah :
- Pencarian
- Tambah data
- Hapus Data
- Update data
- Pembatalan data
- Simpan data
- edit data
- Menampilkan laporan yang lumayan tampilannya
- Lebih fleksibel karena untuk koneksi ke database menggunakan kode dan tidak menggunakan Adodc yang saya rasa kurang fleksibel dalam koneksi database.
- navigasi (Next, Previous, First dan Last) yang diletakan di menubar sehingga lebih hemat tempat.
BACA DAHULU CODE-CODE DIBAWAH INI KHUSUSNYA PADA “MNUITEMREPORT” DAN “CASE LAPORAN”. JANGAN JALANKAN JIKA BELUM DICOMPILE KARENA NANTI WALAUPUN SUDAH ANDA STOP PROJECT ANDA MAKA APLIKASI YANG BERADA DIFOLDER INI YAITU “KOLEKSIBUKUKU.EXE” AKAN DIJALANKAN !!!
BACA ALASANYA DI “MNUITEMREPORT” DAN “CASE LAPORAN”.
==============================================
Masukan semua kode di bawah ini dalam form
==============================================
-
Private WithEvents adoPrimaryRSdaftarBuku As Recordset
Private Sub CboSearch_Click()
-
-
-
-
-
-
TxtSearch.BackColor = vbWindowText
-
-
-
-
TxtSearch.BackColor = vbWindowText
-
-
-
-
TxtSearch.BackColor = vbWindowText
-
-
-
-
TxtSearch.BackColor = vbWindowText
-
-
-
Private Sub DisableSearch()
TxtSearch.Enabled = False
TxtSearch.BackColor = vbWindowText
TxtSearch.Text = “Masukan Kata Kunci Pencarian”
CboSearch.Text = “Pencarian”
-
Private Sub Command1_Click()
If TxtSearch.Text = “” Then
-
-
-
-
-
-
‘melakukan pencarian data pd txtsearch
adoPrimaryRSdaftarBuku.Find “Judul like ‘*” + TxtSearch + “*’”, , adSearchForward, 1
-
‘melakukan pencarian data pd txtsearch
adoPrimaryRSdaftarBuku.Find “Referensi like ‘*” + TxtSearch + “*’”, , adSearchForward, 1
-
‘melakukan pencarian data pd txtsearch
adoPrimaryRSdaftarBuku.Find “Penulis like ‘*” + TxtSearch + “*’”, , adSearchForward, 1
-
‘melakukan pencarian data pd txtsearch
adoPrimaryRSdaftarBuku.Find “Penerbit like ‘*” + TxtSearch + “*’”, , adSearchForward, 1
-
‘jika data tidak ditemukan maka
If adoPrimaryRSdaftarBuku.EOF Then
MsgBox “Data yang anda cari tidak ditemukan”, vbOKOnly + vbCritical, “Search”
adoPrimaryRSdaftarBuku.MoveFirst
-
-
-
-
-
LblRecordAktif.Caption = ” Jumlah Koleksi ” & adoPrimaryRSdaftarBuku.RecordCount & ” Buku” & ” dan Sekarang Posisi di Koleksi Buku ke ” & adoPrimaryRSdaftarBuku.AbsolutePosition
-
-
-
-
db.CursorLocation = adUseClient
db.Open “PROVIDER=Microsoft.Jet.OLEDB.4.0;” & _
“Data Source=” & App.Path & “\Daftar Buku.mdb;”
Set adoPrimaryRSdaftarBuku = New Recordset
adoPrimaryRSdaftarBuku.Open “TblDaftarBuku”, db, adOpenStatic, adLockOptimistic
‘Bind the ole controls to the data provider
Set txtJudul.DataSource = adoPrimaryRSdaftarBuku
Set txtReferensi.DataSource = adoPrimaryRSdaftarBuku
Set txtPenulis.DataSource = adoPrimaryRSdaftarBuku
Set TxtCetakan.DataSource = adoPrimaryRSdaftarBuku
Set txtPenerbit.DataSource = adoPrimaryRSdaftarBuku
‘mengurutkan berdasarkan field referensi
adoPrimaryRSdaftarBuku.Sort = “Referensi”
LblRecordAktif.Caption = ” Jumlah Koleksi ” & adoPrimaryRSdaftarBuku.RecordCount & ” Buku” & ” dan Sekarang Posisi di Koleksi Buku ke ” & adoPrimaryRSdaftarBuku.AbsolutePosition
-
Private Sub Form_Unload(Cancel As Integer)
adoPrimaryRSdaftarBuku.Close
-
Private Sub MnuBatal_Click()
-
-
-
txtReferensi.Enabled = False
txtPenulis.Enabled = False
TxtCetakan.Enabled = False
txtPenerbit.Enabled = False
‘batalkan update kemudian menuju ke record pertama
adoPrimaryRSdaftarBuku.CancelUpdate
adoPrimaryRSdaftarBuku.MoveFirst
-
Private Sub mnuitemabout_Click()
-
‘menampilkan pesan mengenai aplikasi
MsgBox “Koleksi Bukuku Version 1.0.0 Oleh Joko”, vbInformation, “Koleksi Bukuku”
-
Private Sub mnuitemadd_Click()
-
-
adoPrimaryRSdaftarBuku.AddNew
‘textbox enable/dapat diisi
-
txtReferensi.Enabled = True
txtPenulis.Enabled = True
TxtCetakan.Enabled = True
txtPenerbit.Enabled = True
‘pointer aktif di txtjudul
-
-
Private Sub mnuitemdelete_Click()
-
If txtJudul.Text = “” Then
MsgBox “Minimal Ketik Judul Bukunya dulu.”, vbOKOnly, “Informasi”
-
adoPrimaryRSdaftarBuku.Delete adAffectCurrent
adoPrimaryRSdaftarBuku.MoveFirst
-
‘Hapus daftar buku record aktif
adoPrimaryRSdaftarBuku.Delete adAffectCurrent
adoPrimaryRSdaftarBuku.MoveFirst
-
LblRecordAktif.Caption = ” Jumlah Koleksi ” & adoPrimaryRSdaftarBuku.RecordCount & ” Buku” & ” dan Sekarang Posisi di Koleksi Buku ke ” & adoPrimaryRSdaftarBuku.AbsolutePosition
-
Private Sub mnuitemedit_Click()
-
‘mengaktifkan textbox agar dapat diubah daftar bukunya
-
txtReferensi.Enabled = True
txtPenulis.Enabled = True
TxtCetakan.Enabled = True
txtPenerbit.Enabled = True
-
Private Sub mnuitemexit_Click()
-
-
-
Private Sub mnuitemreport_Click()
-
‘INI CODE UPDATE REPORT/LAPORAN YANG BURUK TETAPI EFEKTIF DAN TIDAK BIKIN SAYA PUSING HE..HE..,
‘SAYA TULISKAN KARENA JIKA KITA BUKA LAPORAN DAN MENUTUPNYA KEMBALI KEMUDIAN KITA MELAKUKAN PERUBAHAN
‘PADA DATA (PENAMBAHAN ATAU PENGHAPUSAN DATA) TERNYATA JIKA KITA BUKA KEMBALI LAPORAN
‘MAKA DIHASILKAN LAPORAN YANG MASIH LAMA (BELUM MENGALAMI PENAMBAHAN/PENGHAPUSAN)
‘SEHINGGA SAYA LAKUKAN CODE DIBAWAH INI YAITU MENUTUP APLIKASI DAN MEMANGGILNYA KEMBALI
‘KEMUDIAN BARU LAPORAN (DATAREPORT1) DITAMPILKAN. MAAF MENGGUNAKAN JALAN PINTAS HE..HE…BAGI YANG TAHU BAGI ILMU DONG..
Unload Main ‘MENUTUP APLIKASI
Shell App.Path & “\KOLEKSIBUKUKU.EXE” ‘MEMANGGIL APLIKASI KEMBALI
DataReport1.Show ‘MENAMPILKAN LAPORAN
-
Private Sub mnuitemsave_Click()
-
If txtJudul.Text = “” Then
MsgBox “Minimal Ketik Judul Bukunya dulu.”, vbOKOnly, “Informasi”
-
adoPrimaryRSdaftarBuku.Delete adAffectCurrent
adoPrimaryRSdaftarBuku.MoveFirst
-
‘menyimpan daftar buku yang telah di inputkan
adoPrimaryRSdaftarBuku.Save
-
-
txtReferensi.Enabled = False
txtPenulis.Enabled = False
TxtCetakan.Enabled = False
txtPenerbit.Enabled = False
LblRecordAktif.Caption = ” Jumlah Koleksi ” & adoPrimaryRSdaftarBuku.RecordCount & ” Buku” & ” dan Sekarang Posisi di Koleksi Buku ke ” & adoPrimaryRSdaftarBuku.AbsolutePosition
-
Private Sub MnuFirst_Click()
‘menuju ke record pertama
adoPrimaryRSdaftarBuku.MoveFirst
-
LblRecordAktif.Caption = ” Jumlah Koleksi ” & adoPrimaryRSdaftarBuku.RecordCount & ” Buku” & ” dan Sekarang Posisi di Koleksi Buku ke ” & adoPrimaryRSdaftarBuku.AbsolutePosition
-
Private Sub MnuLast_Click()
‘menuju ke record terakhir
adoPrimaryRSdaftarBuku.MoveLast
-
LblRecordAktif.Caption = ” Jumlah Koleksi ” & adoPrimaryRSdaftarBuku.RecordCount & ” Buku” & ” dan Sekarang Posisi di Koleksi Buku ke ” & adoPrimaryRSdaftarBuku.AbsolutePosition
-
Private Sub mnunext_Click()
‘menuju ke record setelah/ke depan
adoPrimaryRSdaftarBuku.MoveNext
‘jika record sudah sampai pada record yang terakhir maka akan berbunyi nada beep dan record yang aktif adalah record terakhir
If adoPrimaryRSdaftarBuku.EOF Then
-
adoPrimaryRSdaftarBuku.MoveLast
-
-
LblRecordAktif.Caption = ” Jumlah Koleksi ” & adoPrimaryRSdaftarBuku.RecordCount & ” Buku” & ” dan Sekarang Posisi di Koleksi Buku ke ” & adoPrimaryRSdaftarBuku.AbsolutePosition
-
Private Sub mnuprevious_Click()
adoPrimaryRSdaftarBuku.MovePrevious
‘jika record sudah sampai pada record yang pertama maka akan berbunyi nada beep dan record yang aktif adalah record pertama
If adoPrimaryRSdaftarBuku.BOF Then
-
adoPrimaryRSdaftarBuku.MoveFirst
-
-
LblRecordAktif.Caption = ” Jumlah Koleksi ” & adoPrimaryRSdaftarBuku.RecordCount & ” Buku” & ” dan Sekarang Posisi di Koleksi Buku ke ” & adoPrimaryRSdaftarBuku.AbsolutePosition
-
Private Sub MnuUpdate_Click()
-
With adoPrimaryRSdaftarBuku
‘mengedit data pada record aktif
-
-
!Referensi = txtReferensi.Text
!Penulis = txtPenulis.Text
!cetakan = TxtCetakan.Text
!Penerbit = txtPenerbit.Text
‘menyimpan hasil pengeditan data
-
-
If txtJudul.Text = “” Then
MsgBox “Minimal Ketik Judul Bukunya dulu.”, vbOKOnly, “Informasi”
-
-
-
Private Sub MnuUrutJudul_Click()
‘mengurutkan berdasarkan field Judul
adoPrimaryRSdaftarBuku.Sort = “Judul”
-
-
Private Sub MnuUrutpenerbit_Click()
‘mengurutkan berdasarkan field Penerbit
adoPrimaryRSdaftarBuku.Sort = “Penerbit”
-
-
Private Sub MnuUrutPenulis_Click()
‘mengurutkan berdasarkan field Penulis
adoPrimaryRSdaftarBuku.Sort = “Penulis”
-
-
Private Sub MnuUrutReferensi_Click()
‘mengurutkan berdasarkan field referensi
adoPrimaryRSdaftarBuku.Sort = “Referensi”
-
-
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
‘menggunakan statemen select case
‘initialisasi toolbar dan isi
-
-
-
-
‘menambah daftar koleksi buku
adoPrimaryRSdaftarBuku.AddNew
-
txtReferensi.Enabled = True
txtPenulis.Enabled = True
TxtCetakan.Enabled = True
txtPenerbit.Enabled = True
-
-
-
If txtJudul.Text = “” Then
MsgBox “Minimal Ketik Judul Bukunya dulu.”, vbOKOnly, “Informasi”
-
adoPrimaryRSdaftarBuku.Delete adAffectCurrent
adoPrimaryRSdaftarBuku.MoveFirst
-
‘menyimpan daftar buku yang telah di inputkan
adoPrimaryRSdaftarBuku.Save
-
-
txtReferensi.Enabled = False
txtPenulis.Enabled = False
TxtCetakan.Enabled = False
txtPenerbit.Enabled = False
LblRecordAktif.Caption = ” Jumlah Koleksi ” & adoPrimaryRSdaftarBuku.RecordCount & ” Buku” & ” dan Sekarang Posisi di Koleksi Buku ke ” & adoPrimaryRSdaftarBuku.AbsolutePosition
-
-
If txtJudul.Text = “” Then
MsgBox “Minimal Ketik Judul Bukunya dulu.”, vbOKOnly, “Informasit”
-
adoPrimaryRSdaftarBuku.Delete adAffectCurrent
adoPrimaryRSdaftarBuku.MoveFirst
-
‘Hapus daftar buku record aktif
adoPrimaryRSdaftarBuku.Delete adAffectCurrent
adoPrimaryRSdaftarBuku.MoveFirst
-
LblRecordAktif.Caption = ” Jumlah Koleksi ” & adoPrimaryRSdaftarBuku.RecordCount & ” Buku” & ” dan Sekarang Posisi di Koleksi Buku ke ” & adoPrimaryRSdaftarBuku.AbsolutePosition
-
-
‘INI CODE UPDATE REPORT/LAPORAN YANG BURUK TETAPI EFEKTIF DAN TIDAK BIKIN SAYA PUSING HE..HE..,
‘SAYA TULISKAN KARENA JIKA KITA BUKA LAPORAN DAN MENUTUPNYA KEMBALI KEMUDIAN KITA MELAKUKAN PERUBAHAN
‘PADA DATA (PENAMBAHAN ATAU PENGHAPUSAN DATA) TERNYATA JIKA KITA BUKA KEMBALI LAPORAN
‘MAKA DIHASILKAN LAPORAN YANG MASIH LAMA (BELUM MENGALAMI PENAMBAHAN/PENGHAPUSAN)
‘SEHINGGA SAYA LAKUKAN CODE DIBAWAH INI YAITU MENUTUP APLIKASI DAN MEMANGGILNYA KEMBALI
‘KEMUDIAN BARU LAPORAN (DATAREPORT1) DITAMPILKAN. MAAF MENGGUNAKAN JALAN PINTAS HE..HE…BAGI YANG TAHU BAGI ILMU DONG..
Unload Main ‘MENUTUP APLIKASI
Shell App.Path & “\KoleksiBukuku.exe” ‘MEMANGGIL APLIKASI KEMBALI
DataReport1.Show ‘MENAMPILKAN LAPORAN
-
-
‘membuat textbox dapat di edit/ubah
txtJudul.Enabled = TruetxtReferensi.Enabled = True
txtPenulis.Enabled = True
TxtCetakan.Enabled = True
txtPenerbit.Enabled = True
-
-
-
-
txtReferensi.Enabled = False
txtPenulis.Enabled = False
TxtCetakan.Enabled = False
txtPenerbit.Enabled = False
‘batalkan update kemudian menuju ke record pertama
adoPrimaryRSdaftarBuku.CancelUpdate
adoPrimaryRSdaftarBuku.MoveFirst
-
-
With adoPrimaryRSdaftarBu’mengedit data pada record aktif
-
-
!Referensi = txtReferensi.Text
!Penulis = txtPenulis.Text
!cetakan = TxtCetakan.Text
!Penerbit = txtPenerbit.Text
‘menyimpan hasil pengeditan data
-
-
If txtJudul.Text = “” Then
MsgBox “Minimal Ketik Judul Bukunya dulu.”, vbOKOnly, “Informasi”
-
-
-
-
-
-
-
Private Sub TxtSearch_KeyPress(KeyAscii As Integer)
KeyAscii = Asc(UCase(Chr(KeyAscii)))
-
-
-
-
-
TxtSearch.SelLength = Len(TxtSearch.Text)
-
-
-
‘melakukan pencarian data pd txtsearch
adoPrimaryRSdaftarBuku.Find “Judul like ‘*” + TxtSearch + “*’”, , adSearchForward, 1
-
‘melakukan pencarian data pd txtsearch
adoPrimaryRSdaftarBuku.Find “Referensi like ‘*” + TxtSearch + “*’”, , adSearchForward, 1
-
‘melakukan pencarian data pd txtsearch
adoPrimaryRSdaftarBuku.Find “Penulis like ‘*” + TxtSearch + “*’”, , adSearchForward, 1
-
‘melakukan pencarian data pd txtsearch
adoPrimaryRSdaftarBuku.Find “Penerbit like ‘*” + TxtSearch + “*’”, , adSearchForward, 1
-
‘jika data tidak ditemukan maka
If adoPrimaryRSdaftarBuku.EOF Then
MsgBox “Data yang anda cari tidak ditemukan”, vbOKOnly + vbCritical, “Search”
adoPrimaryRSdaftarBuku.MoveFirst
-
-
-
-
-
-
=================================================
Letakan kode di bawah ini di Data environment1
=================================================
- Private Sub DataEnvironment_Initialize()
- ‘Selalu terkoneksi dengan database “Daftar Buku.mdb” asalkan masih dalam satu folder dengan aplikasi.
- ‘Akibat jika anda lupa tdk menulis kode di bawah ini adalah
- ‘- muncul pesan untuk memasukan alamat yang benar database pada saat akan melihat laporan/report,
- ‘pesan ini muncul karena anda membuat folder baru untuk meletakkan project sehingga alamat tdk ditemukan
- ‘untuk latihan jangan tulis kode di bawah ini tetapi melalui Dataenvironment1 klik kanan properties
- ‘pilih alamat file database “Daftar Buku.mdb”. Kemudian coba jalankan aplikasi dan
- ‘pilih laporan maka laporan akan terlihat. Sekarang keluar dari VB dan pindahkan folder project anda
- ‘ke sembarang (alamat baru), jalankan aplikasi database masih terkoneksi
- ‘tetapi pada saat ingin melihat laporan akan muncul pesan error.
- DataEnvironment1.DaftarBuku.ConnectionString = App.Path & “\Daftar Buku.mdb”
SELESAI