Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
-
Upload
arif-jauhari -
Category
Documents
-
view
105 -
download
0
Transcript of Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 1/186
1
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 2/186
2
KATA PENGANTAR
Visual Basic merupakan salah satu bahasa pemograman yang popular sejak pertama kali
di rilis tahun 1991. Karena kehandalannya maka Microsoft selalu membuat perbaikan disana-sini
untuk setiap versi terbarunya.
Pada bulan April yang lalu Microsoft telah merilis Visual Studio 2010 yang didalamnya
terdapat Visual Basic terbaru yaitu Visual Basic 10. Pada versi ini banyak sekali fitur-fitur yang
memudahkan programmer dalam develop aplikasi. Dan untuk mengetahui fitur-fitur apa saja
yang terdapat pada VB 10 dan VS 2010 buku ini dapat dijadikan salah satu referensi karena di
kemas dengan gamblang dan mudah dimengerti, sekaligus di sertakan dengan contoh pembuatan
aplikasi.
Selain membahas Visual Basic buku ini juga membahas tentang fitur-fitur baru pada Ms
Access 2010, dimana Ms Access 2010 dapat dijadikan sebaga database pada suatu aplikasi.
Penulis menyarankan sebelumnya mengunduh (download ) terlebih dahulu project yang dibahas
pada buku ini disini (http://geeks.netindonesia.net/files/folders/source_codes_vb/default.aspx).
Salah satu kelebihan buku ini adalah, bagaimana pembaca dibimbing untuk membuat
aplikasi dengan VB 10 dan Ms Access 2010. Walaupun sebelumnya pembaca tidak memiliki
pengetahuan dengan 2 (dua) produk ini, tapi dengan bimbingan buku ini pembaca dapat
mengikuti dengan baik.
Tetapi penulis juga manusia, jadi buku ini masih jauh dari sempurna dan untuk itu
penulis menantikan saran dan usulan dari para pembaca untuk perbaikan penulisan di masa yang
akan datang. Saran dan usulan para pembaca dapat dilayangkan ke alamat email penulis
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 3/186
3
Penulis panjatkan puja-puji syukur kehadirat Allah SWT, yang telah melimpahkan
rahmat dan hidayah-Nya sehingga penulis dapat menyelesaikan penulisan buku ini. Buku
special penulis persembahkan untuk “Si Kecil ,sibuah hati” Syifa Afrah Syafira, yang baru
berumur 5 bulan.
Sebulan Sebelum Bulan Kelahiran Ku,
Junindar, MVP VB.NET
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 4/186
4
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 5/186
5
Biografi Penulis.
Junindar Lahir di Tanjung Pinang, 21 Juni 1982. Menyelesaikan Program
S1 pada jurusan Teknik Informatika di Sekolah Tinggi Sains dan
Teknologi Indonesia (ST-INTEN-Bandung). Junindar mendapatkan
Microsoft MVP VB pertanggal 1 oktober 2009. Penulis merupakan Ketua
Microsoft User Group Indonesia Regional Batam (MUGI – Batam).
Senang mengutak-atik computer yang berkaitan dengan bahasa
pemrograman. Keahlian, sedikit mengerti beberapa pemrograman seperti :
VB.Net, LINQ, VBA. Database : Access dan SQL Server 00/05.
Simulation / Modeling Packages: Visio Enterprise, Rational Rose danPower Designer. Dan senang bermain gitar, karena untuk bisa menjadi
pemain gitar dan seorang programmer sama-sama membutuhkan seni.
Pada saat ini bekerja di salah satu Perusahaan Swasta di BATAM sebagai
Software Development. Mempunyai moto hidup : “Jauh lebih baik
menjadi Orang Bodoh yang giat belajar, dari pada orang Pintar yang
tidak pernah mengimplementasikan ilmunya”.
Kritik dan saran kirim ke : [email protected]
http://junindar.blogspot.com
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 6/186
6
Ketika anak Adam meninggal, terputuslah amalannya kecuali dari tiga perkara :
Shadaqah jariyah, ilmu yang bermanfaat bagi orang sesudahnya dan anak
shalih yang mendo'akannya.
Semoga ini menjadi Ilmu yang bermanfaat. Amin
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 7/186
7
DAFTAR ISI
Halaman
KATA PENGANTAR .............................................................................................................1
TENTANG PENULIS ............................................................................................................3
DAFTAR ISI............................................................................................................................5
BAB I. MS ACCESS 2010
1.1 Fitur – Fitur Ms 2010 .............................................................................................7
1.2 Membuat Database dan Table ................................................................................16
1.3 Membuat Query ......................................................................................................20
BAB II. VISUAL STUDIO & VISUAL BASIC 2010
2.1 Visual Studio 2010 IDE .........................................................................................23
2.2 Fitur – Fitur Baru pada VS 2010 ............................................................................24
2.3 Fitur – Fitur Baru pada Visual Basic 10 .................................................................28
2.4 Membuat Project Baru ............................................................................................37
2.5 Menambah Control Pada Form ..............................................................................40
BAB III. ANALISIS PROGRAM
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 8/186
8
3.1 Analisa Proses………………………………………………………………….....45
3.2 Analisa Pengguna....................................................................................................45
BAB IV. PEMBUATAN APLIKASI
4.1 Membuat Database..................................................................................................47
4.2 Bekerja dengan VB 10 (Membuat Management User)...........................................53
4.3 Membuat Form Group ............................................................................................104
4.4 Membuat Form Genre .............................................................................................118
4.5 Membuat Form Customer .......................................................................................125
4.6 Membuat Form DVD ..............................................................................................138
4.7 Membuat Form Rental DVD ..................................................................................157
4.8 Membuat Form Return DVD ..................................................................................173
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 9/186
9
BAB I
MS ACCESS 2010
Pada bab ini akan dijelaskan tentang fitur-fitur baru pada Ms Access 2010, dan cara pengunaan
dasar pada Ms Access 2010, seperti membuat table, query maupun relationships.
Sebelum kita masuk ke penjelasan penggunaan MS Access 2010, terlebih dahulu kita membahas
tentang Ms Office 2010 pada umumnya. Untuk Ms Office 2010 ini terdapat 7 versi yang tersedia
seperti dibawah.
Office Professional Plus 2010
Office Professional 2010
Office Standard 2010
Office Home and Business 2010
Office Home and Student 2010
Office Professional Academic 2010
Office Starter 2010
Ms Office 2010 dapat berjalan pada office 2007, dan untuk menginstall Ms Office 2010 di
butuhkan system requirements sebagai berikut :
Processor 500 MHZ atau lebih
RAM 256 MB atau lebih
Hard disk 2 GB
CD atau DVD drive
Display 1024 x 768 atau lebih
OS : Windows Xp SP3, Windows Vista SP1 (32 atau 64 bit), Windows 7 (32 atau 64
bit), Windows Server 2003 R2 dengan SP2 (32 atau 64 bit) dan Windows Server 2008dengan SP1 (32 atau 64 bit)
1. 1 Fitur - Fitur Ms 2010
Sebelum kita menggunakan suatu produk, kita biasanya terlebih dahulu kita selalu
mencari tau bagaimana kelebihan produk baru ini di banding dengan produk sebelumnya.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 10/186
10
Oleh karena disini penulis akan menjelelaskan beberapa fitur-fitur terbaru untuk Ms
Access 2010.
Gambar 1.1
Quick Start Fields
Pada versi sebelumnya untuk membuat field seperti berikut (Address, City, State,
Zip dan Country) kita melakukan nya satu persatu. Tapi dengan Ms Access 2010
ini kita cukup hanya sekali klik, yaitu dengan menggunakan Quick Start. Cara nya
buka table yang ingin ditambahkan field nya lalu pada Table Tool Fields Tab klik
More Fields pada Add & Delete Grop. Lalu Scroll ke bawah dan pada Quick Start
pilih Address.
Ribbon Contextual tabs
Record Navigation Database searchView Control
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 11/186
11
Gambar 1.2
Gambar 1.3
Terdapat beberapa field didalam Quick start, dan kita dapat mengganti options
pada field. Sebagai contoh, jika kita memilih Payment, maka secara otomatis akan
terdapat beberapa pilihan (Cahs, Credit Card, Check dan In Kind) kita dapat
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 12/186
12
mengubah pilihan ini, dengan cara klik kanan pada field, lalu pilih Edit List Item,
maka akan muncul jendela seperti dibawah. Lalu ganti sesuai yang dinginkan .
Gambar 1.4
Menu dan Ribbon
Untuk fitur ini terdapat pada aplikasi Ms Office lain nya. Seperti kita ketahui pada
Ms Access 2007 terdapat “Office Button” pada pojok kiri atas, dan fitur ini telah
dihilangkan pada ms Access 2010. Pada Ms Access 2010 terdapat menu “File”
sebagai ganti nya. Dan pada Menu File terdapat beberapa item seperti Info,
Recent, New dan lainnya.
Gambar 1.5
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 13/186
13
Application Part
Untuk menggunakan application part, click Create Tab dan klik Application Part
maka list dari application part akan tampil seperti dibawah. Lalu pilih application
part yang dinginkan.
Gambar 1.6
Office ThemesUntuk Ms Access 2010 ini ada fitur yang memudahkan kita untuk mendesign
form atau report dengan sekali klik. Dimana kita dapat memilih theme yang kita
suka. Theme ini sudah mengatur dari warna dan font pada form maupun report.
Klik Form/Report yang mau diubah, lalu pada Contextual > Design pilih themes
pada Themes group. Seperti gambar dibawah.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 14/186
14
Gambar 1.7
Calculate Fields
Pada fitur ini kita bisa membuat sebuah field uang otomatis mengkalkulasi antara
field. Seperti contoh kita memilki field A yang bernilai 2 dan Field B bernilai 5,
lalu secara otomatis kita ingin membuat sebuah field untuk menampung jumlah
dari Field A dan B, dengan menggunaka fitur ini kita dapat mengkalkulasi 2 field
tersebut. Untuk penggunaannya, buka table yang di inginkan, lalu pada
Contextual Tools > Fields, pilih More Fields pada Add & Delete Group. Dan klik
Calculate Fields dan pilih type dari field yang dinginkan.
Gambar 1.8
Lalu akan tampil Expression Builder seperti dibawah, masukkan formula untuk
hasil dari expression value nya.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 15/186
15
Gambar 1.9
Data Bars dan Conditional Formating
Data Bars membantu kita dalam membaca sebuah laporan, seperti melakukan
perbandingan data, kadang tidak setiap orang mengerti maksud dari laporan
tersebut. Dengan adanya data bars membatu secara visualisasi.. Fitur ini sekarang
sudah tersedia pada Ms Access 2010.
Gambar 1.10
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 16/186
16
Buka Report yang dinginkan, Report Layout Tools > Format, lalu pilih
Conditional Formatting. Maka akan muncul tampilan seperti dibawah. Pilih Field
yang dinginkan pada Show Formatting rules for :
Gambar 1.11
Pilih New Rule, pada Select a rule type, pilih compare to other records. Dan ganti
warna dari Bar, dan klik OK.
Gambar 1.12
Navigation Forms
Sesuai dengan namanya navigation forms, fitur ini memudahkan kita dalam
membuat navigasi dari form/report, hanya dengan menarik form kedalam
Navigation Forms. Navigation Forms berfungsi untuk memudahkan dalam
mencari form atau Report yang dinginkan. Untuk membuat Navigation Forms
ikuti langkah-langkah sebagai berikut. Pada Tab Create, lalu klik Navigation
Forms pada group forms. Maka akan muncul layout dari Navigation forms.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 17/186
17
Gambar 1.13
Pilih layout yang dinginkan. Drag dan Drop form atau report kedalam Navigation
Forms.
Gambar 1.14
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 18/186
18
Macro
Untuk Ms Access 2010 ini dalam penggunaan macro menjadi lebih mudah.
Dimana dapat dilakukan dengan Drag dan Drop saja.
Gambar 1.15
1. 2 Membuat Database dan Table
Penulis bersumsi bahwa tidak semua pembaca sudah bisa atau pernah menggunakan Ms
Access. Oleh karena itu pada bab ini juga penulis menjelaskan bagaimana cara membuat
Database dan Table, yang nanti nya pada bab kedepan penulis tidak menjelaskan secara
detail tentang membuat database dan table kembali.
Pada Start > All Programs > Ms Office > Ms Access 2010, maka akan muncul tampilan
seperti dibawah.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 19/186
19
Gambar 1.16
Lalu pilih Blank database, kemudian ganti nama database dan browse dimana file akan
disimpan. Kemudian teka button Create. Dan tampilan dari Ms Access pun akan berganti
menjadi seperti gambar dibawah. Dengan default Table1.
Gambar 1.17
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 20/186
20
Dengan melakukan langkah-langkah dibawah maka kita telah memiliki sebuah database.
Langkah selanjutnya adalah membuat table.
Klik Tab Create, lalu klik Table pada Tables group. Lalu Contextual Table Tools >
Fields, klik View pada Views Group dan pilih Design View. Maka akan muncul dialog
Save As, ketikkan nama table yang dinginkan.
Gambar 1.18
Gambar 1.19
Setelah menekan button OK, maka kita akan masuk pada tampilan Design untuk Table,
seperti gambar dibawah.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 21/186
21
Gambar 1.20
Keterangan :
1. Field Name : Merupakan tempat menambah menghapus dan mengganti Nama Field
dai table.
2. DataType : Tempat untuk mengganti Tipe Data dari Field.
3. Description : Tempat untuk mendeskripsikan field
4. General : Merupakan Properties dari field
Disinilah merupakan tempat untuk mengganti properties seperti, field size, format,
Input Mask dan lain-lain.
Lalu tekan button Save atau Ctrl + Save untuk menyimpan hasil dari perubahan table.
1 2 3
4
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 22/186
22
Gambar 1.21
1. 3 Membuat Query
Setelah selesai dengan membuat table, kita lanjutkan dengan membuat query, mungkin
masih banyak pembaca tidak mengetahui dari fungsi query. Query dapat berfungsi untuk
menampilkan data dari 1 table atau lebih, atau untuk proses insert, delete maupun update,
yang bisa diakses diluar Ms Access 2010, seperti Visual Basic 10.
Untuk membuat Query (Select table) ikuti langkah-langkah seperti berikut : Klik Tab
Create, selanjutnya klik Query Design pada Queries group.
Gambar 1.22
Selanjutnya akan tampil jendela Show Table, pilih table yang ingin di tampilkan lalu
tekan button “Add”, lalu klik button “Close” untuk menutup tampilan show table. Lalu
klik ganda field yang ingin ditampilkan, seperti gambar dibawah.
Save
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 23/186
23
Gambar 1.23
Untuk menampilkan hasil dari query pada Query Design Tools, klik View pada Result
Group dan pilih DatasheetView
Gambar 1.24
Gambar 1.25
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 24/186
24
SELECT t_cust.refer_cust, t_cust.first_name, t_cust.last_name, t_cust.telp,t_cust.email
FROM t_cust WHERE (((t_cust.refer_cust)=[@refer_cust]));
Untuk melihat sintaks SQL nya pilih SQL View. Kita dapat memodifikasi sintaks SQL
seperti dibawah ini, contoh jika kita ingin menampilkan dengan menggunakan criteria
(parameter).
Lalu pada View pilih DatasheetView, maka akan tampil dialog seperti dibawah.
Gambar 1.26
Untuk kedepan penulis hanya memberikan sintaks dari SQL pada setiap query tanpa
menjelaskan secara detail pembuatanya. Pembaca dapat copy paste sintaks SQL dan
modifikasi pada jendela SQL View.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 25/186
25
BAB II
VISUAL STUDIO & VISUAL BASIC 2010
Pada bab ini akan di jelaskan dasar-dasar Visual Studio dan Visual Basic 2010, yang
dimana akan membantu pembaca untuk membuat aplikasi pada bab berikut nya.
2. 1 Visual Studio 2010 IDE
Untuk membuat aplikasi sebenarnya kita tidak harus menggunakan Visual Studio 2010, kita
dapat menuliskan semua code dengan menggunakan text editor seperti notepad. Tetapi
dengan Visual Studio 2010 IDE akan memudahkan kita dalam membuat aplikasi karena
didukung dengan fitur-fitur yang memudahkan seorang programmer.
Untuk Visual Studio 2010 terdapat 5 versi yang tersedia :
Express
Professional
Professional with MSDN
Premium with MSDN
Ultimate with MSDN
Gambar 2.1
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 26/186
26
2. 2 Fitur-Fitur Baru pada VS 2010
Berikut beberapa penjelasan tentang improvement yang ada pada VS 2010.
Multi windows
Pada fitur ini kita dapat menarik windows keluar dari IDE dengan cara Ctrl + Klik
ganda.
Gambar 2.2
Multi targeting
Sebenarnya fitur ini sudah ada pada Visual Studio versi sebelumnya, Cuma yang
membedakan dengan VS 2010, VS 2010 akan menampilkan ToolBox dan properties
sesuai dengan .net framework yang dipilih.
Gambar 2.3
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 27/186
27
Add References
Pada Visual Studio versi sebelumnya jika kita melakukan Add References pada project
itu membutuhkan waktu yang cukup “mengganggu”, untuk versi 2010 ini waktu yang
dibutukan sangat cepat, dan focus pada jendela Add References pada tab Projects.
Gambar 2.4
Zoom
Fungsi ini sangat membantu sekali pada saat kita di code editor. Kita dapat memperbesar
dan memperkecil pada Code Editor dengan menekan Ctrl + Mouse Scroll.
Gambar 2.4
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 28/186
28
Navigate To
Biasanya pada saat melakukan pemograman sering sekali kita melakukan pencarian
kata-kata, dan untuk VS versi sebelumnya kita menggunakan fungsi search. Pada versi
2010 ini kita dapat menggunakan fungsi Navigate To dengan cara menekan Ctrl + ,
(koma) atau Edit > Navigate To. Dengan mengetikkan kata yang dicari maka secara
otomatis pada Result Found akan memfilter kata yang dicari, dan cukup meng-klik pada
list maka secara otomatis akan menuju ke lokasi.
Gambar 2.5
Generate Sequence Diagram.
Fungsi ini hanya bisa dilakukan pada Versi Premium dan Ultimate. Fungsi ini adalah
untuk membuat diagram pada method. Dengan cara klik kanan pada function dan pilih
“Generate Sequence Diagram”.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 29/186
29
Gambar 2.6
Generate From Usage
Pada fitur ini kita dapat menggunakan Class dan member sebelum kita membuatnya.
Seperti kita ketahui jika suatu class belum dibuat maka tidak bisa kita melakukan
deklarasi terhadap class tersebut. Untuk VS 2010 kita dapat menggenerate Class tersebut
dengan cara. Tekan Ctrl + . (titik) pada error list, maka akan tampil tooltip seperti
dibawah.
Gambar 2.7
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 30/186
30
Lalu pilih Generate New Type untuk bisa memodifikasi class yang dinginkan.
Gambar 2.8
2. 3 Fitur – fitur baru pada Visual Basic 10
Untuk fitur-fitur baru ini di ambil dari blog Erick Kurniawan, MVP VB
(http://mugi.or.id/blogs/erick)
Collection Initializer
Collection Initializer digunakan untuk menginisialisasi object collection dalam sebuah
baris kode saja, sehingga mempermudah penulisan kode.
Pada VB9 untuk menginisialisasi object Collection anda harus menuliskan kode:
1: Dim objNama As New List(Of String)
2: objNama.Add("Erick")3: objNama.Add("Wely")
4: objNama.Add("Lutfie")
5: objNama.Add("Ridi")
6: 7: For Each nama In objNama
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 31/186
31
8: Console.WriteLine(nama)
9: Next
Pada VB10 dengan menggunakan Collection Initializer anda dapat menggunakan
keyword „from‟ untuk mempersingkat penulisan kode diatas.
1: Dim objNama As New List(Of String) From {"erick", "wely", "lutfie", "ridi"}
2: For Each nama In objNama
3: Console.WriteLine(nama)4: Next
Anda juga dapat menggunakannya untuk object Dictionary
1: Dim dictMahasiswa As New Dictionary(Of String, String) From {2: {"23080008", "erick"},
3: {"23080009", "budi"},
4: {"23080010", "anton"}}
5: For Each mhs In dictMahasiswa6: Console.WriteLine("Nim :" & mhs.Key & "Nama :" & mhs.Value)
7: Next
Jika anda ingin menginisialisasi list of class maka anda dapat menggunakan extension
method untuk mengoverride method „add‟ yang ada pada object collection.
1: Imports System.Runtime.CompilerServices
2: Module Module1
3: 'menggunakan extension method 4: <Extension()>
5: Sub Add(ByVal lstMhs As List(Of Mahasiswa),6: ByVal nim As String,7: ByVal nama As String,
8: ByVal ipk As Double)
9: lstMhs.Add( New Mahasiswa With {.Nim = nim, .Nama = nama, .IPK = ipk})
10: End Sub 11:
12: Sub Main()
13: Dim list As New List(Of Mahasiswa) From {
14: {"23080008", "Erick Kurniawan", 3.4},15: {"22080009", "Budi Anduk", 3.3}
16: }17: 18: For Each mhs In list
19: Console.WriteLine("Nim :" & mhs.Nim & " Nama :" & mhs.Nama & " Ipk
:" & mhs.IPK)
20: Next 21: End Sub
22:
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 32/186
32
23: End Module
Array Literals
ArrayLiteral memberi kemudahan kepada kita untuk memberi nilai ke object array
secara langsung, compiler akan secara otomatis meng-infers tipe datanya.
1: Dim arr1 = {1, 2, 4, 5, 6} 'infers ke tipe integer
2: Dim arr2 = {1, 2.5, 3.5, 5} 'infers ke tipe double
3: Dim arr3 = {"erick", "budi"} 'infers ke tipe string 4: Dim arr4 = {1, "erick"} 'infers ke tipe object (dengan catatan Option Strict On)
5:
6: 'untuk array multidimensi
7: Dim matrix1 = {{1, 32, 12}, {23, 45, 67}} 'infers ke tipe int(,)
Implicit Line Continuation
Pada bahasa VB kita biasanya menggunakan underscore untuk memisahkan satu baris
logic code menjadi dua baris code atau lebih. Underscore mengindikasikan bahwa code
yang dipisahkan menjadi beberapa baris tersebut sebenarnya masih satu logic code.
Pada VB10 compiler VB akan menambahkan underscore secaraimplicit jadi anda tidak
perlu menuliskannya. Namun pada beberapa kasus tertentu anda masih perlu
menggunakan underscore. Dengan menggunakan implicit line continuation maka
developer tidak perlu lagi menuliskan underscore pada sebagain besar baris code yang
ditulis (ini sangat membantu terutama ketika anda menggunakan LINQ).
Compiler VB akan secara implicit menggunakan line continuation pada kodisi-kondisi
berikut:
Setelah Attribute
Setelah karakter koma (,)
Setelah karakter dot (.)
Setelah binary operator
Setelah LINQ Query Clause
Setelah karakter (, {, or <%=
Sebelum karakter ), }, or %>
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 33/186
33
Daftar karakter yang mendukung implicit line continuation dapat anda lihat pada table
berikut:
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 34/186
34
Gambar 2.9
Contoh penggunaan implicit line continuation pada VB10:
Gambar 2.10
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 35/186
35
Auto-implemented Properties
Fitur ini sebenarnya telah dimiliki oleh C# sejak versi 3.0, pada VB fitur ini baru
ditambahkan pada VB10.
Pada VB9 untuk membuat property anda harus menuliskan kode berikut:
1: Public Class Mahasiswa
2: Private _nim As String
3: Public Property Nim() As String
4: Get
5: Return _nim6: End Get
7: Set(ByVal value As String)
8: _nim = value
9: End Set10: End Property
11:
12: Private _nama As String13: Public Property Nama() As String
14: Get
15: Return _nama16: End Get
17: Set(ByVal value As String)
18: _nama = value
19: End Set
20: End Property21: End Class
dengan menggunakan auto-implemented properties maka anda dapat menuliskan:
1: Public Class Mahasiswa
2: Public Property Nim As String
3: Public Property Nama As String
4: End Class
maka secara otomatis compiler akan menggenerate field dengan nama yang sama
dengan property tapi dengan ditambahkan underscore didepannya, property getter dan
setter juga akan digenerate otomatis.anda juga dapat menginisialisasi auto-implemented
properties yang anda buat, contohnya:
1: Public Class Mahasiswa
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 36/186
36
2: Property Nim As String = "23082321"
3: Property Nama As String = "Erick Kurniawan"
4: Property Angkatan As New List(Of Integer) From {12, 34, 56}
5: Property Ambil As New Matakuliah With {.Kode = "IM2043", .Nama = "Web
Database"}6: End Class
kemudian pada main class cara mengaksesnya:
1: Sub Main()
2: Dim objMhs As New Mahasiswa
3: Console.WriteLine(objMhs.Nim & " " & objMhs.Nama)4: For Each ang In objMhs.Angkatan
5: Console.WriteLine(ang)
6: Next7: Console.WriteLine(objMhs.Ambil.Kode & " " & objMhs.Ambil.Nama)
8: End Sub
Multiline Lambdas
Pada blog series kali ini saya ingin mengeksplorasi fitur-fitur baru dari VB10 (VB10
akan dirilis bersama dengan VS2010 dan .NET 4.0). Fitur yang akan kita bahas kali ini
adalah Multiline Lambdas, sebenarnya fitur ini sudah disupport di C# 3.0, tapi VB baru
menambahkan fitur ini pada VB10.
Pada VB10 anda dapat menggunakan Multiline Lambdas sebagai berikut:
1: Dim bil() As Integer = {1, 2, 3, 4, 5, 6, 7}
2: bil = Array.FindAll(bil, Function(n)3: Console.WriteLine("Array ke-" & n)
4: If n Mod 2 = 0 Then
5: Return n
6: End If 7: End Function)
8: For Each num In bil
9: Console.WriteLine(num)
10: Next
outputnya :
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 37/186
37
Gambar 2.11
Sama seperti Lambda Expression pada VB9 maka parameter dari Lambda tersebut akan
diinfer secara otomatis oleh compiler (pada contoh diatas n akan diinfer menjadi tipe
integer).
Dengan menggunakan Multiline Lambda anda dapat membuat anonymous delegate
dengan mudah contohnya:
1: Dim cthDelegate = Function(n As Integer )
2: Dim count = 03: For i = 1 To n
4: If n Mod i = 0 Then
5: count += 16: End If
7: Next
8: If count = 2 Then 9: Return "Bilangan Prima" 10: Else
11: Return "Bukan Bilangan Prima"
12: End If
13: End Function 14:
15: Console.WriteLine(cthDelegate(17))
outputnya :
Gambar 2.12
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 38/186
38
Jika anda cermati dari kode diatas maka nilai kembalian dari function tersebut adalah
tipe “String” (compiler juga secara otomatis akan meng-infer tipenya). Anda juga dapat
secara eksplisit menentukan tipe kembalian dari function diatas sehingga compiler tidak
akan meng-infer tipenya secara otomatis.
1: Dim cthDelegate = Function(n As Integer ) as String
2: Dim count = 0
3: For i = 1 To n4: If n Mod i = 0 Then
5: count += 1
6: End If
7: Next 8: If count = 2 Then
9: Return "Bilangan Prima"
10: Else
11: Return "Bukan Bilangan Prima" 12: End If
13: End Function
Sub Lambdas
Selain menggunakan “Function” keyword untuk membuat multiline lambda yang
mengembalikan nilai, anda juga dapat menggunakan multiline lambda yang tidak
mengembalikan nilai menggunakan “sub” keyword .
1: Dim arrNama() As String = {"erick", "ricky", "joni"}
2: Array.ForEach(arrNama, Sub(n As String)
3: Dim balik = "" 4: For i = n.Length - 1 To 0 Step -1
5: balik &= n(i)
6: Next
7: Console.WriteLine(balik)8: End Sub)
outputnya:
Gambar 2.13
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 39/186
39
Single line Sub Lambdas
Pada VB9 anda hanya dapat menggunakan single expression lambda jika ada return
valuenya, misal:
1: Dim bil() As Integer = {1, 3, 4, 5, 8, 10}
2: Dim query = bil.Where(Function(n) n Mod 2 = 0)
3: For Each num In query4: Console.WriteLine(num)
5: Next
Akan error jika anda tuliskan kode berikut pada VB9:
1: Dim bil() As Integer = {1, 3, 4, 5, 8, 10}
2: Array.ForEach(bil, Sub(n) Console.WriteLine(n))
Pada VB10, anda dapat menggunakan keyword “sub” untuk membuat single expression
yang tidak mengembalikan nilai
1: Dim bil() As Integer = {1, 3, 4, 5, 8, 10}
2: Array.ForEach(bil, Sub(n) Console.WriteLine(If (n Mod 2 = 0, "Genap :" & n,
"Ganjil :" & n)))
2. 4 Membuat Project Baru
Klik New Project pada Toolbar atau File > New Project
Pada New Project Dialog, pilih Visual Basic pada Installed Templates kemudian
pilih Windows pada node Visual Basic, lalu pada Template Pane sebelah kiri pilih
Windows Form Application template. Dan terakhir ketikkan “Belajar VB”, pada
textbox Name, dan klik OK.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 40/186
40
Gambar 2.14
Gambar 2.15
Ubah nama form, dengan cara klik Form1 pada Solution Explorer (gambar 2.16),
lalu pada properties ganti “BelajarVB.vb” (gambar 2.17) kemudian tekan enter atau
klik property yang lain untuk melihat perubahannya.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 41/186
41
Gambar 2.16
Gambar 2.17
Sekarang kita akan mengubah title (text property) dari form. Klik Form1 dan ubah
properties Text menjadi “Selamat Belajar”.
Gambar 2.18
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 42/186
42
2. 5 Menambah Control Pada Form
ToolBox
ToolBox merupakan tempat dimana terdapat control-control yang digunakan untuk
mendesign form. Untuk menampilkan Toolbox cuku dengan menekan Ctrl + Alt +
X.
Gambar 2.19
Kita dapat menambahkan control pada ToolBox dengan cara klik kanan pada
ToolBox > Choose Item.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 43/186
43
Gambar 2.20
Tambahkan control TextBox pada form dengan cara, Klik ganda Control TextBox
pada Toolbox maka secara otomatis textbox akan tampil pada form. Atau dengan
Drag dan Drop control dari textbox ke form. Lakukan hal sama untuk control label
dan 2 Button. Ubah properties Name untuk TextBox menjadi “txtNama”, untuk label
ubah properties Text menjadi “Masukkan Nama anda” dan untuk button ubah
properties Name menjadi “btnOK”, dan text menjadi “OK”, lalu susun seperti
gambar dibawah.
Gambar 2.21
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 44/186
44
Sekarang kita akan membuat event handler, untuk membuat event handler ada
beberapa cara yang pertama, pada jendela properties pilih icon “event” lalu akan
tampil event handler untuk control tersebut.
Gambar 2.22
Atau melalui jendela code editor, pada combobox sebelah kiri pilih control yang
dinginkan lalu pada combobox sebelah kanan pilih event handler.
Gambar 2.23
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 45/186
45
Private Sub btnOK_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles
btnOK.Click'Ini Cuma Comment MessageBox.Show("Hiii, " & txtNama.Text &" Selamat mempelajari Visual Basic 10")
End Sub
Gambar 2.24
Pada bab setelah ini penulis hanya menyebutkan nama event handler nya saja, tanpa
menjelaskan cara pembuatan nya. Sebagai contoh penulis menyebutkan event
handler txtNama_KeyUp, ini dimaksudkan control txtNama dengan event Handler
KeyUp.
Atau untuk membuat event handler bisa di lakukan dengan klik ganda, seperti
contoh untuk button, jika di klik ganda maka akan terbentuk event hanlder Click.
Buat event handler btnOk_Click (klik ganda button OK). Lalu ketikkan sintaks ini
didalam event handler btnOk_Click
Simpan project dengan menekan Ctrl + Shift + S, maka Save Project Dialog akan
muncul.
Gambar 2.25
Jalankan program (tekan F5), lalu masukkan nama anda dan klik button OK.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 46/186
46
Gambar 2.26
Gambar 2.27
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 47/186
47
BAB III
ANALISA PROGRAM
Pada bab ini akan dibahas bagaimana menganalisa proses dalam pembuatan suatu aplikasi.
Aplikasi yang akan kita buat adalah “Aplikasi Rental DVD” dimana aplikasi ini berguna untuk
memudahkan dalam mengolah data barang (DVD Rental) dan transaksi rental pada suatu rental
DVD.
3.1. Analisa Proses
Sebelum membuat suatu aplikasi, kita membutuhkan suatu tahap untuk menganalisa suatu
proses, apa saja yang di butuhkan oleh aplikasi. Untuk aplikasi yang akan kita bua,t proses
yang paling menonjol adalah proses Rental DVD dan Return DVD, dimana proses ini
merupakan proses utama pada aplikasi yang akan kita buat. Dari proses ini tersebut, kita
bisa memperluas proses-proses apa saja yang nantinya akan kita gunakan pada program ini.
Secara umum dapat dikategorikan sebagai berikut :
a. Rental
Proses ini menangani tentang peminjaman DVD yang dilakukan oleh customer. Jika
DVD yang di pinjam akan merubah status DVD menjadi Out.
b. Return
Proses ini merupakan tahap pengembalian DVD oleh customer. Jika pengembalian
melewati batas yang telah di tentukan maka akan di kenakan denda. Dan juga merubah
status DVD menjadi In.
3.2. Analisa Pengguna
Setelah selesai menganalisa proses, selanjutnya adalah melakukan analisa pengguna.
Analisa ini berfungsi untuk mengetahui ada berapa pengguna yang akan menggunakan
aplikasi yang akan kita buat. Lalu kita berikan hak akses terhadap masing-masing pengguna.
Pengguna pada aplikasi ini sebagai berikut :
1. Administrator
Pengguna ini memiliki hak akses yang paling tinggi (dapat mengakses seluruh fasilitas
pada aplikasi)
2. Staff
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 48/186
48
Staff merupakan pengguna yang memiliki hak akses dibawah admin, hanya manajamen
user saja yang tidak bias dilakukan oleh pengguna ini.
3. Kasir
Kasir merupakan pengguna yang paling sering menggunakan aplikasi ini, yaitu proses
Rental dan Return DVD.
4. User
Pengguna yang memilki hak akses paling kecil. Hanya dapat melihat daftar DVD.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 49/186
49
BAB IV
PEMBUATAN APLIKASI
Setelah selesai menganalisa, kita masuk ke tahap pembuatan aplikasi. Pada bab ini akan
dibahas bagaimana membuat aplikasi dengan menggunakan VB 10 dan MS Access 2010.
Pada tahap ini kita akan melihat bagaimana mudah nya membangun suatu aplikasi dengan
dua program tersebut.
4.1.Membuat Database
Sebelum masuk ke pemograman (Coding) pertama-tama kita buat terlebih dahulu database
untuk aplikasi ini. Ikuti langkah-langkah dibawah ini untuk membuat database dan table-
tabel yang akan di butuhkan pada aplikasi.
a. Buka MS Access 2010
Gambar 4.1
b. Ketik DVD.accdb pada File Name , dan untuk sementara simpan terlebih dahulu ke My
documents. Lalu klik “Create”. Untuk mengubah lokasi penyimpanan klik gambar folder
dan pilih lokasi yang di inginkan.
c. Selanjutnya secara otomatis akan ada sebuah table dengan nama Table1, klik kanan table
tersebut dan klik Design, maka akan muncul form Save As dan ketikkan “T_Menu”
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 50/186
50
Gambar 4.2
d. Lalu ubah nama field pada table tersebut seperti gambar dibawah.
Field Name Data Type Field size Primary Key
MenuID Text 10 PK (*)
MenuName Text 25
MenuAction Text 25
Table ini merupakan representasi dari Menu pada aplikasi yang akan kita buat nantinya.
Field MenuID nantinya akan kita gunakan pada MenuStrip properties “Tag”. Sedangkan
MenuName digunakan pada Text untuk MenuStrip, selanjutnya untuk MenuAction
merupakan identitas apakah posisi Menu Item pada Header, Menu atau SubMenu. Lalu
masukkan data dibawah pada table T_Menu, untuk membuka table klik ganda pada table.
MenuID MenuName MenuActionM1 File Header
M1-01 Logout Menu
M1-02 Exit Menu
M2 Data Header
M2-01 DVD Menu
M2-01-01 Add SubMenu
M2-01-02 Edit SubMenu
M2-01-03 DVD List SubMenu
M2-02 Customer Menu
M2-02-01 Add SubMenuM2-02-02 Edit SubMenu
M2-02-03 Customer List SubMenu
M2-03 Group Menu
M2-04 Genre Menu
M3 Tools Header
M3-01 Rental Menu
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 51/186
51
M3-02 Return Menu
M4 Report Header
M4-01 Rental Menu
M4-02 Return Menu
M4-03 Rekap Menu
M5 Utility Header
M5-01 Users Menu
M5-01-01 Add SubMenu
M5-01-02 Edit SubMenu
M5-01-03 User List SubMenu
M5-02 Change Password Menu
M5-03 Form Access Menu
M6 Help Header
M6-01 About Menu
e. Selanjutnya buat table baru dengan nama T_Role, dengan field-field nya sebagai berikut
Field Name Data Type Field size Primary Key
RoleID Number Integer PK (*)
RoleName Text 50
Dan isikan data pada table T_Role seperti dibawah
RoleID RoleName
1 Admin
2 Staff
3 Kasir
4 User
Table ini berfungsi untuk memetakan hak akses pada pengguna
f. Tambahkan sebuah table lagi dengan nama T_RoleMenu, dengan format seperti dibawah.
Field Name Data Type Field size Primary Key
RoleID Number Integer PK (*)
MenuID Text 10 PK (*)
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 52/186
52
Untuk table ini merupakan gabungan antara table T_Menu dan T_Role dan berfungsi
untuk menampung hak akses setiap Role. Contoh nya user dengan Role Admin dapat
mengakses menu item Rental, Return, Customer data-data tersebut akan disimpan pada
table ini. Dan isikan data seperti dibawah.
RoleID MenuID
1 M1
1 M1-01
1 M1-02
1 M2
1 M2-01
1 M2-01-01
1 M2-01-02
1 M2-01-03
1 M2-02
1 M2-02-01
1 M2-02-02
1 M2-02-03
1 M2-03
1 M2-04
1 M3
1 M3-01
1 M3-02
1 M41 M4-01
1 M4-02
1 M4-03
1 M5
1 M5-01
1 M5-01-01
1 M5-01-02
1 M5-01-03
1 M5-02
1 M5-031 M6
1 M6-01
g. Dan tambahkan sebuah table dengan nama T_User dengan format seperti dibawah.
Field Name Data Type Field size Primary Key
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 53/186
53
UserName Text 15 PK (*)
Password Text 15 InputMask=Password
First_Name Text 50
Last_Name Text 50
RoleID Number Integer
Actived Yes/No
Untuk pertama kali isikan data user seperti dibawah :
Username : administrator
Password= password
First_Name : Admin
RoleID=1
Actived=Yes (True)
Selanjutnya adalah membuat relasi antar table, ikuti langkah-langkah seperti dibawah.
Pada jendela MS Access, Klik Tab “Database Tools” lalu klik “Relationships”
Gambar 4.3
1
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 54/186
54
Lalu pada jendela Relationships, klik kanan > “Show Table”, maka akan tampil jendela
Show Table, seperti dibawah. Klik Add untuk semua table didalam list.
Gambar 4.4
Gambar 4.5
Selanjutnya klik field “RoleID” pada table T_Role, dan drag ke field RoleID pada table
T_RoleMenu. Maka akan muncul jendela “Edit Relationships” seperti dibawah.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 55/186
55
Gambar 4.6
Klik checkbox “Enforce Rerential Integrity” lalu klik button “Create”, Lakukan hal sama pada field MenuID pada table T_Menu ke fied MenuID pada table T_RoleMenu. Lalu field
RoleID pada table T_Role ke field RoleID pada table T_User., sehingga kita memiliki
diagram relationships seperti dibawah.
Gambar 4.7
4.2. Bekerja dengan VB 10 (Management User)
Sekarang adalah waktunya yang paling ditunggu-tunggu oleh pembaca, yaitu bekerja
dengan VB 10. Untuk pertama kali kita buat terlebih dahulu project untuk aplikasi yang
kita buat, dengan cara Start > All programs > Microsoft Visual Studio 2010 > Microsoft
Visual Studi 2010.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 56/186
56
Gambar 4.8
Gambar 4.9
Klik File > New Project, maka akan muncul jendela New Project. Pada “Installed Templates”
> Visual Basic > Windows dan pilih “Windows Forms Application”. Lalu ubah Nama
project menjadi “DVD Rental”, klik button OK.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 57/186
57
Gambar 4.10
Gambar 4.11
Pada Solution Explorer, klik kanan “DVD Rental” > Add > New Item, maka akan tampil
jendela Add New Item, pilih “Splash Screen” dan ubah namanya menjadi “Startup.vb”
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 58/186
58
Gambar 4.12
Tambahkan control Timer dan ubah properties nya seperti dibawah.
Timer1
Name timerSplash
Lalu buka Form1 yang ada pada saat kita membuat project, dan ganti properties pada Form1
seperti dibawah.
Name F_Login
ShowInTaksbar False
Text Login
StartPosition CenterScreen
ControlBox False
FormBorderStyle FixedSingle
BackColor White
Serta tambahkan control 2 label, 2 textbox, 2 button lalu ubah properties control-control
tersebut seperti dibawah.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 59/186
59
Textbox1
Name txtUser
Textbox2
Name txtPassword
UseSystemPasswordChar True
Button1
Name btnLogin
Text Login
Button2
Name btnCancel
Text Cancel
Dan atur control-control diatas seperti gambar dibawah.
Gambar 4.13
Selanjutnya pada form Startup, tekan tombol F7 untuk menampilkan jendela Code. Lalu
ketikkan variable class seperti dibawah.
Pada form startup ini kita akan menggunakan fungsi Opacity pada form. Yaitu fungsi untuk
membuat form menjadi trasnparan. jika nilai nya 1 maka form akan tampil normal, oleh
Dim opacityRate As Double = 0.0
Dim maximizeRate As Boolean = True Dim minimizeRate As Boolean = False
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 60/186
60
Me.Opacity = 0.0timerSplash.Interval = 60timerSplash.Enabled = True timerSplash.Start()
karena itu dengan variable “opacityRate” kita akan menggunakan untuk memasukkan ni lai
opacity.
Lalu pada event handler Startup_Load ketikkan sintaks dibawah, yang berfungsi untuk
mengaktifkan timer, dan memasukkan nilai Opacity menjadi 0 (Nol) atau hilang.
Serta mengisi nilai interval timer menjadi 60 (1 detik), lalu klik ganda control Timer dan
ketikan sintaks dibawah.
Maksud dari sintaks diatas adalah, nilai opacityRate akan bertambah 0.025 perdetiknya, dan
akan mengakibatkan form startup akan mulai kelihatan seiring dengan bertambahnya
If opacityRate >= 1.0 Then opacityRate = opacityRate + 1.0If opacityRate >= 20.0 Then
opacityRate = 0.99Me.Opacity = opacityRate
End If ElseIf maximizeRate Then
opacityRate = opacityRate + 0.025Me.Opacity = opacityRateIf opacityRate >= 1.0 Then
maximizeRate = False minimizeRate = True
End If ElseIf minimizeRate Then
opacityRate = opacityRate - 0.025If opacityRate < 0 Then
opacityRate = 0End If Me.Opacity = opacityRateIf Opacity <= 0.0 Then
minimizeRate = False maximizeRate = False
End If Else
timerSplash.Stop()timerSplash.Enabled = False timerSplash.Dispose()
Me.Visible = False Dim Login As New F_Login Login.Show()
End If
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 61/186
61
opacityrate. Jika nilai opacity sudah lebih besa dari 1 (form kembali normal), maka secara
perlahan (perdetik) nilai opacityrate akan dikurangi 0.025. dan jika nilai opacityrate sudah
kembali menjadi 0, maka form login akan tampil. Sebelum menjalankan program terlebih
dahulu kita ubah Startup dari project ini (form mana yang akan tampil terlebih dahulu). Klik
Project > DVD Rental Properties. Klik Application lalu pada Startup Form pilih StartUp.
Gambar 4.14
Sekarang jalankan program dengan menekan F5.
Gambar 4.15
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 62/186
62
Gambar 4.16
Setelah berhasil membuat form startup, maka selanjutnya adalah membuat login user.
Terlebih dahulu adalah dengan memindahkan file MS Access (DVD.accdb) kedalam project
(~>DVD Rental\DVD Rental\bin\Debug).
Lalu pada jendela project klik Project > DVD Rental properties, klik setting dan isikan data-
data berikut Name : DVDConnection, Type : Connection String, Scope : Application.
Dan untuk Value : Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=|DataDirectory|\dvd.accdb
Dan tambahkan sebuah form pada project dan ubah propertiesnya seperti dibawah.
Name F_Main
ShowInTaksbar True
Text Main Neu
StartPosition CenterScreen
FormBorderStyle FixedSingle
Lalu tambahkan control menuStrip , tambahkan menuItem dan ubah properties nya seperti
dibawah seperti dibawah.
Text Tag
&File M1
&Logout M1-01
E&xit M1-02
&Data M2
DVD M2-01
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 63/186
63
Add M2-01-01
Edit M2-01-02
DVD List M2-01-03
Customer M2-02
Add M2-02-01
Edit M2-02-02
Customer List M2-02-03
Group M2-03
Genre M2-04
&Tools M3
Rental M3-01
Return M3-02
&Report M4
Return M4-01
Rental M4-02
Rekap M4-03
&Utility M5
Users M5-01
Add M5-01-01
Edit M5-01-02
User List M5-01-03
Change Password M5-02
Form Access M5-03
&Help M6
About M6-01
Sehingga memilki susunan MenuItem seperti gambar dibawah.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 64/186
64
Gambar 4.17
Tambahkan control StatusStrip, lalu pada properties Items klik button (…) maka akan tampil
jendela ItemCollectionEditor. Pada combobox select item, pilih Statuslabel, lalu klik button
Add. Lakukan sebanyak 3 kali. Dan ubah properties Name StatusLabel menjadi ToolName,
ToolRole dan ToolTime. Lalu klik button OK.
Sebelumnya penulis akan menunjukkan design dari Form Utama (F_Main) ini, agar
memudahkan dalam pemberian ilustrasi untuk pengaturan control pada form.
Gambar 4.18
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 65/186
65
Tambahkan sebuah control SplitContainer pada form, dengan control ini form akan terbagi
menjadi bagian yaitu SplitContainer.Panel1 dan SplitContainer.Panel2. dan ubah properties
BorderStyle : FixedSingle dan dock : Fill. Tambah sebuah control panel, dan letakkan
kedalam SplitContainer.Panel1. Dan ubah properties panel tersebut, Name :
pnlNavigationBackground, Dock : Fill, BackColor : White. Lalu tambahkan sebuah Panel
kembali dan letakkan kedalam pnlNavigationBackground. Dan ubah propertiesnya. Name :
pnlCurrentScreen , Dock : Top, BackColor : HighLight dan Text : Transaction. Lalu
tambahkan sebuah panel dang anti propertiesnya, Name : pnlNavUsers, Dock : Bottom,
BackColor : HighLight Selanjutnya Tambahkan sebuah Treeview dan letakkan kedalam
pnlNavigationBackground. Ubah ptopertiesnya .Name : TvTransaction, Dock : Fill.
Sehingga kita memiliki design form seperti gambar dibawah.
Gambar 4.18
Selanjutnya kita akan mengatur pada SplitContainer.Panel2. Tambahkan panel dan letakkan
kedalam SplitContainer.Panel2. Dan ubah propertiesnya Name : pnlProjects, Dock : Fill dan
BackColor : white. Lalu tambah panel dan letakkan kedalam pnlProjects dengan properties
sebagai berikut Name : pnlProjectsTitle, Dock : Top, BackColor :HighLight dan Text : DVD
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 66/186
66
List. Dan tambahkan 1 Groupbox, 1 Label, 1TextBox dan 1 GridView letakkan pada
pnlProjects. Dan ubah propertiesnya seperti dibawah.
GroupBox1
Text Search criteria
Textbox1
Name txtSearch
Label1
Text Title
DataGridView1
Name DgView
Dan atur letaknya seperti pada gambar dibawah.
Gambar 4.19
Masih pada jendela F_Main tekan F8 untuk masuk jendela code, sebelumnya import
NameSpace OleDB dengan cara ketikkan sintaks berikut pada baris paling atas Class.
Imports System.Data.OleDb
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 67/186
67
Lalu ketikan sintaks berikut, yang berfungsi untuk membuat Node pada TreeView secara
otomatis, dimana MenuItem menjadi referensi nya. (Sintaks ini di ambil dari blog mas
Rully,MVP www.yulianmf.com)
#Region "PopulateTree" Private Sub AddMenuToTree(ByVal YourNodeTree As TreeNode, ByVal
YourToolStripMenuItem As ToolStripMenuItem)'//cek apakah toolstripmenuitem tsb mempunyai sub menuitem '//yang merupakan DropDownItem : If YourToolStripMenuItem.DropDownItems.Count > 0 Then
'//jika ada sub menu item, iterate : For i As Int32 = 0 To YourToolStripMenuItem.DropDownItems.Count - 1
'//jika sub menu itemnya bukan merupakan toolstripmenuitem (bisasaja
'//merupakan toolstripseparator) maka item tsb tdk ditambahkan ketreeview :
If Not (TypeOf YourToolStripMenuItem.DropDownItems(i) Is
ToolStripMenuItem) OrElse YourToolStripMenuItem.DropDownItems(i).Tag = "" Then ContinueFor
Dim currentItem As ToolStripMenuItem =YourToolStripMenuItem.DropDownItems(i)
Dim aNode As New TreeNode(Replace(currentItem.Text.ToString, "&",""))
aNode.Tag = currentItem.Tag.ToStringYourNodeTree.Nodes.Add(aNode)'//cek jika ada sub menu item lagi dengan method recursive AddMenuToTree(aNode, currentItem)
Next
End If End Sub
Private Sub PopulateToolStripMenuItem( ByVal YourMainMenuStrip As MenuStrip)'//iterate toolstripmenuitem yang ada di MainMenuStrip : For Each aItem As ToolStripMenuItem In YourMainMenuStrip.Items
If aItem.Visible = False Then Continue For '//buat node baru utk ditambahkan ke treeview node : Dim aNode As New TreeNode(Replace(aItem.Text.ToString, "&", ""))aNode.Tag = aItem.Tag.ToStringTvTransaction.Nodes.Add(aNode)'//tambahkan node baru ke treeview jika '//node tersebut memiliki node child (DropDownItem):
AddMenuToTree(aNode, aItem)Next TvTransaction.ExpandAll()TvTransaction.SelectedNode = TvTransaction.Nodes(0)
End Sub #End Region
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 68/186
68
Namespace EntityPublic Class Role
Private m_roleid As Int16
Public Property RoleID() As Int16 Get Return m_roleid
End Get
Set(ByVal value As Int16)If value.ToString = "" Then
Throw New Exception("Masukkan RoleID")End If m_roleid = value
End Set End Property
Public Property RoleName() As String
End Class End Namespace
Lalu pada event handler F_Main_Load, ketikkan sintaks berikut.
Selanjutnya sebelum masuk ke F_Login, terlebih dahulu adalah membuat beberapa Class yang
dibutuhkan. Pertama Tambahkan sebuah folder pada project dan ubah namanya menjadi Entity.
Dan tambahkan 2 buah class pada folder tersebut masing-masing Role.Vb dan Users.vb. buka
class Role dan ketikkan sintaks berikut.
Dan pada class Users ketikkan sintaks berikut :
Namespace Entity
Public Class Users
Private m_username As String Public Property Username() As String
Get
Return m_usernameEnd Get
Set(ByVal value As String)If value = "" Then
Throw New Exception("Masukkan username")End If m_username = value
End Set End Property
Try PopulateToolStripMenuItem(MenuStrip1)
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "DVD Rental")
End Try
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 69/186
69
Private m_password As String Public Property Password() As String
Get Return m_password
End Get
Set(ByVal value As String)If value = "" Then Throw New Exception("Masukkan Password")
End If m_password = value
End Set End Property
Private m_firstname As String Public Property First_Name() As String
Get Return m_firstname
End Get
Set(ByVal value As String)If value = "" Then
Throw New Exception("Masukkan First Name")End If m_firstname = value
End Set End Property
Public Property Last_Name() As String
Public Property Role As New Entity.Role
Public Property Actived() As Boolean
End Class End Namespace
Imports System.DataImports System.Data.OleDbImports System.Collections.GenericImports System.Runtime.CompilerServices
Sebagai catatan bahwa Class yang berada dalam folder entity merupakan representasi dari Table,
dan masuk kedalam NameSpace Entity. Tambahkan sebuah Folder dalam project dan ubah
namanya menjadi “AccessData”. Selanjutnya adalah tambahkan sebuah Module pada folder
AccessData dan ubah namanya menjadi DVDModule.vb, ketikkan sintaks berikut untuk
mengimport NameSpace yang dibutuhkan pada Module.
Lalu membuat Public Variable seperti dibawah.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 70/186
70
Dan buat Extension Method untuk Class User dan Role seperti dibawah.
Tambahkan Class pada folder AccessData, dan ganti namanya menjadi AccessUser. Pada Class
yang ada pada folder AccessData merupakan class yang menyimpan fungsi-fungsi seperti
Insert,Delete dan lain-lain. Class-class ini masuk kedalam NameSpace AccessData. Ketikkan
sintaks berikut yang digunakan untuk proses Login nantinya.
Public Operate, FormShow, UserName, Password, RoleID As String
<Extension()>Sub Add(ByVal UserList As List(Of Entity.Users), ByVal Username As String, ByVal
Password As String,ByVal First_Name As String, ByVal Last_Name As String,ByVal Actived As Boolean, ByVal RoleID As Int16, ByVal RoleName As
String)UserList.Add(New Entity.Users With {.Username = Username, .Password =
Password, .First_Name = First_Name,.Last_Name = Last_Name, .Actived =
Actived,.Role = New Entity.Role With {.RoleID =
RoleID, .RoleName = RoleName}})End Sub
<Extension()>Sub Add(ByVal RoleList As List(Of Entity.Role), ByVal RoleID As String, ByVal
RoleName As String)RoleList.Add(New Entity.Role With {.RoleID = RoleID, .RoleName = RoleName})
End Sub
Imports System.DataImports System.Data.OleDbNamespace AccessData
Public Class AccessUsePublic Function Login(ByVal username As String) As List(Of Entity.Users)
Dim User As New List(Of Entity.Users)()Try
Using connect As New OleDbConnection(My.Settings.DVDConnection)Using mycommand As OleDbCommand = New
OleDbCommand("usp_selectlogin", connect)mycommand.CommandType = CommandType.StoredProceduremycommand.Parameters.Add("@username", OleDbType.VarChar).Value
= usernameconnect.Open()
Using rdr As OleDbDataReader = mycommand.ExecuteReader
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 71/186
71
Selanjutnya buka MS Access (DVD.accdb) dan buat query dengan nama “usp_selectlogin”
dengan SQL sebagai berikut.
Buka F_Login, klik ganda button Cancel lalu ketikkan sintaks berikut. End
Jika user meng-klik button cancel ini makan aplikasi ini akan ditutup. Selanjutnya klik ganda
button OK, dan ketikkan sintaks berikut.
While rdr.ReadUser.Add(rdr("username").ToString(),
rdr("Password").ToString(),
rdr("First_Name").ToString(), rdr("Last_Name").ToString(),rdr("Actived"),
rdr("RoleID").ToString(),
rdr("RoleName").ToString())End While
End Using
End Using End Using
Catch sqlex As OleDbException Throw New Exception(sqlex.Message.ToString())
End Try Return User
End Function
End Class End Namespace
SELECT T_User.*, T_Role.RoleName
FROM T_Role INNER JOIN T_User ON T_Role.RoleID=T_User.RoleID
WHERE (((T_User.UserName)=[@username]));
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 72/186
72
Pada saat user melakukan login, maka aplikasi ini akan mengecek dengan cara melakukan
pencarian data user berdasarkan username yang dimasukkan. Lalu akan disimpan kedalam
Generic List of Class. Jika isi dari List ini kosong makan username salah, selanjutnya mengecek
password yang dimasukkan, apakah sama dengan hasil pencarian, jika tidak sama aka nada pesan
Try Dim AccessUser As New AccessData.AccessUser Dim user As New Entity.Users user.Username = txtUser.Textuser.Password = txtPassword.Text
Dim list As List(Of Entity.Users) = AccessUser.Login(txtUser.Text)'jika isi list kosong If list.Count = 0 Then
MsgBox("Username Salah", MsgBoxStyle.Information, "DVD Rental")txtUser.Focus()txtUser.SelectAll()Exit Sub
End If
UserName = list.First.UsernamePassword = list.First.PasswordIf txtPassword.Text <> Password Then
MsgBox("Password Salah", MsgBoxStyle.Information, "DVD Rental")txtPassword.Focus()txtPassword.SelectAll()Exit Sub
End If
If list.First.Actived = False Then MsgBox("User sudah tidak aktif", MsgBoxStyle.Information, "DVD
Rental")txtUser.Focus()txtUser.SelectAll()Exit Sub
End If RoleID = list.First.Role.RoleID
Password = list.First.Password
Me.Close()Me.Dispose()Dim f_utama As New F_Main f_utama.ToolName.Text = list.First.First_Name & If(list.First.Last_Name
= "", "", " " & list.First.Last_Name)f_utama.ToolRole.Text = list.First.Role.RoleNamef_utama.ToolTime.Text = Now.Datef_utama.Show()
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "DVD Rental")
End Try
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 73/186
73
error nya. Dan mengecek apakah user tersebut masih aktif atau tidak. Buat event handler
txtPassword_Keyup dan ketikkan sintaks berikut yang berfungsi jika user menekan Enter pada
text box Password makan proses pada button login akan di jalankan.
Pada F_Main buat event handler F_Main_Closing dan Menu Item File > Exit ketikkan End. Dan
pada Menu Item File > Logout ketikkan sintaks berikut, untuk menampilkan form login.
Jalankan Program dengan menekan F5 lalu login dengan username : administrator dan password
: password.
Gambar 4.20
Gambar 4.21
If e.KeyCode = Keys.Enter Then
btnLogin.PerformClick()End If
Me.Dispose()My.Forms.F_Login.Show()
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 74/186
74
Jika pembaca dengan benar mengikuti langkah-langkah diatas, maka akan mendapatkan hasil
seperti gambar diatas. Yaitu TreeView secara otomatis akan menggenerate Node sesuai dengan
MenuItem diatas.
Selanjutnya adalah membuat Form Access yang dimana berfungsi untuk memberi hak akses
suatu Role Menu apa saja yang bias di akses oleh role tersebut. Ikuti Langkah-langkah dibawah.
Buat Query pada DVD.accdb seperti berikut usp_SelectRole, usp_SelectMenuRole,
usp_DeleteRoleMenu dan usp_InsertRoleMenu. Dengan sintaks SQL sebagai berikut :
Buka Class AccessUser, kita akan membuat fungsi untuk mengahapus dan manambah data pada
table T_MenuRole, seperti dibawah.
SELECT T_Role.RoleID, T_Role.RoleName
FROM T_Role
ORDER BY T_Role.RoleID;
SELECT T_Menu.MenuID, T_Menu.MenuName, T_RoleMenu.RoleID
FROM T_Menu INNER JOIN T_RoleMenu ON T_Menu.MenuID = T_RoleMenu.MenuID
WHERE (((T_RoleMenu.RoleID)=[@RoleID]));
DELETE *
FROM T_RoleMenu
WHERE (((T_RoleMenu.RoleID)=[@RoleID]));
INSERT INTO T_RoleMenu ( RoleId, MenuID )
VALUES ([@RoleId], [MenuId]);
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 75/186
75
Public Function DeleteRoleMenu(ByVal MenuRole As Entity.MenuRole) As OleDbDataReader Try
Using connect As New OleDbConnection(My.Settings.DVDConnection)Using mycommand As OleDbCommand = New
OleDbCommand("usp_DeleteRoleMenu", connect)mycommand.CommandType = CommandType.StoredProcedure
Dim parameterRoleID As OleDbParameter = New OleDbParameter("@RoleID", OleDbType.Integer)
parameterRoleID.Value = MenuRole.Role.RoleIDWith mycommand.Parameters
.Add(parameterRoleID)End With connect.Open()Using result As OleDbDataReader =
mycommand.ExecuteReader(CommandBehavior.CloseConnection)Return result
End Using End Using
End Using Catch SqlEx As OleDbException
Throw New Exception(SqlEx.Message.ToString())End Try
End Function
Public Function InsertRoleMenu(ByVal MenuRole As Entity.MenuRole) As OleDbDataReader
Try Using connect As New OleDbConnection(My.Settings.DVDConnection)
Using mycommand As OleDbCommand = New OleDbCommand("usp_InsertRoleMenu", connect)
mycommand.CommandType = CommandType.StoredProcedureDim parameterRoleID As OleDbParameter = New
OleDbParameter("@RoleID", OleDbType.Integer)parameterRoleID.Value = MenuRole.Role.RoleIDDim parameterMenuID As OleDbParameter = New
OleDbParameter("@MenuID", OleDbType.VarChar, 10)parameterMenuID.Value = MenuRole.Menu.MenuID
With mycommand.Parameters.Add(parameterRoleID).Add(parameterMenuID)
End With connect.Open()Using result As OleDbDataReader =
mycommand.ExecuteReader(CommandBehavior.CloseConnection)Return result
End Using
End Using End Using
Catch SqlEx As OleDbException Throw New Exception(SqlEx.Message.ToString())
End Try
End Function
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 76/186
76
Buka DVDModule.vb dan ketikkan sintaks dibawah.
Pada fungsi GetLeftRightItemFromControl berfungsi untuk mengambil text setelah tanda “>”.
Dimana kita gunakan ini untuk mengambil RoleID pada Form Access yang akan kita buat
nantinya. Sedangkan AddParameter berfungsi untuk membantu dalam pembuatan Paramater
dinamis untuk suatu fungsi.
Selanjutnya kita akan membuat method dimana akan membantu kita dalam mencari suatu data
dan dimasukkan kedalam Generic List. Biasanya kita selalu membuat suatu method untuk
mencari data tertentu. Dengan method dibawah ini kita tidak perlu lagi membuat secara satu-
persatu, sehingga ini sangat memudahkan kita dalam membuat program. Untuk method dibawah
ini hanya berfungsi untuk mencari data yang berdiri sendiri atau tidak berelasi dengan yang lain.
Ketikkan sintaks dibawah ini.
#Region "Process"
Public Function GetLeftRightItemFromControl( ByVal Teks As String) As String()'//cari item kiri dari teks Dim intPanjangString As Integer Dim intPosisiDash As Integer intPanjangString = Strings.Len(Teks)intPosisiDash = Teks.IndexOf(">")Dim strID As String = Trim(Strings.Left(Teks, intPosisiDash - 1))Dim strNama As String = Trim(Strings.Mid(Teks, intPosisiDash + 2,
intPanjangString - intPosisiDash + 2))Dim arrString As String() = {strID, strNama}Return arrString
End Function
Public Sub AddParameter(ByVal Name As String, ByVal Type As OleDbType, _ByVal Size As Integer, ByVal Value As Object, ByVal myCommand As
OleDbCommand)
Try myCommand.Parameters.Add(Name, Type, Size).Value = ValueCatch OleDbExceptionErr As OleDbException
Throw New System.Exception(OleDbExceptionErr.Message, _OleDbExceptionErr.InnerException)
End Try End Sub
#End Region
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 77/186
77
#Region "Fill"
Private Sub Fill(Of T)(ByVal reader As IDataReader, ByVal list As IList(Of T), _ByVal type As Type, ByVal fields As String())
Dim index As Integer = 0
' run the reader While reader.Read()
' create an instance of the type Dim item As T = DirectCast(Activator.CreateInstance(type), T)' get all the properties of the type Dim properties As Reflection.PropertyInfo() = DirectCast(item.GetType(),
Type).GetProperties()'Dim MyType As Type = type.GetType("Myproperty")
If fields.Length <> 0 Then For j As Integer = 0 To fields.Length - 1
' get the index of the property index = FindProperyIndexByColumnName(fields(j), properties)' set the value of the property ' properties(index).GetAccessors( If index <> -1 Then
properties(index).SetValue(item,If(reader(fields(j)).ToString = "", "",
reader(fields(j))), Nothing)End If
Next Else
For i As Integer = 0 To reader.FieldCount - 1
index = FindProperyIndexByColumnName(reader.GetName(i), properties)Dim a, b As String a = reader(reader.GetName(i)).ToStringb = "" If index <> -1 Then
properties(index).SetValue(item,If(reader(reader.GetName(i)).ToString = "", "",
reader(reader.GetName(i))), Nothing)End If
Next End If
' add the item to the list list.Add(item)
End While
End Sub
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 78/186
78
Private Function FindProperyIndexByColumnName( ByVal columnName As String, ByVal prop As Reflection.PropertyInfo()) As Integer
Dim index As Integer = -1For i As Integer = 0 To prop.Length - 1
If UCase(prop(i).Name) = UCase(columnName) Then index = iExit For
End If Next Return index
End Function
Public Sub FillListWithParam(Of T)(ByVal list As IList(Of T),ByVal fields As String(), ByVal Query As
String,ByVal type As Type,ByVal Name As String(), ByVal OleType As
OleDbType(),
ByVal Size As Integer(), ByVal Value As Object())
Using connect As New OleDbConnection(My.Settings.DVDConnection)Using mycommand As OleDbCommand = New OleDbCommand(Query, connect)
mycommand.CommandType = CommandType.StoredProcedureIf Name.Length > 0 Then
For i = 0 To Name.Length - 1DVDModule.AddParameter(Name(i), OleType(i), Size(i), Value(i),
mycommand)Next
End If connect.Open()Using reader As OleDbDataReader = mycommand.ExecuteReader()
Fill(reader, list, type, fields)End Using
End Using End Using
End Sub
Public Sub FillListWithoutParam(Of T)(ByVal list As IList(Of T),ByVal fields As String(), ByVal Query As String,ByVal type As Type)
Using connect As New OleDbConnection(My.Settings.DVDConnection)Using mycommand As OleDbCommand = New OleDbCommand(Query, connect)
mycommand.CommandType = CommandType.StoredProcedure
connect.Open()Using reader As OleDbDataReader = mycommand.ExecuteReader()Fill(reader, list, type, fields)
End Using End Using
End Using End Sub
#End Region
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 79/186
79
Untuk penggunaan method akan di jelaskan dibawah. Selanjutnya tambahkan sebuah Form pada
project dan ubah properties nya seperti dibawah. (Form ini diambil dari blog mas rully).
Name F_FormAccess
ShowInTaksbar False
Text Form Access
StartPosition CenterScreen
MaximizeBox False
MinimizeBox False
FormBorderStyle FixedSingle
BackColor White
Tambahkan sebuah Panel kedalam form dan ubah properties Dock : Fill dan BackColor : White.Lalu tarik sebuah panel lagi dan ubah propertiesnya Dock : Left, BackColor : white , Name :
pnlLeft. Tambahkan 2 Groupbox, 2 RadioButton, 1 Button, 1 ListBox. Dan ubah properties
seperti dibawah.
GroupBox1
Text
GroupBox2
Text Roles
RadioButon1
Text Unchecked All Node
Name rbUncheckedAll
Checked True
RadioButon2
Text Checked All Node
Name rbCheckedAllChecked False
ListBox1
Name LstRoles
Button1
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 80/186
80
Dim AccessUser As New AccessData.AccessUser Dim columns As String() = {}
Name btnUpdate
Text Update
Dan atur posisi control-control diatas seperti gambar dibawah.
Gambar 4.22
Selanjutnya tambahkan control ImageList, dan pada properties Images klik button browse (..)
lalu Add sebuah image yang diinginkan (ukuran 16 x 16). Lalu tambahkan sebuah TreeView dan
ubah properties Name : tvUserRights, CheckBoxes : True, ImageList : ImageList1 dan
ImageIndex : 0, SelectedImageIndex : 0. Lalu letakkan pada Panel1 sesuai dengan gambar
dibawah.
Gambar 4.23
Buatlah variable Class seperti dibawah.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 81/186
81
Private Sub AddMenuToTree(ByVal YourNodeTree As TreeNode, ByVal YourToolStripMenuItemAs ToolStripMenuItem)
'//cek apakah toolstripmenuitem tsb mempunyai sub menuitem '//yang merupakan DropDownItem : If YourToolStripMenuItem.DropDownItems.Count > 0 Then
'//jika ada sub menu item, iterate : For i As Int32 = 0 To YourToolStripMenuItem.DropDownItems.Count - 1
'//jika sub menu itemnya bukan merupakan toolstripmenuitem (bisa saja '//merupakan toolstripseparator) maka item tsb tdk ditambahkan ke
treeview : If Not (TypeOf YourToolStripMenuItem.DropDownItems(i) Is
ToolStripMenuItem) Then Continue For Dim currentItem As ToolStripMenuItem =
YourToolStripMenuItem.DropDownItems(i)Dim aNode As New TreeNode(Replace(currentItem.Text.ToString, "&", ""))aNode.Tag = currentItem.Tag.ToString
YourNodeTree.Nodes.Add(aNode)'//cek jika ada sub menu item lagi dengan method recursive AddMenuToTree(aNode, currentItem)
Next End If
End Sub
Private Sub PopulateToolStripMenuItem( ByVal YourMainMenuStrip As MenuStrip)' daFormActions.Fill(dsFormActions, "formActions") '//iterate toolstripmenuitem yang ada di MainMenuStrip : For Each aItem As ToolStripMenuItem In YourMainMenuStrip.Items
'//buat node baru utk ditambahkan ke treeview node : Dim aNode As New TreeNode(Replace(aItem.Text.ToString, "&", ""))aNode.Tag = aItem.Tag.ToString
tvUserRights.Nodes.Add(aNode)'//tambahkan node baru ke treeview jika '//node tersebut memiliki node child (DropDownItem): AddMenuToTree(aNode, aItem)
Next tvUserRights.ExpandAll()tvUserRights.SelectedNode = tvUserRights.Nodes(0)
End Sub
Ketikkan sintaks berikut yang berfungsi untuk generate Node pada TreeView yang mengambil
data dari MenuItem pada F_Main.
Dan selanjutnya adalah membuat procedure untuk mengambil data pada table T_Role dan
dimasukkan kedalam LstRoles. Pada procedure ini kita akan menggunakan method pada
DVDModule yang telah kita buat sebelumnya.
Private Sub PopulateRolesToListBox()lstRoles.Items.Clear()Dim RoleList As New List(Of Entity.Role)DVDModule.FillListWithoutParam(RoleList, columns, "usp_SelectRole", _
GetType(Entity.Role))For Each items In RoleList
lstRoles.Items.Add(items.RoleID & " > " & items.RoleName)Next
End Sub
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 82/186
82
Dengan menggunakan method pada DVDModule akan mempermudah kita dalam membuat
aplikasi ini. Kita tidak perlu lagi membuat satu-persatu fungsi untuk mengambil data, hanya
cukup dengan memanggil method FillListWithoutParam (pencarian tanpa parameter) dan
FilllistWithParam (pencarian dengan parameter), yang akan kita gunakan pada form-form
berikut nya. Selanjutnya pada event handler F_FormAccess_Load ketikkan sintaks dibawah.
Lalu buka F_Main (Main Menu), klik menu item Utility > Form Access, dan ketikkan sintaks
dibawah.
Buatlah event handler TvTransaction_DoubleClick, dan ketikkan sintaks dibawah, yang
berfungsi untuk memanggil event handler click pada MenuItem. Sebagai contoh, jika pengguna
meng-klik text Group pada TreeView maka secara otomatis program akan memanggil event
handler cick untuk Menu Item Group.
Try PopulateToolStripMenuItem( My.Forms.F_Main.MenuStrip1)PopulateRolesToListBox()
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "DVD Rental")
End Try
Try Dim frm_access As New F_FormAccess frm_access.ShowDialog()
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "DVD Rental")
End Try
Try For Each aItem As ToolStripMenuItem In MenuStrip1.Items
Dim str As String = TvTransaction.SelectedNode.Tag.ToStringIf aItem.DropDownItems.Count > 0 Then
For i As Int32 = 0 To aItem.DropDownItems.Count - 1If Not (TypeOf aItem.DropDownItems(i) Is ToolStripMenuItem) Then
Continue For Dim currentItem As ToolStripMenuItem = aItem.DropDownItems(i)If str = currentItem.Tag.ToString Then
currentItem.PerformClick()Exit Sub Else
If currentItem.DropDownItems.Count > 0 Then For x As Int32 = 0 To currentItem.DropDownItems.Count -
1If Not (TypeOf currentItem.DropDownItems(x) Is
ToolStripMenuItem) Then Continue For
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 83/186
83
Dan jalankan program, pada Main Menu double click text Form Access, maka Form Access akan
muncul seperti gambar dibawah ini.
Gambar 4.24
Selanjutnya buatlah procedure untuk mengaktifkan atau non aktifkan checkbox pada node,
dengan sintaks seperti dibawah.
Dim currentItem2 As ToolStripMenuItem = currentItem.DropDownItems(x)If str = currentItem2.Tag.ToString Then
currentItem2.PerformClick()Exit Sub
End If Next
End If End If
Next End If
Next Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information, "DVD Rental")End Try
Private Sub CheckedTreeNode(ByVal Checked As Boolean)Dim IEnum As IEnumerator = Me.tvUserRights.Nodes.GetEnumeratorWhile IEnum.MoveNext
Dim aNode As TreeNode = DirectCast(IEnum.Current, TreeNode)aNode.Checked = CheckedAddRecursiveNode(aNode, Checked)
End While End Sub
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 84/186
84
Dan ketikkan sintaks berikut untuk menggunakan procedure diatas.
Jalankan program lalu masuk kedalam Form Access, lalu coba klik Radio Button Checked dan
UnChecked apakah berfungsi, jika di klik Radio Button checked maka seluruh check box pada
Node akan aktif, dan sebaliknya untuk UnChecked.
Selanjutnya adalah kita akan membuat proses dimana jika Role pada list di klik maka hak akses
pada suatu role akan di tampilkan pada TreeView dengan tanda checkbox akan aktif. Pertama-
tama adalah dengan mengimports name space OleDB seperti dibawah.
Dan ketikkan procedure untuk mengambil data pada table T_MenuRole dengan criteria RoleID.
Private Sub AddRecursiveNode(ByVal NodeRef As TreeNode, ByVal Checked As Boolean)For Each aNode As TreeNode In NodeRef.Nodes
aNode.Checked = CheckedAddRecursiveNode(aNode, Checked)
Next End Sub
Private Sub CheckhedRadioButton(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbUncheckedAll.CheckedChanged, rbCheckedAll.CheckedChanged
Select Case sender.name.ToString.ToUpperCase "RBCHECKEDALL"
CheckedTreeNode(True)Case "RBUNCHECKEDALL"
CheckedTreeNode(False)End Select
End Sub
Imports System.Data.OleDb
Private Sub PopulateRoleDetails(ByVal RoleIDs As String)
Dim mydata As New DataSet Using connect As New OleDbConnection(My.Settings.DVDConnection)
Using ObjCommand As New OleDbCommand("usp_SelectMenuRole", connect)ObjCommand.CommandType = CommandType.StoredProcedureObjCommand.Parameters.Add( "@RoleID", OleDbType.Integer).Value = RoleIDsUsing objDataAdapter As New OleDbDataAdapter
objDataAdapter.SelectCommand = ObjCommandobjDataAdapter.Fill(mydata, "data")
End Using End Using
End UsingIf mydata.Tables("data").Rows.Count = 0 Then
For Each aNode As TreeNode In tvUserRights.NodesaNode.Checked = False AddRecursiveNode(aNode, False)
Next
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 85/186
85
Private Sub PopulateItemCheckedToTheTree( ByVal YourView As DataView)
Dim IEnum As IEnumerator = Me.tvUserRights.Nodes.GetEnumeratorWhile IEnum.MoveNextDim aNode As TreeNode = DirectCast(IEnum.Current, TreeNode)YourView.RowFilter = "MenuID = '" & aNode.Tag.ToString & "'" If YourView.Count > 0 Then
aNode.Checked = True Else
aNode.Checked = False End If AddRecursiveNodeTree(YourView, aNode)
End While End Sub
Private Sub AddRecursiveNodeTree(ByVal YourView As DataView, ByVal NodeRef As
TreeNode)For Each aNode As TreeNode In NodeRef.Nodes
YourView.RowFilter = "MenuID = '" & aNode.Tag.ToString & "'" If YourView.Count > 0 Then
aNode.Checked = True Else
aNode.Checked = False End If AddRecursiveNodeTree(YourView, aNode)
Next End Sub
Lalu klik ganda LstRoles dan ketikkan sintaks dibawah.
Sintaks diatas berfungsi untuk memanggil proses PopulateRoleDetails dengan kriteria Role yang
di klik pada LstRoles, dengan menggunakan fungsi GetLeftRightItemFromControl yang telah
kita buat sebelumnya pada DVDModule. Dan jalankan program, lalu pada Form Access klik
Role pada LstRoles, jika pada saat pembaca klik Role Admin maka checkbox pada Node akan
aktif semua, tapi jika Role yang lain maka tidak aktif, dikarenakan kita belum memasukkan data
Else PopulateItemCheckedToTheTree(mydata.Tables( "data").DefaultView)
End If End Sub
Private Sub PopulateItemCheckedToTheTree( ByVal YourView As DataView)Dim IEnum As IEnumerator = Me.tvUserRights.Nodes.GetEnumeratorWhile IEnum.MoveNext
Dim aNode As TreeNode = DirectCast(IEnum.Current, TreeNode)YourView.RowFilter = "MenuID = '" & aNode.Tag.ToString & "'" If YourView.Count > 0 Then
aNode.Checked = True Else
aNode.Checked = False End If AddRecursiveNodeTree(YourView, aNode)
End While End Sub
Private Sub AddRecursiveNodeTree(ByVal YourView As DataView, ByVal NodeRef As TreeNode)
For Each aNode As TreeNode In NodeRef.NodesYourView.RowFilter = "MenuID = '" & aNode.Tag.ToString & "'" If YourView.Count > 0 Then
aNode.Checked = True Else
aNode.Checked = False End If AddRecursiveNodeTree(YourView, aNode)
Next End Sub
Try If lstRoles.SelectedIndex <> -1 Then
Dim arrItems As String() =DVDModule.GetLeftRightItemFromControl(lstRoles.SelectedItem.ToString)
PopulateRoleDetails(arrItems(0))End If
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "DVD Rental")
End Try
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 86/186
86
Private Sub InsertItemCheckedOnTheTreeToDatabase( ByVal RoleID As String, ByVal RoleName As String)
Dim IEnum As IEnumerator = Me.tvUserRights.Nodes.GetEnumerator
While IEnum.MoveNextDim aNode As TreeNode = DirectCast(IEnum.Current, TreeNode)'//insert ke tabel RoleDetails (RoleID, MenuName, FormAction, Tag) : If aNode.Checked Then
Dim MenuRole As New Entity.MenuRole MenuRole.Role.RoleID = RoleIDMenuRole.Menu.MenuID = aNode.Tag.ToStringAccessUser.InsertRoleMenu(MenuRole)AddRecursiveTreeNode(RoleID, aNode)
End If End While
End Sub Private Sub AddRecursiveTreeNode(ByVal RoleID As String, ByVal NodeRef As TreeNode)
For Each aNode As TreeNode In NodeRef.Nodes'//insert ke tabel RoleDetails (RoleID, MenuName, FormAction, Tag) : If aNode.Checked Then
Dim MenuRole As New Entity.MenuRole MenuRole.Role.RoleID = RoleIDMenuRole.Menu.MenuID = aNode.Tag.ToStringAccessUser.InsertRoleMenu(MenuRole)
End If AddRecursiveTreeNode(RoleID, aNode)
Next End Sub
kedalam table. Dan sekarang kita lanjutkan untuk menginput data pada table, dengan cara
mengaktifkan Checkbox pada Node di TreeView. Ketikkan sintaks dibawah ini.
Klik ganda button Update dan ketikkan sintaks berikut :
Try If lstRoles.SelectedIndex = -1 Then
MsgBox("Pilih dahulu RoleID yang akan diupdate dari List Roles",MsgBoxStyle.Information, "DVD Rental")
Exit Sub Else
Dim arrItems As String() =DVDModule.GetLeftRightItemFromControl(lstRoles.SelectedItem.ToString)
Dim mYes_No As String = MsgBox("Apakah kamu ingin menyimpan data ?",vbYesNo, "DVD Rental")
If mYes_No = vbYes Then Dim MenuRole As New Entity.MenuRole MenuRole.Role.RoleID = arrItems(0)AccessUser.DeleteRoleMenu(MenuRole)InsertItemCheckedOnTheTreeToDatabase(arrItems(0), arrItems(1))lstRoles.SelectedIndex = -1
End If End If
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "DVD Rental")
End Try
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 87/186
87
Buka F_Main (Main Menu), lalu ketikkan sintaks berikut, yang berfungsi untuk menampilkan
Menu Item sesuai dengan hak akses yang diberikan, pada Form Access.
#Region "PopulateMenu" Private Sub PopulateRoleDetails()
Dim mydata As New DataSet
Using connect As New OleDbConnection(My.Settings.DVDConnection)Using ObjCommand As New OleDbCommand("usp_SelectMenuRole", connect)
ObjCommand.CommandType = CommandType.StoredProcedureObjCommand.Parameters.Add( "@RoleID", OleDbType.Integer).Value = RoleIDUsing objDataAdapter As New OleDbDataAdapter
objDataAdapter.SelectCommand = ObjCommandobjDataAdapter.Fill(mydata, "data")
End Using End Using
End Using CreateMenu(mydata.Tables("data").DefaultView)
End Sub
Private Sub CreateMenu(ByVal dtView As DataView)Dim Num As IEnumerator = MenuStrip1.Items.GetEnumeratorWhile Num.MoveNext
Dim ToolMenu As ToolStripMenuItem = DirectCast(Num.Current,ToolStripMenuItem)
dtView.RowFilter = "MenuID = '" & ToolMenu.Tag.ToString & "'" If dtView.Count > 0 Then
ToolMenu.Visible = True
Else ToolMenu.Visible = False
End If CreateMenuItem(dtView, ToolMenu)
End While
End Sub
Private Sub CreateMenuItem(ByVal dtView As DataView, ByVal ToolMenu As ToolStripMenuItem)
For i As Integer = 0 To ToolMenu.DropDownItems.Count - 1If Not (TypeOf ToolMenu.DropDownItems(i) Is ToolStripMenuItem) Then
Continue For dtView.RowFilter = "MenuID = '" & ToolMenu.DropDownItems(i).Tag.ToString &
"'" If dtView.Count > 0 Then
ToolMenu.DropDownItems(i).Visible = True Else
ToolMenu.DropDownItems(i).Visible = False ToolMenu.DropDownItems(i).Tag = ""
End If CreateMenuItem(dtView, ToolMenu.DropDownItems(i))
Next End Sub
#End Region
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 88/186
88
Lalu aktifkan F_Main dan pada event handler F_Main_Load tambahkan sintaks berikut
PopulateRoleDetails()
Pada Ms Access (DVD.accdb) buka T_User, lalu masukkan data seperti dibawah.
Username : anam, Password: 123, First Name : Khoirul, Last Name : Anam, RoleID : 4 danActived = True (Yes).
Selanjutnya jalankan program (gunakan user administrator), lalu klik Role Kasir dan aktifkan
checkbox pada TreeView seperti gambar dibawah, lalu klik button update. Lalu Logout dan
login menggunakan username : anam (seperti diatas), maka tampilan pada Main Menu akan
seperti gambar dibawah.
Gambar 4.25
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 89/186
89
Gambar 4.26
Pada setiap aplikasi umumnya selalu menyediakan fasilitas untuk mengubah password, untuk
mengantisipasi jika password dari pengguna telah di ketahui oleh orang lain. Untuk aplikasi yang
kita buat ini kita juga akan meneyediakan fasilitas ini. Ikuti langkah-langkah dibawah ini untuk
membuat form ubah password. Tambahkan sebuah form pada project dan ubah properties nya
seperti dibawah.
Name F_Change
ShowInTaksbar False
Text Form Access
StartPosition CenterScreen
ControlBox False
FormBorderStyle FixedSingle
BackColor White
Dan tambahkan 3 textbox, 3 label dan 2 button lalu ubah masing-masing control seperti dibawah.
TextBox1
Name txtOld
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 90/186
90
UPDATE T_User SET T_User.[Password] = [@password]
WHERE (((T_User.UserName)=[@Username]));
TextBox2
Name txtNew
TextBox3
Name txtConfirm
Button1
Text Save
Name btnSave
Button2
Text Close
Name btnCancel
Buka MS Access (DVD.accdb) lalu buat Query dengan namanya “usp_changepassword” dan
dengan sintaks SQL nya seperti dibawah.
Lalu pada project kita buka AccessUser dan ketikkan sintaks berikut untuk mengubah password
pengguna.
Public Function ChangePassword(ByVal User As Entity.Users) As OleDbDataReader
Try Using connect As New OleDbConnection(My.Settings.DVDConnection)Using mycommand As OleDbCommand = New
OleDbCommand("usp_changepassword", connect)mycommand.CommandType = CommandType.StoredProcedure
Dim parameterPassword As OleDbParameter = New OleDbParameter("@Password", OleDbType.VarChar, 15)
parameterPassword.Value = User.Password
Dim parameterUserName As OleDbParameter = New OleDbParameter("@genre_id", OleDbType.VarChar, 15)
parameterUserName.Value = User.Username
With mycommand.Parameters.Add(parameterPassword).Add(parameterUserName)
End With
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 91/186
91
Kembali ke F_Change, klik ganda button Close dan ketikkan sintaks berikut :Me.Close, Lalu
klik ganda button OK dan ketikkan sintaks berikut.
Pada sintaks diatas sebelum mengubah password terlebih dahulu aplikasi ini mengecek apakah
password lama yang kita masukkan benar atau salah, ini untuk menjaga jika yang mengganti
password adalah benar-benar pengguna yang benar. Lalu mengecek password baru dan
konfirmasi apakah sama, ini untuk memastikan bahwa password yang dimasukkan emang benar.
Lalu setelah itu dengan menggunakan fungsi ChangePassword aplikasi mengubah password
connect.Open()Using result As OleDbDataReader =
mycommand.ExecuteReader(CommandBehavior.CloseConnection)Return result
End Using
End Using End Using
Catch SqlEx As OleDbException Throw New Exception(SqlEx.Message.ToString())
End Try
End Function
Try Dim AccessUser As New AccessData.AccessUser If txtOld.Text = "" Or txtNew.Text = "" Or txtConfirm.Text = "" Then
MsgBox("Isi seluruh data terlebih dahulu", MsgBoxStyle.Information,"DVD Rental")
Exit Sub End If If Password <> txtOld.Text Then
MsgBox("Password lama salah", MsgBoxStyle.Information, "DVD Rental")Exit Sub
ElseIf txtNew.Text <> txtConfirm.Text Then MsgBox("Password baru dan confirm password tidak sama",
MsgBoxStyle.Information, "DVD Rental")Exit Sub
End If Dim User As New Entity.Users With {.Password = txtNew.Text, .Username =
UserName}
AccessUser.ChangePassword(User)txtOld.Text = "" txtNew.Text = "" txtConfirm.Text = "" MsgBox("Ganti password sukses", MsgBoxStyle.Information, "DVD Rental")
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "DVD Rental")
End Try
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 92/186
92
lama dengan yang baru. Buka F_Main dan pada MenuItem Utility > Change Password , klik
ganda dan ketikkan sintaks dibawah.
Jalankan program dan masuk ke Form Change Password lalu ganti passwordnya.
Gambar 4.27
Setelah selesai membuat Form Change Password, maka selanjutnya kita akan membuat form
untuk pengolahan data pengguna. Form ini berguna untuk memasukkan data pengguna baik lamaatau baru. Tambahkan sebuah form dan ganti properties nya seperti dibawah:
Name F_User
ShowInTaksbar False
Text Form Access
StartPosition CenterScreen
MaximizeBox False
MinimizeBox False
FormBorderStyle FixedSingle
BackColor White
Dan tambahkan 1 GroupBox, 4 TextBox, 5 Label, 1 comboBox, 1 Checkbox dan 2 button
selanjutnya ganti properties seperti dibawah.
Try Dim frm_access As New F_FormAccess frm_access.ShowDialog()
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "DVD Rental")
End Try
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 93/186
93
GroupBox1
Text User Detail
TextBox1
Name txtUser
TextBox2
Name txtPassword
TextBox3
Name txtfirst
TextBox4
Name txtLast
ComboBox1
Name cbRole
CheckBox1
Name cbStatus
Button1
Name btnSave
Text &Save
Button2
Name btnCancel
Text &Cancel
Dan atur posisi control seperti gambar dibawah.
Gambar 4.28
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 94/186
94
SELECT T_User.username, T_User.actived, T_User.First_Name, T_User.Last_Name, T_User.RoleID
FROM T_User;
INSERT INTO T_User ( UserName, [Password], First_Name, Last_Name, RoleID, Actived )
VALUES ([@UserName], [@Password], [@First_Name], [@Last_Name], [@RoleID], 1);
UPDATE T_User SET T_User.[Password] = [@Password], T_User.First_Name = [@First_Name],
T_User.Last_Name = [@Last_Name], T_User.RoleID = [@RoleID], T_User.Actived = [@Actived]
Public Function UserInsert(ByVal User As Entity.Users) As OleDbDataReader Try
Using connect As New OleDbConnection(My.Settings.DVDConnection)Using mycommand As OleDbCommand = New OleDbCommand("usp_InsertUser",
connect)mycommand.CommandType = CommandType.StoredProcedureDim parameterUserName As OleDbParameter = New
OleDbParameter("@UserName", OleDbType.VarChar, 15)parameterUserName.Value = User.Username
Dim parameterPassword As OleDbParameter = New OleDbParameter("@Password", OleDbType.VarChar, 15)
parameterPassword.Value = User.PasswordDim parameterFirstName As OleDbParameter = New
OleDbParameter("@first_name", OleDbType.VarChar, 50)parameterFirstName.Value = User.First_NameDim parameterLastName As OleDbParameter = New
OleDbParameter("@last_name", OleDbType.VarChar, 50)parameterLastName.Value = User.Last_NameDim parameterRoleID As OleDbParameter = New
OleDbParameter("@RoleID", OleDbType.Integer)parameterRoleID.Value = User.Role.RoleID
With mycommand.Parameters
.Add(parameterUserName)
.Add(parameterPassword)
.Add(parameterFirstName)
.Add(parameterLastName)
.Add(parameterRoleID)End With
Lalu pada DVD.accdb buat Query dengan nama masing-masing seperti berikut :
usp_SelectUserList, usp_InsertUser, usp_UpdateUser. Dan dengan sintkas SQL seperti dibawah.
Dan selanjutnya kita akan membuat 2 fungsi untuk insert dan update user. Buka AccessUser dan
ketikkan sintaks dibawah ini.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 95/186
95
connect.Open()Using result As OleDbDataReader =
mycommand.ExecuteReader(CommandBehavior.CloseConnection)Return result
End Using End Using
End Using Catch SqlEx As OleDbException
Throw New Exception(SqlEx.Message.ToString())End Try
End Function
Public Function UserUpdate(ByVal User As Entity.Users) As OleDbDataReader Try
Using connect As New OleDbConnection(My.Settings.DVDConnection)Using mycommand As OleDbCommand = New
OleDbCommand("usp_UpdateUser", connect)mycommand.CommandType = CommandType.StoredProcedureDim parameterPassword As OleDbParameter = New
OleDbParameter("@Password", OleDbType.VarChar, 15)parameterPassword.Value = User.PasswordDim parameterFirstName As OleDbParameter = New
OleDbParameter("@first_name", OleDbType.VarChar, 50)parameterFirstName.Value = User.First_NameDim parameterLastName As OleDbParameter = New
OleDbParameter("@last_name", OleDbType.VarChar, 50)parameterLastName.Value = User.Last_NameDim parameterRoleID As OleDbParameter = New
OleDbParameter("@RoleID", OleDbType.Integer)parameterRoleID.Value = User.Role.RoleIDDim parameterActived As OleDbParameter = New
OleDbParameter("@Actived", OleDbType.Boolean)
parameterActived.Value = User.ActivedDim parameterUserName As OleDbParameter = New OleDbParameter("@UserName", OleDbType.VarChar, 15)
parameterUserName.Value = User.UsernameWith mycommand.Parameters
.Add(parameterPassword)
.Add(parameterFirstName)
.Add(parameterLastName)
.Add(parameterRoleID)
.Add(parameterActived)
.Add(parameterUserName)End With connect.Open()Using result As OleDbDataReader =
mycommand.ExecuteReader(CommandBehavior.CloseConnection)Return result
End Using End Using
End Using Catch SqlEx As OleDbException
Throw New Exception(SqlEx.Message.ToString())End Try
End Function
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 96/186
96
Dan pada F_User tekan F7 untuk masuk ke jendela Code buat variable Class seperti dibawah.
Selanjutnya kita akan membuat procedure untuk menampilkan data pada CbRole, seperti
dibawah.
Dan sintaks dibawah ini berfungsi untuk merefresh form (meng- clearkan textbox, membalikkan
posisi CbRole seperti semula).
Lalu ketikkan sintaks dibawah untuk menampilkan data user dengan menggunakan fungsi login
yang telah kita buat sebelumnya pada Class AccessUser.
Lalu klik ganda F_User dan ketikkan sintaks berikut.
Dim AccessUser As New AccessData.AccessUser Dim columns As String() = {}
Private Sub SortRole()Dim RoleList As New List(Of Entity.Role) From {{"0", "- Choice -"}}DVDModule.FillListWithoutParam(RoleList, columns, "usp_SelectRole", _
GetType(Entity.Role))CbRole.DataSource = RoleListCbRole.DisplayMember = "RoleName" CbRole.ValueMember = "RoleID"
End Sub
Private Sub Clear()Dim C As Control Dim T As TextBox For Each C In Me.GbDetail.Controls
If TypeOf C Is TextBox Then T = CType(C, TextBox)T.Text = ""
End If Next CbRole.SelectedIndex = 0
End Sub
Private Sub ViewUser()Dim list As List(Of Entity.Users) = AccessUser.Login(txtUser.Text)txtUser.Text = list.First.UsernametxtPassword.Text = list.First.PasswordtxtFirst.Text = list.First.First_NametxtLast.Text = list.First.Last_NameCbRole.SelectedIndex = CbRole.FindStringExact(list.First.Role.RoleName)CbStatus.Checked = If(list.First.Actived = "True", True, False)
End Sub
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 97/186
97
Try If CbRole.SelectedIndex = 0 Then MsgBox("Pilih Role terlebih dahulu", MsgBoxStyle.Information, "DVD
Rental")Exit Sub
End If Dim User As New Entity.Users With {.Username = txtUser.Text, .Password =
txtPassword.Text,.First_Name = txtFirst.Text, .Last_Name = txtLast.Text, .Role = New
Entity.Role With {.RoleID = CbRole.SelectedValue},.Actived = If(CbStatus.Checked = True,
True, False)}
Dim mYes_No As String = MsgBox("Apakah kamu ingin menyimpan data ?",
vbYesNo, "DVD Rental")If mYes_No = vbYes Then
If Operate = "Add" Then AccessUser.UserInsert(User)Clear()
Else AccessUser.UserUpdate(User)
End If End If
Pada sintaks diatas jika Operate (Global Variable) tidak sama dengan “Add” maka pada form ini
akan menampilkan data user dengan menggunakan procedure ViewUser. Dan mengaktifkan
CbStatus. Klik ganda button Cancel dan ketikkan sintaks dibawah.
If Operate = "Add" Then Clear()Else
Operate = Nothing Me.Close()
End If
Sintaks diatas memiliki dua fungsi sama seperti pada F_Main_Load yaitu jika pada
Operate=Add, maka proses yang dilakukan adalah hany merefresh form sedangkan Operate <>
Add maka form akan di tutup. Lalu klik ganda button Save dan ketikkan sintaks dibawah ini,
yang berfungsi untuk menyimpan data baru maupun mengubah data lama.
Try SortRole()If Operate = "Add" Then
CbStatus.Checked = True CbStatus.Visible = False
Else
CbStatus.Visible = True ViewUser()End If
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "DVD Rental")
End Try
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 98/186
98
Sekarang buka F_Main, pada menu Item Utility > Users > Add, ketikkan sintaks berikut.
Dan jalankan program dengan menekan F5, buka form Add user dan masukkan data user pada
form, seperti dibawah.
Gambar 4.28
Lalu bagaimanakah cara mengubah data user?? Mungkin pertanyaan itu ada di benak para
pembaca. Pada Form ini untuk mengubah data user sebelumnya adalah kita membutuhkan 2 buah form, yang pertama untuk mencari data user dan kedua menampilkan daftar user. Untuk
lebih jelasnya ikuti langkah dibawah ini.
Tambahkan sebuah form pada project dan ubah properties nya seperti dibawah.
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "DVD Rental")
End Try
Try Operate = "Add" Dim frm_user As New F_User frm_user.ShowDialog()Operate = Nothing
Catch ex As Exception MsgBox(ex.Message)
End Try
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 99/186
99
Name F_UserBox
ShowInTaksbar False
Text Form Access
StartPosition CenterScreen
ControlBox False
FormBorderStyle FixedSingle
BackColor White
Dan tambahkan 1 TextBox, 1 Label dan 3 button lalu ubah propertiesnya seperti dibawah.
TextBox1
Name txtUsername
Button1 Name btnOK
Text OK
Button2
Name btnSearch
Text Search
Button3
Name btnCancel
Text Cancel
Name btnSave
Text &Save
Button2
Name btnCancel
Text &Cancel
Dan atur posisinya seperti gambar dibawah.
Gambar 4.29
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 100/186
100
Selanjutnya tambahkan sebuah form lagi dan ubah properties seperti dibawah.
Name H_User
ShowInTaksbar False
Text User List
StartPosition CenterScreen
MaximizeBox False
MinimizeBox False
FormBorderStyle FixedSingle
BackColor White
Dan tambahkan beberapa control 1 Groupbox, 1 TextBox, 1 GriView dan 1 Button. Dan ubah
propertiesnya seperti dibawah.
TextBox1
Name txtSearch
Groupbox1
Text Search Criteria by Username
Button1
Name btnCancel
Text Cancel
Button2
Name btnSearch
Text Search
Button3
Name btnCancel
Text Cancel
Name btnSaveText &Save
Button2
Name btnCancel
Text &Cancel
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 101/186
101
DataGridView1
Name DgView
Dan atur posisi control diatas seperti gambar dibawah.
Gambar 4.30
Tekan F7, pada jendela Code H_User buat variable Class seperti dibawah.
Dim UserList As New List(Of Entity.Users)
Dan buat procedure untuk mengatur format DgView seperti dibawah.
Private Sub FormatGridWithBothTableAndColumnStyles()Me.DgView.DefaultCellStyle.ForeColor = Color.NavyMe.DgView.RowsDefaultCellStyle.BackColor = Color.AliceBlueMe.DgView.GridColor = Color.BlueMe.DgView.BorderStyle = BorderStyle.Fixed3DMe.DgView.RowHeadersBorderStyle = BorderStyle.Fixed3D
DgView.AutoGenerateColumns = False
Dim UserColumn As New DataGridViewTextBoxColumn()UserColumn.DataPropertyName = "Username" UserColumn.HeaderText = "Username" UserColumn.Width = 80
Dim FirstColumn As New DataGridViewTextBoxColumn()FirstColumn.DataPropertyName = "first_name" FirstColumn.HeaderText = "First Name" FirstColumn.Width = 100
Dim LastColumn As New DataGridViewTextBoxColumn()LastColumn.DataPropertyName = "last_name" LastColumn.HeaderText = "Last Name" LastColumn.Width = 100
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 102/186
102
Klik ganda button cancel dan ketikkan sintaks berikut ; me.close. selanjutnya buatlah Event
Handler H_User_FormClosing dan ketikkan sintaks berikut : Operate=Nothing. Lalu klik
ganda H_User (Event Handler H_User_Load), dan ketikkan sintaks dibawah ini.
Sintaks diatas berfungsi untuk menampilkan data kedalam DgView yang sebelumnya disimpan
terlebih dahulu kedalam Generic List (of User). Lalu buatlah event Handler txtSearch_KeyUp
dan ketikkan sintaks berikut :
Sintaks ini menggunakan LINQ to Object yang berfungsi untuk mencari data pada List (Of
User), dan hasil perncarian tersebut akan ditampilkan pada DgView. Dan terakhir buat event
handler DgView_CellDoubleClick dan ketikkan sintaks berikut.
Dim ActColumn As New DataGridViewTextBoxColumn()ActColumn.DataPropertyName = "actived" ActColumn.HeaderText = "Actived" ActColumn.Width = 150
DgView.Columns.Add(UserColumn)
DgView.Columns.Add(FirstColumn)DgView.Columns.Add(LastColumn)DgView.Columns.Add(ActColumn)
End Sub
Try
Dim columns As String() = {"username", "first_name", "last_name","actived"}
DVDModule.FillListWithoutParam(UserList, columns, "usp_SelectUserList", _GetType(Entity.Users))
FormatGridWithBothTableAndColumnStyles()DgView.DataSource = UserListtxtSearch.Focus()
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "DVD Rental")
End Try
Try Dim query = (From a In UserList Where a.Username.Contains(txtSearch.Text)
Select a).ToListDgView.DataSource = query
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "DVD Rental")
End Tr
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 103/186
103
Operate = Nothing Me.Close()
Operate = "Edit" Dim frm_HUser As New H_User frm_HUser.ShowDialog()txtUsername.Text = frm_HUser.txtSearch.Text
Try If txtUsername.Text = "" Then
MsgBox("Masukkan Username", MsgBoxStyle.Information, "DVD Rental")Exit Sub
End If Dim RoleList As New List(Of Entity.Users)Dim Coltype As System.Data.OleDb.OleDbType() =
{System.Data.OleDb.OleDbType.VarChar}Dim FieldName As String() = {"@username"}Dim Size As Integer() = {15}Dim Value As String() = {txtUsername.Text}Dim columns As String() = {"username"}DVDModule.FillListWithParam(RoleList, columns, "usp_selectlogin", _
GetType(Entity.Users),FieldName, _
Coltype, Size, Value)If RoleList.Count = 0 Then MsgBox("Username Salah")Exit Sub
End If
Sintaks ini berfungsi jika user melakukan klik ganda pada cell di DgView maka, untuk baris
yang di klik akan di ambil datanya untuk kolom pertama. Dan langsung menutup form ini.
Selanjutnya aktifkan form F_USerBox, dan masuk ke jendela Code, klik ganda button Cancel
dan ketikkan sintaks berikut :
Lalu klik ganda button Search dan ketikkan sintaks dibawah ini.
Sintaks ini berfungsi untuk menampilkan Form H_User yang telah kita buat sebelumnya. Dan
klik ganda button OK, lalu ketikkan sintaks berikut :
If Operate <> Nothing Then Dim row As DataGridViewRow = DgView.Rows(e.RowIndex)txtSearch.Text = row.Cells(0).ValueOperate = Nothing Me.Close()
End If
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 104/186
104
Dim frm_User As New F_User frm_User.txtUser.Text = txtUsername.Textfrm_User.ShowDialog()Me.Close()
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "DVD Rental")
End Try
Sintaks diatas berfungsi untuk memvalidasi username yang dimasukkan kedalam textbox, jika
username tidak ada pada table maka akan ada pesan error. Jika username yang dimasukkan benar
maka F_User akan ditampilkan berserta data-data user yang dicari. Lalu buka F_Main (Main
Menu) pada Menu Item Utilty > Users > Edit ketikkan sintaks berikut :
Utility > User > User List lalu klik ganda dan ketikkan sintaks berikut :
Jalankan program dan klik menu utility > User > Edit, lalu masukkan username, jika tidak
mengetahui username yang dicari tekan tombol search, maka daftar pengguna akan tampil. Dan
selanjutnya ubah data user pada form User.
Gambar 4.30
Try Dim frm_UserBox As New F_UserBox frm_UserBox.ShowDialog()
Catch ex As Exception
End Try
Try Dim frm_HUser As New H_User frm_HUser.ShowDialog()
Catch ex As Exception MsgBox(ex.Message)
End Try
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 105/186
105
Gambar 4.31
Gambar 4.32
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 106/186
106
4.3 Membuat Form Group
Setelah selesai membuat beberapa form untuk management user sekarang kita lanjutkan
membuat form untuk pengolahan data Group. Penulis akan menjelaskan kegunaan dari table
group ini. Table ini digunakan untuk pengelompokan DVD baik biaya Rental, biaya
kelambatan atau jumlah hari Rental untuk suatu DVD, jadi idak kita atur semua itu pada data
DVD. Terlebih dahulu buatlah table Group dengan nama T_Group dan strukturnya sebagai
berikut :
Field Name Data Type Field size Primary Key
ids AutoNumber
group_id Text 4 PK (*)
Group_name Text 25
days Number Integer
price Currency
fee Currency
Tambahkan sebuah form ubah properties nya seperti dibawah
Name F_GroupShowInTaksbar False
Text Add/Edit Group
StartPosition CenterScreen
MaximizedBox False
MinimizedBox False
FormBorderStyle FixedSingle
BackColor White
Selanjutnya tambahkan control 5 textbox, 5 label, 6 button dan 1groupbox dan ubah properties
seperti dibawah.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 107/186
107
Textbox1
Name txtID
Enabled False
Textbox2
Name txtName
TextBox3
Name txtDays
TextBox4
Name txtPrice
TextBox5
Name txtFee
GroupBox1
Name GbDetail
Text Item Detail
Button1
Name btnSave
Text &Save
Button2
Name btnCancel
Text &Cancel
Button3
Name btnAdd
Text &Add
Button4
Name btnEdit
Text &Edit
Button5
Name btnDelete
Text &Delete
Button6
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 108/186
108
Namespace EntityPublic Class Group
Private m_groupid As String
Public Property Group_ID() As String Get
Return m_groupidEnd Get Set(ByVal value As String)
If value = "" Then Throw New Exception("Masukkan Group ID")
End If m_groupid = value
End Set End Property
Private m_groupname As String Public Property Group_Name() As String
Get Return m_groupname
End Get Set(ByVal value As String)
If value = "" Then Throw New Exception("Masukkan Group Name")
End If m_groupname = value
End Set End Property
Name btnFind
Text &Find
Dan atur posisi nya seperti gambar dibawah.
Gambar 4.33
Tambahkan Class pada folder entity dan ubah namanya menjadi Group, lalu ketikkan sintaks
berikut pada Class Group.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 109/186
109
<Extension()>Sub Add(ByVal GroupList As List(Of Entity.Group), ByVal groupid As String, ByVal
groupname As String,ByVal days As Int16, ByVal price As Decimal, ByVal fee As Decimal)GroupList.Add(New Entity.Group With {.Group_ID = groupid, .Group_Name = groupname,
.Days = days,.Price = price, .Fee = fee})
End Sub
Lalu buka DVDModule dan ketikkan sintaks dibawah pada Region Extension Method yang kita
buat sebelumnya.
Lalu buatlah 5 buah query pada database dengan nama masing sebagai berikut :
usp_SelectGroupTop1, usp_selectgroup, usp_InsertGroup, usp_UpdateGroup,
usp_DeleteGroup
Dengan masing-masing sintaks SQL seperti dibawah.
SELECT TOP 1 t_group.*
FROM t_group
ORDER BY t_group.ids DESC;
SELECT t_group.*
FROM t_group
ORDER BY t_group.ids;
INSERT INTO T_Group ( group_id, group_name, days, price, fee )
VALUES ([@group_id], [@group_name], [@days], [@price], [@fee]);
UPDATE t_group SET t_group.group_name = [@group_name], t_group.days = [@days], t_group.price =
[@price], t_group.fee = [@fee]
WHERE (((t_group.group_id)=[@group_id]));
DELETE *
FROM t_group
WHERE (((t_group.group_id)=[@grup_id]));
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 110/186
110
Public Function GroupInsert(ByVal Group As Entity.Group) As OleDbDataReader Try
Using connect As New OleDbConnection(My.Settings.DVDConnection)Using mycommand As OleDbCommand = New OleDbCommand("usp_InsertGroup",
connect)mycommand.CommandType = CommandType.StoredProcedure
Dim parameterGroupID As OleDbParameter = New OleDbParameter("@group_id", OleDbType.VarChar, 4)
parameterGroupID.Value = Group.Group_ID
Dim parameterGroupName As OleDbParameter = New OleDbParameter("@group_name", OleDbType.VarChar, 25)
parameterGroupName.Value = Group.Group_Name
Dim parameterDays As OleDbParameter = New OleDbParameter("@Days",OleDbType.Integer)
parameterDays.Value = Group.Days
Dim parameterPrice As OleDbParameter = New OleDbParameter("@Price", OleDbType.Currency)
parameterPrice.Value = Group.Price
Dim parameterFee As OleDbParameter = New OleDbParameter("@fee",OleDbType.Currency)
parameterFee.Value = Group.Fee
With mycommand.Parameters
.Add(parameterGroupID)
.Add(parameterGroupName)
.Add(parameterDays)
.Add(parameterPrice)
.Add(parameterFee)End With connect.Open()Using result As OleDbDataReader =
mycommand.ExecuteReader(CommandBehavior.CloseConnection)Return result
End Using
End Using End Using
Catch SqlEx As OleDbException Throw New Exception(SqlEx.Message.ToString())
End Try
End Function
Serta tambahkan class pada folder AccessData dan ubah namanya menjadi AccessGroup, lalu
import terlebih dahulu Name Space OleDB (Imports System.Data.OleDb) , selanjutnya buat
NameSpace AccessData, dan ketikkan sintaks dibawah didalam NameSpace AccessData
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 111/186
111
Fungsi diatas digunakan untuk menambah data group, dengan menggunakan query
usp_InsertGroup. Selanjutnya ketikkan sintaks untuk mengubah data group seperti dibawah.
Public Function GroupUpdate(ByVal Group As Entity.Group) As OleDbDataReader Try
Using connect As New OleDbConnection(My.Settings.DVDConnection)Using mycommand As OleDbCommand = New OleDbCommand("usp_UpdateGroup",connect)
mycommand.CommandType = CommandType.StoredProcedure
Dim parameterGroupName As OleDbParameter = New OleDbParameter("@group_name", OleDbType.VarChar, 25)
parameterGroupName.Value = Group.Group_Name
Dim parameterDays As OleDbParameter = New OleDbParameter("@Days",OleDbType.Integer)
parameterDays.Value = Group.Days
Dim parameterPrice As OleDbParameter = New
OleDbParameter("@Price", OleDbType.Currency)parameterPrice.Value = Group.Price
Dim parameterFee As OleDbParameter = New OleDbParameter("@fee",OleDbType.Currency)
parameterFee.Value = Group.Fee
Dim parameterGroupID As OleDbParameter = New OleDbParameter("@group_id", OleDbType.VarChar, 4)
parameterGroupID.Value = Group.Group_ID
With mycommand.Parameters.Add(parameterGroupName).Add(parameterDays).Add(parameterPrice).Add(parameterFee).Add(parameterGroupID)
End With connect.Open()Using result As OleDbDataReader =
mycommand.ExecuteReader(CommandBehavior.CloseConnection)Return result
End Using
End Using End Using
Catch SqlEx As OleDbException Throw New Exception(SqlEx.Message.ToString())
End Try
End Function
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 112/186
112
Dan terakhir tambah kan sintaks untuk menghapus data group pada table.
Kembali pada F_Group, buat variable class seperti dibawah
#Region "Deklarasi" Public Proses As String Protected AccessGroup As New AccessData.AccessGroup Dim columns As String() = {}
#End Region
Selanjutnya kita akan membuat procedure untuk mengahapus data pada form dan disable inputan
pada form, seperti dibawah.
Public Function GroupDelete(ByVal Group As Entity.Group) As OleDbDataReader Try
Using connect As New OleDbConnection(My.Settings.DVDConnection)Using mycommand As OleDbCommand = New
OleDbCommand("usp_DeleteGroup", connect)mycommand.CommandType = CommandType.StoredProcedure
Dim parameterGroupID As OleDbParameter = New OleDbParameter("@group_id", OleDbType.VarChar, 4)
parameterGroupID.Value = Group.Group_ID
With mycommand.Parameters
.Add(parameterGroupID)
End With connect.Open()Using result As OleDbDataReader =
mycommand.ExecuteReader(CommandBehavior.CloseConnection)Return result
End Using
End Using End Using
Catch SqlEx As OleDbException Throw New Exception(SqlEx.Message.ToString())
End Try
End Function
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 113/186
113
Pada procedure ini kita telah membuat 1 prosedure untuk 3 keperluan, pertama untuk merefresh
form, disable inputan dan terakhir adalah enabled inputan. Sesuai inputan yang kita masukkan
pada procedure. Selanjutnya adalah membuat fungsi penomoran otomatis seperti dibawah.
Pada fungsi diatas, pertama-tama adalah mencari nilai record awal dengan menggunakan sorting
descending pada query yang kita buat sebelumnya, dan disimpan didalam List. Jika list kosong
(table kosong), maka secara otomatis nilai kembaliannya adalah “GR01” sedangkan jika ada
maka akan dimabil nilai terakhir dengan menggunakan fungsi Right, lalu di tambah 1.
Selanjutnya pada event handler txtPrice_Keypress ubah sintaks nya seperti berikut :
Private Sub Aktif_Inputan(ByVal Bol As Boolean, ByVal pros As String)Dim C As Control
For Each C In Me.ControlsIf C.HasChildren Then
For Each hChild As Control In C.ControlsIf TypeOf hChild Is TextBox AndAlso UCase(hChild.Name) <>
UCase("txtID") Then hChild.Enabled = BolIf UCase(pros) = "ADD" AndAlso UCase(hChild.Name) <>
UCase("txtname") Then hChild.Text = "0"
End If End If If TypeOf hChild Is TextBox AndAlso UCase(pros) = UCase("clear") Then
hChild.Text = "" End If
Next ElseIf TypeOf C Is Button AndAlso UCase(C.Name) = UCase("btnsave") Then
C.Enabled = BolEnd If
Next
End Sub
Private Function IDNo() As String Dim GroupList As New List(Of Entity.Group)
DVDModule.FillListWithoutParam(GroupList, columns, "usp_SelectGroupTop1",
GetType(Entity.Group))If GroupList.Count = 0 Then txtID.Text = "GR01"
Else txtID.Text = "GR" &
Format(Val(CInt(Microsoft.VisualBasic.Right(GroupList.First.Group_ID,
GroupList.First.Group_ID.Length - 2)) + 1), "00")End If Return txtID.Text
End Function
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 114/186
114
Try Aktif_Inputan(False, "")
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "DVD Rental")
End Try
Fungsi diatas di maksudkan agar karakter yang diketikkan hanya boleh/bisa dari 0-9, selebihnya
tidak bisa.
Dan buat event handler txtFee_Keyup lalu ketikkan sintaks berikut :
Sedangkan sintaks di atas berfungsi, jika pada txtFee (textbox terakhir dari form) pengguna
menekan Enter maka, proses pada button save agar dijalankan, sedangkan jika Esc maka button
cancel akan dijalankan, yang akan kita buat proses nya dibawah.
Klik ganda F_Group dan ketikkan sintak dibawah,
Klik ganda button Cancel dan ketikkan sintaks dibawah :
Button cancel berfungsi untuk merefresh form dan mendisabled seluruh textbox pada form,
dimana menggunakan procedure “Aktif_Inputan”.
Lalu klik Button Add, yang berfungsi untuk melakukan penambahan data dengan sintaks seperti
dibawah.
Private Sub txtPrice_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtPrice.KeyPress, txtDays.KeyPress,txtFee.KeyPressTry
If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack) Then e.Handled() = True
End If Catch ex As Exception
MsgBox(ex.Message)End Try
End Sub
If e.KeyCode = Keys.Enter Then btnSave.PerformClick()
ElseIf e.KeyCode = Keys.Escape Then btnCancel.PerformClick()
End If
Proses = Nothing Aktif_Inputan(False, "clear")
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 115/186
115
Try Proses = "add" Aktif_Inputan(True, Proses)IDNo()txtName.Focus()
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "DVD Rental")
End Tr
Pada saat button ini di klik maka, form akan mengaktifkan seluruh textbox, dan menampilkan
GroupID secara otomatis dan kursor akan focus pada txtName. Dan selanjutnya adalah membuat
proses simpan, klik ganda button Save lalu ketikkan sintaks berikut :
Pada button save ini menyimpan 2 proses yaitu Save dan Update tergantung pada variable
“Process” yang ada, apakah “ADD” atau “EDIT”.
Buka F_Main (Main Menu) pada menu strip Data > Group kemudian klik ganda ketikkan sintaks
dibawah.
Dan jalankan program dan buka form Group, kemudian coba masukkan data pada form Group.
Dengan cara menekan tombol Add terlebih dahulu setelah itu tekan tombol Save.
Try Dim Group As New Entity.Group With {.Group_ID = txtID.Text,.Group_Name = txtName.Text, .Days = txtDays.Text, .Price = txtPrice.Text,.Fee = txtFee.Text}Dim mYes_No As String = MsgBox("Apakah kamu ingin menyimpan data ?", vbYesNo,
"DVD Rental")
If mYes_No = vbYes Then If UCase(Proses) = "ADD" Then AccessGroup.GroupInsert(Group)
ElseIf UCase(Proses) = "EDIT" Then AccessGroup.GroupUpdate(Group)
End If btnCancel.PerformClick()
End If Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information, "DVD Rental")End Try
Try Dim frm_group As New F_Group frm_group.ShowDialog()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information, "DVD Rental")End Try
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 116/186
116
Gambar 4.34
Lalu bagaimana cara nya untuk mengubah dan menghapus data? Pada form ini untuk
mengubah/menghapus data terlebih dahulu pengguna harus mencari data terlebih dahulu, dengan
menekan tombol Find, dan akan tampil sebuah form (List dari data group). Dan pengguna dapat
memilih group mana yang mau di ubah/hapus dengan klik ganda pada cell datagridview. Untuk
lebih jelas nya ikuti langkah-langkah dibawah.
Tambahkan sebuah form pada project kita dan tambahkan DataGridView lalu ganti properties
nya seperti dibawah ;
Name H_Group
ShowInTaksbar False
Text Group List
StartPosition CenterScreen
MaximizedBox False
MinimizedBox False
FormBorderStyle FixedSingle
BackColor White
DataGridView
Name DgView
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 117/186
117
Private Sub FormatGridWithBothTableAndColumnStyles()Me.DgView.DefaultCellStyle.ForeColor = Color.NavyMe.DgView.RowsDefaultCellStyle.BackColor = Color.AliceBlueMe.DgView.GridColor = Color.BlueMe.DgView.BorderStyle = BorderStyle.Fixed3DMe.DgView.RowHeadersBorderStyle = BorderStyle.Fixed3D
DgView.AutoGenerateColumns = False
Dim IDColumn As New DataGridViewTextBoxColumn()IDColumn.DataPropertyName = "group_id" IDColumn.HeaderText = "Group ID" IDColumn.Width = 80
Dim NameColumn As New DataGridViewTextBoxColumn()NameColumn.DataPropertyName = "group_name" NameColumn.HeaderText = "Name" NameColumn.Width = 180
Dim DayColumn As New DataGridViewTextBoxColumn()DayColumn.DataPropertyName = "days" DayColumn.HeaderText = "Days" DayColumn.Width = 80
Dim PriceColumn As New DataGridViewTextBoxColumn()PriceColumn.DataPropertyName = "price" PriceColumn.HeaderText = "Price" PriceColumn.Width = 80
Dim FeeColumn As New DataGridViewTextBoxColumn()FeeColumn.DataPropertyName = "fee" FeeColumn.HeaderText = "Fee" FeeColumn.Width = 150
DgView.Columns.Add(IDColumn)DgView.Columns.Add(NameColumn)DgView.Columns.Add(DayColumn)DgView.Columns.Add(PriceColumn)
DgView.Columns.Add(FeeColumn)End Sub
Ketik variable Class pada form seperti dibawah
Public ID As String Dim GroupList As New List(Of Entity.Group)
Selanjunya adalah membuat sebuah procedure untuk format DataGridView seperti dibawah :
Lalu klik ganda form, dan ketikkan sintaks seperti dibawah.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 118/186
118
Sintaks diatas befungsi untuk menampilkan data Group pada DgView dengan menggunakan
Procedure yang kita buat pada module. Dan terakhir adalah dengan mengetikkan sintaks dibawah
pada event handler DgView_CellDoubleClick dimana sintaks dibawah berfungsi untuk mengambil
groupid pada DgView dan disimpan pada variable ID yang telah kita buat sebelumnya lalu
menutup form ini.
Kembali pada form F_Group klik ganda pada button Find.
Try
Dim columns As String() = {"group_id", "group_name", "days", "price", "fee"}DVDModule.FillListWithoutParam(GroupList, columns, "usp_SelectGroup", _
GetType(Entity.Group))
FormatGridWithBothTableAndColumnStyles()
DgView.DataSource = GroupListCatch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information, "DVD Rental")End Try
End Sub
Dim row As DataGridViewRow = DgView.Rows(e.RowIndex)ID = row.Cells(0).ValueMe.Close()
Try Proses = "find" Dim frm_HGroup As New H_Group
frm_HGroup.ShowDialog()txtID.Text = frm_HGroup.IDIf txtID.Text <> "" Then
Dim GroupList As New List(Of Entity.Group)DVDModule.FillListWithoutParam(GroupList, columns,
"usp_selectgroup", _
GetType(Entity.Group))
Dim group = (From grp In GroupListWhere grp.Group_ID.Equals(txtID.Text)).Single
txtName.Text = group.Group_Name
txtDays.Text = group.DaystxtFee.Text = group.FeetxtPrice.Text = group.Price
End If
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "DVD Rental")
End Try
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 119/186
119
Button ini berfungsi untuk menampilkan form H_Group yang kita buat sebelumnya, selanjutnya
dengan menggunakan variable ID pada form H_Group, program akan menampilkan data group
dengan menggunakan criteria group_id.
Lalu klik ganda button Edit dan ketikkan sintaks dibawah.
Jika kita mengklik button edit sebelum mencari data terlebih dahulu maka akan ada pesan yang
tampil, agar kita mencari data terlebih dahulu.
Dan terakhir adalah dengan mengetik sintaks dibawah, pada event hander btnDelete_Click
Setelah mencari data maka dengan menekan tombol Delete data pada table Group akan di hapus
dengan kriteria Group_ID yang dipilih.
Gambar 4.35
If UCase(Proses) <> UCase("find") Then MsgBox("Cari data terlebih dahulu", MsgBoxStyle.Information, "DVD Rental")Exit Sub
End If Proses = "edit" Aktif_Inputan(True, "")
If UCase(Proses) <> UCase("find") Then MsgBox("Cari data terlebih dahulu", MsgBoxStyle.Information, "DVD Rental")Exit Sub
End If Dim Group As New Entity.Group With {.Group_ID = txtID.Text}Dim mYes_No As String = MsgBox("Apakah kamu ingin menghapus data ?", vbYesNo,
"DVD Rental")If mYes_No = vbYes Then
AccessGroup.GroupDelete(Group)btnCancel.PerformClick()
End If
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 120/186
120
4.4 Membuat Form Genre
Selanjutnya adalah membuat form Genre. Untuk pertama kali adalah dengan membuat table
Genre. Table ini digunakan sebagai jenis dari pada DVD yang disewakan. Contoh film
Action, Drama, horror dan sebagainya. Terlebih dahulu buatlah table Genre dengan nama
T_Genre dan strukturnya sebagai berikut
Field Name Data Type Field size Primary Key
ids AutoNumber
genre_id Text 4 PK (*)
Genre_name Text 25
Tambahkan sebuah form ubah, dan ubah properties nya seperti dibawah
Name F_Genre
ShowInTaksbar False
Text Add/Edit Genre
StartPosition CenterScreen
MaximizedBox False
MinimizedBox False
FormBorderStyle FixedSingle
BackColor White
Selanjutnya tambahkan control 2 textbox, 2 label, 6 button dan 1groupbox dan ubah properties
seperti dibawah.
Textbox1
Name txtID
Enabled False
Textbox2
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 121/186
121
Name txtName
GroupBox1
Name GbDetail
Text Item Detail
Button1
Name btnSave
Text &Save
Button2
Name btnCancel
Text &Cancel
Button3
Name btnAdd
Text &Add
Button4
Name btnEdit
Text &Edit
Button5
Name btnDelete
Text &Delete
Button6
Name btnFind
Text &Find
Dan atur posisi nya seperti gambar dibawah.
Gambar 4.36
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 122/186
122
Namespace EntityPublic Class Genre
Private m_genreid As String
Public Property Genre_ID() As String Get
Return m_genreidEnd Get Set(ByVal value As String)
If value = "" Then Throw New Exception("Masukkan Genre ID")
End If m_genreid = value
End Set End Property
Public Property Genre_Name() As String
End Class End Namespace
<Extension()>
Sub Add(ByVal GenreList As List(Of Entity.Genre), ByVal genreid As String, ByVal genrename As String)
GenreList.Add(New Entity.Genre With {.Genre_ID = genreid, .Genre_Name =
genrename})End Sub
Tambahkan Class pada folder entity dan ubah namanya menjadi Genre, lalu ketikkan sintaks
berikut pada Class Genre.
Lalu buka DVDModule dan ketikkan sintaks dibawah pada Region Extension Method yang kita
buat sebelumnya.
Lalu buatlah 5 buah query pada database dengan nama masing sebagai berikut :
usp_SelectGenreTop1, usp_selectgenre, usp_InsertGenre, usp_UpdateGenre,
usp_DeleteGenre
Dengan masing-masing sintaks SQL seperti dibawah.
SELECT TOP 1 t_genre.genre_id, t_genre.genre_name
FROM t_genre
ORDER BY t_genre.ids DESC;
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 123/186
123
Serta tambahkan class pada folder AccessData dan ubah namanya menjadi AccessGenre, lalu
import terlebih dahulu Name Space OleDB (Imports System.Data.OleDb) , selanjutnya buat
NameSpace AccessData, dan ketikkan sintaks dibawah didalam NameSpace AccessData
INSERT INTO T_Genre ( genre_id, genre_name )
VALUES ([@genre_id], [@genre_name]);
DELETE *
FROM t_genre
WHERE (((t_genre.genre_id)=[@GenreID]));
UPDATE t_genre SET t_genre.genre_name = [@genre_name]
WHERE (((t_genre.genre_id)=[@genre_id]));
SELECT t_genre.genre_id, t_genre.genre_name
FROM t_genre
ORDER BY t_genre.genre_id, t_genre.ids;
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 124/186
124
Public Function GenreInsert(ByVal Genre As Entity.Genre) As OleDbDataReader Try
Using connect As New OleDbConnection(My.Settings.DVDConnection)Using mycommand As OleDbCommand = New OleDbCommand("usp_InsertGenre",
connect)mycommand.CommandType = CommandType.StoredProcedure
Dim parameterGenreID As OleDbParameter = New OleDbParameter("@group_id", OleDbType.VarChar, 4)
parameterGenreID.Value = Genre.Genre_ID
Dim parameterGenreName As OleDbParameter = New OleDbParameter("@group_name", OleDbType.VarChar, 25)
parameterGenreName.Value = Genre.Genre_Name
With mycommand.Parameters.Add(parameterGenreID).Add(parameterGenreName)
End With connect.Open()Using result As OleDbDataReader =
mycommand.ExecuteReader(CommandBehavior.CloseConnection)Return result
End Using
End Using End Using
Catch SqlEx As OleDbException Throw New Exception(SqlEx.Message.ToString())
End Try
End Function
Fungsi diatas digunakan untuk menambah data genre, dengan menggunakan query
usp_Insertgenre. Selanjutnya ketikkan sintaks untuk mengubah data genre seperti dibawah.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 125/186
125
Public Function GenreUpdate(ByVal Genre As Entity.Genre) As OleDbDataReader Try
Using connect As New OleDbConnection(My.Settings.DVDConnection)Using mycommand As OleDbCommand = New OleDbCommand("usp_UpdateGenre",
connect)mycommand.CommandType = CommandType.StoredProcedure
Dim parameterGenreName As OleDbParameter = New OleDbParameter("@group_name", OleDbType.VarChar, 25)
parameterGenreName.Value = Genre.Genre_Name
Dim parameterGenreID As OleDbParameter = New OleDbParameter("@group_id", OleDbType.VarChar, 4)
parameterGenreID.Value = Genre.Genre_ID
With mycommand.Parameters.Add(parameterGenreName).Add(parameterGenreID)
End With
connect.Open()Using result As OleDbDataReader =mycommand.ExecuteReader(CommandBehavior.CloseConnection)
Return resultEnd Using
End Using End Using
Catch SqlEx As OleDbException Throw New Exception(SqlEx.Message.ToString())
End Try
End Function
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 126/186
126
Dan terakhir tambah kan sintaks untuk menghapus data genre pada table.
Untuk form ini penulis tidak akan menjelaskan secara detail sampai habis, penulis berharap para
pembaca dapat melanjutkan untuk menyelesaikan form ini. Dikarenakan sintaks yang digunakan
form ini dan form group hampir sama. Jika mengalami kesulitan dapat melihat contoh project
yang disertakan pada buku ini.
Gambar 4.37
Public Function GenreDelete(ByVal Genre As Entity.Genre) As OleDbDataReader Try
Using connect As New OleDbConnection(My.Settings.DVDConnection)Using mycommand As OleDbCommand = New
OleDbCommand("usp_DeleteGenre", connect)mycommand.CommandType = CommandType.StoredProcedure
Dim parameterGenreID As OleDbParameter = New OleDbParameter("@group_id", OleDbType.VarChar, 4)
parameterGenreID.Value = Genre.Genre_ID
With mycommand.Parameters.Add(parameterGenreID)
End With connect.Open()Using result As OleDbDataReader =
mycommand.ExecuteReader(CommandBehavior.CloseConnection)Return result
End Using End Using
End Using
Catch SqlEx As OleDbException Throw New Exception(SqlEx.Message.ToString())
End Try
End Function
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 127/186
127
Gambar 4.38
4.5 Membuat Form Customer
Form customer ini berfungsi untuk memanipulasi data customer, dimana digunakan untuk
menyimpan data customer. Untuk bisa merental DVD kita harus meregistrasi
peminjam/customer terlebih dahulu. Sebelumnya adalah dengan membuat table customer
dengan nama T_Cust seperti dibawah.
Field Name Data Type Field size Primary Key
Id_cust AutoNumber
refer_cust Text 8 PK (*)
first_name Text 50
last_name Text 50
telp Text 15
email Text 50
join_date Date/Time
address Text 255
picture Text 50
notes Text 255
status Yes/No
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 128/186
128
Tambahkan sebuah form lalu ganti properties seperti dibawah :
Name F_Customer
ShowInTaksbar False
Text Add/Edit Customer
StartPosition CenterScreen
MaximizedBox False
MinimizedBox False
FormBorderStyle FixedSingle
BackColor White
Selanjutnya tambahkan 8 label, 8 textbox, 1 datetimepicker, 1 checkbox, 1 picturebox, 1
groupbox 1 buah panel, 1 OpenFileDialog dan 4 buah button. Lalu gantilah properties control-control diatas seperti berikut :
Textbox1
Name txtReferCust
Enabled False
Textbox2
Name txtFirst
TextBox3
Name txtLast
TextBox4
Name txtPhone
TextBox5
Name txtEmail
Textbox6
Name txtAddressMultiLine True
TextBox7
Name txtNotes
MultiLine True
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 129/186
129
TextBox8
Name txtPath
ReadOnly True
GroupBox1
Name GbDetail
Text Item Detail
Button1
Name btnSave
Text &Save
Size 84, 38
Button2
Name btnCancel
Text &Cancel
Size 84, 38
Button3
Name btnEdit
Text Edit Picture
Button4
Name btnCancelPic
Text Cancel
DateTimePicker1
Name DtDate
Custom MM/dd/yyyy
Format Custom
CheckBox1
Name cbStatus
Text Status
PictureBox1
Name PbImage
OpenFileDialog1
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 130/186
130
Namespace EntityPublic Class Customer
Private m_refercust As String Public Property Refer_Cust() As String
Get Return m_refercust
End Get Set(ByVal value As String)If value = "" Then
Throw New Exception("Masukkan reference Customer")End If m_refercust = value
End Set End Property
Private m_firstname As String Public Property First_Name() As String
Get Return m_firstname
End Get
Set(ByVal value As String)If value = "" Then
Throw New Exception("Masukkan First Name")End If m_firstname = value
End Set End Property
Name OFD
Dan atur posisi nya seperti gambar dibawah.
Gambar 4.39
Tambahkan Class pada folder entity dan ubah namanya menjadi Customer, lalu ketikkan sintaks
berikut pada Class Customer.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 131/186
131
<Extension()>Sub Add(ByVal CustList As List(Of Entity.Customer), ByVal refer_cust As String, ByVal
firstname As String,ByVal lastname As String, ByVal telp As String, ByVal email As String, ByVal
joindate As Date,ByVal address As String, ByVal picture As String, ByVal notes As String, ByVal
status As String)CustList.Add(New Entity.Customer With {.Refer_Cust = refer_cust, .First_Name =
firstname, .Last_Name = lastname,.Telp = telp, .Email = email, .Join_Date =
joindate, .Address = address,
.Picture = picture, .Notes = notes, .Status= status})
End Sub
Lalu buka DVDModule dan ketikkan sintaks dibawah pada Region Extension Method yang kita
buat sebelumnya.
Lalu buatlah 5 buah query pada database dengan nama masing sebagai berikut :
usp_SelectCustTop1, usp_selectCustbyRefer, usp_SelectCustList, usp_InsertCustomer,
usp_UpdateCustomer
Public Property Last_Name() As String
Public Property Telp() As String
Public Property Email() As String
Public Property Join_Date() As Date
Public Property Address() As String
Public Property Picture() As String
Public Property Notes() As String
Public Property Status() As Boolean
End Class End Namespace
SELECT TOP 1 t_cust.*
FROM t_cust
ORDER BY t_cust.ID_Cus DESC;
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 132/186
132
Serta tambahkan class pada folder AccessData dan ubah namanya menjadi AccessCustomer, lalu
import terlebih dahulu Name Space OleDB (Imports System.Data.OleDb) , selanjutnya buat
NameSpace AccessData, dan ketikkan sintaks dibawah didalam NameSpace AccessData
SELECT t_cust.*
FROM t_cust
WHERE (((t_cust.refer_cust)=[@refer_cust]))
SELECT t_cust.refer_cust, t_cust.address, t_cust.telp, t_cust.email, t_cust.status, t_cust.first_name,
t_cust.last_name
FROM t_cust
INSERT INTO t_cust ( refer_cust, first_name, last_name, telp, email, join_date, address, picture, notes,
status )
VALUES ([@refer_cust], [@first_name], [@last_name], [@telp], [@email], [@join_date], [@address],
[@picture], [@notes], [@status]);ORDER BY t_cust.ID_Cus;ORDER BY t_cust.ID_Cus;
UPDATE t_cust SET t_cust.first_name = [@first_name], t_cust.last_name = [@last_name], t_cust.telp =
[@telp], t_cust.email = [@email], t_cust.join_date = [@join_date], t_cust.address = [@address],
t_cust.picture = [@picture], t_cust.notes = [@notes], t_cust.status = [@status]
WHERE (((t_cust.refer_cust)=[@refer_cust]));
Public Function CustomerInsert(ByVal Customer As Entity.Customer) As OleDbDataReader Try
Using connect As New OleDbConnection(My.Settings.DVDConnection)Using mycommand As OleDbCommand = New OleDbCommand("usp_InsertCustomer",
connect)mycommand.CommandType = CommandType.StoredProcedure
DVDModule.AddParameter("@refer_cust", OleDbType.VarChar, 8,Customer.Refer_Cust, mycommand)
DVDModule.AddParameter("@first_name", OleDbType.VarChar, 50,Customer.First_Name, mycommand)
DVDModule.AddParameter("@last_name", OleDbType.VarChar, 50,Customer.Last_Name, mycommand)
DVDModule.AddParameter("@telp", OleDbType.VarChar, 15,Customer.Telp, mycommand)
DVDModule.AddParameter("@email", OleDbType.VarChar, 50,Customer.Email, mycommand)
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 133/186
133
DVDModule.AddParameter("@join_date", OleDbType.Date, 0,Customer.Join_Date, mycommand)
DVDModule.AddParameter("@address", OleDbType.VarChar, 255,Customer.Address, mycommand)
DVDModule.AddParameter("@picture", OleDbType.VarChar, 50,Customer.Picture, mycommand)
DVDModule.AddParameter("@notes", OleDbType.VarChar, 255,Customer.Notes, mycommand)
DVDModule.AddParameter("@status", OleDbType.Boolean, 0,Customer.Status, mycommand)
connect.Open()Using result As OleDbDataReader =
mycommand.ExecuteReader(CommandBehavior.CloseConnection)Return result
End Using
End Using End Using
Catch SqlEx As OleDbException Throw New Exception(SqlEx.Message.ToString())
End Try
End Function
Jika pembaca jeli pasti merasa ada perbedaan sintaks fungsi Insert ini dengan insert-inset
sebelumnya. Untuk fungsi ini penulis menggunakan procedure AddParameter yang telah kita
buat diawal pada module, seperti dibawah.
Selanjutnya kita akan membuat fungsi untuk mengubah data customer seperti dibawah.
Public Sub AddParameter(ByVal Name As String, ByVal Type As OleDbType, _ByVal Size As Integer, ByVal Value As Object, ByVal myCommand As OleDbCommand)Try
myCommand.Parameters.Add(Name, Type, Size).Value = ValueCatch OleDbExceptionErr As OleDbException
Throw New System.Exception(OleDbExceptionErr.Message, _OleDbExceptionErr.InnerException)
End Try End Sub
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 134/186
134
Selanjutnya kembali pada form Customer, dan buat deklarasi variable class seperti dibawah
Public Function CustomerUpdate(ByVal Customer As Entity.Customer) As OleDbDataReader Try
Using connect As New OleDbConnection(My.Settings.DVDConnection)Using mycommand As OleDbCommand = New
OleDbCommand("usp_UpdateCustomer", connect)mycommand.CommandType = CommandType.StoredProcedure
DVDModule.AddParameter("@first_name", OleDbType.VarChar, 50,Customer.First_Name, mycommand)
DVDModule.AddParameter("@last_name", OleDbType.VarChar, 50,Customer.Last_Name, mycommand)
DVDModule.AddParameter("@telp", OleDbType.VarChar, 15,Customer.Telp, mycommand)
DVDModule.AddParameter("@email", OleDbType.VarChar, 50,Customer.Email, mycommand)
DVDModule.AddParameter("@join_date", OleDbType.Date, 0,Customer.Join_Date, mycommand)
DVDModule.AddParameter("@address", OleDbType.VarChar, 255,Customer.Address, mycommand)
DVDModule.AddParameter("@picture", OleDbType.VarChar, 50,
Customer.Picture, mycommand)DVDModule.AddParameter("@notes", OleDbType.VarChar, 255,
Customer.Notes, mycommand)DVDModule.AddParameter("@status", OleDbType.Boolean, 0,
Customer.Status, mycommand)DVDModule.AddParameter("@refer_cust", OleDbType.VarChar, 8,
Customer.Refer_Cust, mycommand)connect.Open()Using result As OleDbDataReader =
mycommand.ExecuteReader(CommandBehavior.CloseConnection)Return result
End Using
End Using End Using
Catch SqlEx As OleDbException Throw New Exception(SqlEx.Message.ToString())
End Try
End Function
#Region "Deklarasi" Protected AccessCustomer As New AccessData.AccessCustomer Dim filenaming As String Dim columns As String() = {}
#End Region
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 135/186
135
Lalu kita akan membuat procedure CopyImage, yang berfungsi untuk meng-copy gambar
customer kedalam folder aplikasi seperti dibawah :
Dan ketikkan sintaks dibawah (procedure clear form)
Untuk field Refer Customer pada aplikasi ini otomatis mengenerate nilai nya begitu kita
membuka Form (Add), untuk membuat nomor otomatis ketikkan sintaks seperti dibawah :
Private Sub CopyImage()If Trim(txtPath.Text) <> Application.StartupPath & "\" & filenaming Then Dim fFile As New IO.FileInfo(Trim(txtPath.Text))
fFile.CopyTo(Application.StartupPath & "\" & filenaming, True)End If
End Sub
Private Sub Clear()Dim C As Control Dim T As TextBox
For Each C In Me.GbDetail.ControlsIf TypeOf C Is TextBox Then
T = CType(C, TextBox)If UCase(T.Name) <> UCase("txtReferCust") Then
T.Text = "" End If
End If Next txtPath.Text = "" DtDate.Text = NowPbImage.Image = Nothing
End Sub
Private Function ReferNo() As String Dim CustList As New List(Of Entity.Customer)
DVDModule.FillListWithoutParam(CustList, columns, "usp_SelectCustTop1", _GetType(Entity.Customer))
If CustList.Count = 0 Then txtReferCust.Text = "C0000001"
Else txtReferCust.Text = "C" &
Format(Val(CInt(Microsoft.VisualBasic.Right( CustList.First.Refer_Cust, _CustList.First.Refer_Cust.Length - 1)) + 1), "0000000")
End If
Return txtReferCust.Text
End Function
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 136/186
136
Dan selanjutnya adalah membuat procedure View Data Customer seperti dibawah
Klik ganda button Cancel dan ketikkan sintaks dibawah.
Selanjutnya klik ganda button CancelPicture, dimana berfungsi untuk menghapus gambar dari
picture box. Ketikkan sintaks dibawah
Private Sub ViewCustomer()
Dim CustList As New List(Of Entity.Customer)Dim Coltype As System.Data.OleDb.OleDbType() =
{System.Data.OleDb.OleDbType.VarChar}
Dim FieldName As String() = {"@refer_Cust"}Dim Size As Integer() = {8}Dim Value As String() = {txtReferCust.Text}
DVDModule.FillListWithParam(CustList, columns, "usp_selectCustbyRefer", _GetType(Entity.Customer),
FieldName, _Coltype, Size, Value)
txtReferCust.Text = CustList.First.Refer_CusttxtFirst.Text = CustList.First.First_NametxtLast.Text = CustList.First.Last_NameDtDate.Text = CustList.First.Join_DatetxtPhone.Text = CustList.First.TelptxtEmail.Text = CustList.First.EmailtxtAddress.Text = CustList.First.AddresstxtNotes.Text = CustList.First.NotesIf CustList.First.Picture <> "" Then
txtPath.Text = Application.StartupPath & "\" & CustList.First.PictureDim fsImage As New System.IO.FileStream(txtPath.Text, IO.FileMode.Open,
IO.FileAccess.Read)Dim MyImage As Image = Image.FromStream(fsImage)PbImage.Image = MyImagefsImage.Close()fsImage.Dispose()
End If CbStatus.Checked = If(CustList.First.Status = "True", True, False)
End Sub
If Operate = "Add" Then Clear()
Else Operate = Nothing Me.Close()
End If
txtPath.Text = "" PbImage.Image = Nothing
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 137/186
137
Lalu klik ganda button Edit, dan ketikkan sintaks berikut :
Sintaks diatas digunakan untuk menampilkan gambar pada Picture Box. Selanjutnya pada
F_Customer_Load event handler ketikkan sintaks berikut :
Jika Operate = Add, maka secara otomatis aplikasi menggenerate field refer customer no.
Selanjutnya pada event handler F_Customer_Closing ketikkan sintaks berikut Operate =
Nothing
Dan terakhir klik ganda button Save lalu ketikkan sintaks dibawah ini :
Try 'Filter file extension OFD.Filter = "Image Files (*.JPEG, *.jpg, *.bmp, *.gif, *.png)|*.JPEG; *.jpg;
*.bmp; *.gif; *.png" If OFD.ShowDialog = Windows.Forms.DialogResult.OK Then
txtPath.Text = OFD.FileNameDim fsImage As New System.IO.FileStream(txtPath.Text, IO.FileMode.Open,
IO.FileAccess.Read)Dim MyImage As Image = Image.FromStream(fsImage)PbImage.Image = MyImagefsImage.Close()fsImage.Dispose()
End If Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "DVD Rental")End Try
Try PbImage.SizeMode = PictureBoxSizeMode.StretchImageIf Operate = "Add" Then
ReferNo()CbStatus.Checked = True CbStatus.Visible = False
Else CbStatus.Visible = True ViewCustomer()
End If Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "DVD Rental")
End Try
Try filenaming = "" If txtPath.Text <> "" Then filenaming = txtReferCust.Text &
(Mid(txtPath.Text, InStrRev(txtPath.Text, "."), Len(txtPath.Text)))Dim Customer As New Entity.Customer With {.Refer_Cust = txtReferCust.Text,.First_Name = txtFirst.Text, .Last_Name = txtLast.Text, .Telp =
txtPhone.Text,.Email = txtEmail.Text, .Join_Date = DtDate.Text,.Address = txtAddress.Text, .Picture = filenaming,.Notes = txtNotes.Text, .Status = If(CbStatus.Checked = True, True,
False)}
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 138/186
138
Selanjutnya buka F_Main (Main Menu), menu strip Data >Customer > Add, ketikkan sintaks
dibawah.
Dan jalankan program, buka form customer dan masukkan data seperti pada gambar dibawah.
Gambar 4.40
Dim mYes_No As String = MsgBox("Apakah kamu ingin menyimpan data ?", vbYesNo,"DVD Rental")
If mYes_No = vbYes Then If Operate = "Add" Then
AccessCustomer.CustomerInsert(Customer)If txtPath.Text <> "" Then CopyImage()Clear()ReferNo()
Else AccessCustomer.CustomerUpdate(Customer)If txtPath.Text <> "" Then CopyImage()MsgBox("Update Selesai", MsgBoxStyle.Information, "DVD Rental")
End If End If
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "DVD Rental")
End Try
Operate = "Add" Dim frm_cust As New F_Customer frm_cust.ShowDialog()Operate = Nothing
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 139/186
139
Untuk mengubah data customer, penulis tidak akan menjelaskan nya lagi, para pembaca bisa
melihat dari Form User, bagaimana logic untuk mengubah data. Yaitu dengan membuat form
Customer Box dan Customer List. Untuk lebih jelasnya bisa melihat project yang disertakan
pada buku ini.
Gambar 4.41
Gambar 4.42
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 140/186
140
4.6 Membuat Form DVD
Form ini digunakan untuk memanipulasi data DVD yang ada pada rental, banyak table yang
berelasi dengan table DVD, seperti table T_Group dan T_Genre. Oleh karena itu setelah
membuat table DVD (T_DVD). Pertama-tama yang kita lakukan adalah dengan membuat
table T_DVD.
Field Name Data Type Field size Primary Key
id_cust AutoNumber
refer_no Text 7 PK (*)
title Text 25
genre_id Text 4 FK
director Text 50
release_date Date/Time
language Text 15
runtime Number Integer
group_id Text 4 FK
synopsis Memo
actors Text 255
Picture Text 50
status Yes/No
Masih pada jendela MS Access, buka jendela Relationships (Database Tools > Relationships)
lalu tambahkan table T_DVD, T_Genre dan T_Group. Selanjutnya Drag field genre_id
(t_DVD) pada table t_genre (field genre_id), maka akan muncul tampilan Edit Relationships,
dan klik OK. Lakukan hal yang sama pada field group_id pada table T_DVD dengan table
T_Group (group_id). Maka kita akan memilki diagram relationships seperti dibawah.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 141/186
141
Gambar 4.43
Tambahkan sebuah form lalu ganti properties seperti dibawah :
Name F_DVD
ShowInTaksbar False
Text Add/Edit DVD
StartPosition CenterScreen
MaximizedBox False
MinimizedBox FalseFormBorderStyle FixedSingle
BackColor White
Selanjutnya tambahkan 15 label, 11 textbox, 1 datetimepicker, 2 ComboBox, 1 picturebox, 1
groupbox 1 buah panel, 1 OpenFileDialog dan 4 buah button. Lalu gantilah properties control-
control diatas seperti berikut :
Textbox1
Name txtReferNo
Enabled False
Textbox2
Name txtTitle
TextBox3
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 142/186
142
Name txtDirector
TextBox4
Name txtActor
TextBox5
Name txtLanguage
Textbox6
Name txtRun
TextBox7
Name txtRental
TextBox8
Name txtPrice
TextBox9
Name txtFee
TextBox10
Name txtSinopsis
Multiline True
TextBox10
Name txtRental
TextBox11
Name txtPath
ReadOnly True
GroupBox1
Name GbDetail
Text Item Detail
Button1
Name btnSave
Text &Save
Size 84, 38
Button2
Name btnCancel
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 143/186
143
Text &Cancel
Size 84, 38
Button3
Name btnEdit
Text Edit Picture
Button4
Name btnCancelPic
Text Cancel
DateTimePicker1
Name DtDate
Custom MM/dd/yyyy
Format Custom
ComboBox1
Name CbGroup
DropDownStyle DropDownList
ComboBox2
Name CbGenre
DropDownStyle DropDownList
PictureBox1
Name PbImage
OpenFileDialog1
Name OFD
Dan atur posisi nya seperti gambar dibawah.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 144/186
144
Namespace EntityPublic Class DVD
Private m_referno As String Public Property Refer_No() As String
Get Return m_referno
End Get
Set(ByVal value As String)If value = "" Then
Throw New Exception("Masukkan reference no")End If m_referno = value
End Set End Property
Gambar 4.44
Tambahkan Class pada folder entity dan ubah namanya menjadi Customer, lalu ketikkan sintaks
berikut pada Class Customer.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 145/186
145
Private m_title As String Public Property Title() As String
Get Return m_title
End Get Set(ByVal value As String)
If value = "" Then Throw New Exception("Masukkan Title DVD")
End If m_title = value
End Set End Property
Public Property Genre As New Entity.Genre
Public Property Director() As String
Public Property Release_Date() As Date
Public Property Language() As String
Private m_runtime As Int16 Public Property RunTime() As Int16
Get Return m_runtime
End Get Set(ByVal value As Int16)
If value.ToString = "" Then Throw New Exception("Masukkan Nilai Run Time DVD")
End If m_runtime = value
End Set End Property
Private m_group As New Entity.Group Public Property Group() As New Entity.Group
Public Property Synopsis() As String
Public Property Actors() As String
Public Property Picture() As String
Public Property Status() As Boolean
End Class End Namespace
Lalu buka DVDModule dan ketikkan sintaks dibawah pada Region Extension Method yang kita
buat sebelumnya.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 146/186
146
<Extension()> _Sub Add(ByVal LstDVD As List(Of Entity.DVD), ByVal Refer_No As String,
ByVal Title As String,ByVal Genre_ID As String, ByVal Genre_Name As String, ByVal Director As
String,ByVal Release_Date As Date, ByVal Language As String, ByVal RunTime As Int16,ByVal Group_ID As String, ByVal Group_Name As String, ByVal Days As Int16,ByVal Price As Decimal, ByVal Fee As Decimal, ByVal Synopsis As String,ByVal Actors As String, ByVal Picture As String, ByVal Status As Boolean)
LstDVD.Add(New Entity.DVD With {.Refer_No = Refer_No, .Title = Title,.Genre = New Entity.Genre With {.Genre_ID =
Genre_ID,.Genre_Name = Genre_Name}, .Director = Director,
.Release_Date = Release_Date,.Language = Language, .RunTime = RunTime, .Group =
New Entity.Group With {.Group_ID = Group_ID,.Group_Name = Group_Name, .Days = Days, .Price =
Price, .Fee = Fee}, .Synopsis = Synopsis,.Actors = Actors, .Picture = Picture, .Status =
Status})
End Sub
Lalu buatlah 5 buah query pada database dengan nama masing sebagai berikut :
usp_selectDVDtop1, usp_InsertDVD, usp_UpdateDVD, usp_UpdateDVDStatus,
usp_selectDVDbyRefer, usp_SelectDVDList
SELECT TOP 1 t_dvd.*
FROM t_dvd
ORDER BY t_dvd.id DESC;
INSERT INTO t_dvd ( refer_no, title, genre_id, director, release_date, [language], runtime, group_id,
synopsis, actors, picture, status )
VALUES ([@refer_no], [@title], [@genre_id], [@director], [@release_date], [@language], [@runtime],
[@group_id], [@synopsis], [@actors], [@picture], [@status]);
UPDATE t_dvd SET t_dvd.title = [@title], t_dvd.genre_id = [@genre_id], t_dvd.director = [@direcor],
t_dvd.release_date = [@release_date], t_dvd.[language] = [@language], t_dvd.runtime = [@runtime],
t_dvd.group_id = [@group_id], t_dvd.synopsis = [@synopsis], t_dvd.actors = [@actors], t_dvd.picture =
[@picture]
WHERE (((t_dvd.refer_no)=[@refer_no]));
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 147/186
147
Serta tambahkan class pada folder AccessData dan ubah namanya menjadi AccessCDVD, lalu
import terlebih dahulu Name Space OleDB (Imports System.Data.OleDb) , selanjutnya buat
NameSpace AccessData, dan ketikkan sintaks dibawah didalam NameSpace AccessData
UPDATE t_dvd SET t_dvd.status = [@status]
WHERE (((t_dvd.refer_no)=[@refer_no]));
SELECT t_dvd.*, t_group.group_name, t_group.days, t_group.price, t_group.fee, t_genre.genre_name
FROM t_genre INNER JOIN (t_group INNER JOIN t_dvd ON t_group.group_id = t_dvd.group_id) ON
t_genre.genre_id = t_dvd.genre_id
WHERE (((t_dvd.refer_no)=[@refer_no]));
SELECT t_dvd.refer_no, t_dvd.title, t_dvd.actors, t_dvd.director, t_dvd.status, t_dvd.language,
t_dvd.status
FROM t_dvd
ORDER BY t_dvd.refer_no;
Public Function DVDInsert(ByVal DVD As Entity.DVD) As OleDbDataReader Try
Using connect As New OleDbConnection(My.Settings.DVDConnection)Using mycommand As OleDbCommand = New OleDbCommand("usp_InsertDVD",
connect)mycommand.CommandType = CommandType.StoredProcedure
DVDModule.AddParameter("@refer_no", OleDbType.VarChar, 7,DVD.Refer_No, mycommand)
DVDModule.AddParameter("@Title", OleDbType.VarChar, 25,DVD.Title, mycommand)
DVDModule.AddParameter("@genre_id", OleDbType.VarChar, 4,DVD.Genre.Genre_ID, mycommand)
DVDModule.AddParameter("@director", OleDbType.VarChar, 50,DVD.Director, mycommand)
DVDModule.AddParameter("@release_date", OleDbType.Date, 0,DVD.Release_Date, mycommand)
DVDModule.AddParameter("@language", OleDbType.VarChar, 15,DVD.Language, mycommand)DVDModule.AddParameter("@runtime", OleDbType.Integer, 0,
DVD.RunTime, mycommand)DVDModule.AddParameter("@group_id", OleDbType.VarChar, 4,
DVD.Group.Group_ID, mycommand)DVDModule.AddParameter("@synopsis", OleDbType.VarChar, 1000,
DVD.Synopsis, mycommand)
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 148/186
148
DVDModule.AddParameter("@actors", OleDbType.VarChar, 255, DVD.Actors, mycommand)DVDModule.AddParameter("@picture", OleDbType.VarChar, 50,
DVD.Picture, mycommand)DVDModule.AddParameter("@status", OleDbType.Boolean, 0,
DVD.Status, mycommand)
connect.Open()Using result As OleDbDataReader =mycommand.ExecuteReader(CommandBehavior.CloseConnection)
Return resultEnd Using
End Using End Using
Catch SqlEx As OleDbException Throw New Exception(SqlEx.Message.ToString())
End Try
End Function
Public Function DVDUpdate(ByVal DVD As Entity.DVD) As OleDbDataReader Try
Using connect As New OleDbConnection(My.Settings.DVDConnection)Using mycommand As OleDbCommand = New OleDbCommand("usp_UpdateDVD",
connect)mycommand.CommandType = CommandType.StoredProcedure
DVDModule.AddParameter("@Title", OleDbType.VarChar, 25,DVD.Title, mycommand)
DVDModule.AddParameter("@genre_id", OleDbType.VarChar, 4,DVD.Genre.Genre_ID, mycommand)
DVDModule.AddParameter("@director", OleDbType.VarChar, 50,DVD.Director, mycommand)
DVDModule.AddParameter("@release_date", OleDbType.Date, 0,DVD.Release_Date, mycommand)
DVDModule.AddParameter("@language", OleDbType.VarChar, 15,DVD.Language, mycommand)
DVDModule.AddParameter("@runtime", OleDbType.Integer, 0,DVD.RunTime, mycommand)
DVDModule.AddParameter("@group_id", OleDbType.VarChar, 4,DVD.Group.Group_ID, mycommand)
DVDModule.AddParameter("@synopsis", OleDbType.VarChar, 1000,DVD.Synopsis, mycommand)
DVDModule.AddParameter("@actors", OleDbType.VarChar, 255,DVD.Actors, mycommand)
DVDModule.AddParameter("@picture", OleDbType.VarChar, 50,DVD.Picture, mycommand)
DVDModule.AddParameter("@refer_no", OleDbType.VarChar, 7,DVD.Refer_No, mycommand)
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 149/186
149
connect.Open()Using result As OleDbDataReader =
mycommand.ExecuteReader(CommandBehavior.CloseConnection)Return result
End Using
End Using
End Using
Catch SqlEx As OleDbException Throw New Exception(SqlEx.Message.ToString())
End Try
End Function
Public Function DVDStatusUpdate(ByVal DVD As Entity.DVD) As OleDbDataReader Try
Using connect As New OleDbConnection(My.Settings.DVDConnection)Using mycommand As OleDbCommand = New
OleDbCommand("usp_UpdateDVDStatus", connect)mycommand.CommandType = CommandType.StoredProcedure
DVDModule.AddParameter("@status", OleDbType.Boolean, 0,DVD.Status, mycommand)
DVDModule.AddParameter("@refer_no", OleDbType.VarChar, 7,DVD.Refer_No, mycommand)
connect.Open()Using result As OleDbDataReader =
mycommand.ExecuteReader(CommandBehavior.CloseConnection)Return result
End Using
End Using End Using
Catch SqlEx As OleDbException Throw New Exception(SqlEx.Message.ToString())
End Try
End Function
Public Function FindDVDByRefer(ByVal ReferNo As String) As IEnumerable(Of Entity.DVD)
Dim DVD As New List(Of Entity.DVD)()
Try Using connect As New OleDbConnection(My.Settings.DVDConnection)Using mycommand As OleDbCommand = New
OleDbCommand("usp_selectDVDbyRefer", connect)mycommand.CommandType = CommandType.StoredProceduremycommand.Parameters.Add("@refer_No", OleDbType.VarChar).Value
= ReferNoconnect.Open()
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 150/186
150
Dengan mengetikkan sintaks diatas kita telah membuat beberapa fungsi, seperti insert, update,
update dvd status maupun view data DVD. Sekarang kembali pada form DVD, pertama-tama
adalah buat variable class seperti dibawah.
Selanjutnya buat procedure untuk menampilkan data Group dan Genre pada masing-masing
ComboBox, seperti dibawah.
Using rdr As OleDbDataReader = mycommand.ExecuteReaderWhile rdr.Read
DVD.Add(rdr("refer_no").ToString(), _rdr("title").ToString(), _rdr("genre_id").ToString(), _rdr("genre_name").ToString(), _rdr("director").ToString(),
rdr("release_date").ToString(), _rdr("language").ToString(), rdr("runtime").ToString(), _rdr("group_id").ToString(), _rdr("group_name").ToString(), _rdr("days").ToString(), rdr("price").ToString(),
rdr("fee").ToString(), _rdr("synopsis").ToString(), rdr("actors").ToString(), _rdr("picture").ToString(), rdr("status").ToString())
End While End Using
End Using End Using
Catch sqlex As OleDbException Throw New Exception(sqlex.Message.ToString())
End Try Return DVD
End Function
#Region "Deklarasi"
Protected AccessDVD As New AccessData.AccessDVD Dim columns As String() = {}Dim filenaming As String
#End Region
Private Sub SortCbGenre()Dim GenreList As New List(Of Entity.Genre) From {{"G00", "- Choice -"}}DVDModule.FillListWithoutParam(GenreList, columns, "usp_SelectGenre", _
GetType(Entity.Genre))
CbGenre.DataSource = GenreListCbGenre.DisplayMember = "Genre_Name" CbGenre.ValueMember = "Genre_ID"
End Sub
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 151/186
151
Lalu ketik sintaks untuk meng-copy gambar seperti dibawah
Seperti pada form customer untuk form ini juga kita membuat auto number untuk field Refer No,
sintaks nya seperti dibawah
Private Sub SortCbGroup()Dim GroupList As New List(Of Entity.Group) From {{"GR00", "- Choice -", 0, 0, 0}}DVDModule.FillListWithoutParam(GroupList, columns, "usp_SelectGroup", _
GetType(Entity.Group))CbGroup.DataSource = GroupListCbGroup.DisplayMember = "Group_Name"
CbGroup.ValueMember = "Group_ID" End Sub
Private Sub CopyImage()If Trim(txtPath.Text) <> Application.StartupPath & "\" & filenaming Then
Dim fFile As New IO.FileInfo(Trim(txtPath.Text))fFile.CopyTo(Application.StartupPath & "\" & filenaming, True)
End IfEnd Sub
Private Function ReferNo() As String Dim DVDList As New List(Of Entity.DVD)DVDModule.FillListWithoutParam(DVDList, columns, "usp_selectDVDtop1", _
GetType(Entity.DVD))If DVDList.Count = 0 Then
txtReferNo.Text = "0000001" Else
txtReferNo.Text = Format(Val(CInt(DVDList.First.Refer_No) + 1), "0000000")End If
Return txtReferNo.Text
End Function
Private Sub Clear()Dim C As Control Dim T As TextBox For Each C In Me.GbDetail.Controls
If TypeOf C Is TextBox Then T = CType(C, TextBox)If UCase(T.Name) <> UCase("txtReferNo") Then
T.Text = "" End If
End If Next
lblStatus.Text = "" txtPath.Text = "" txtRun.Text = "0" DtDate.Text = NowCbGenre.SelectedIndex = 0CbGroup.SelectedIndex = 0PbImage.Image = Nothing
End Sub
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 152/186
152
Dan terakhir adalah dengan membuat procedure untuk menampilkan data DVD pada form,
dengan sintaks seperti dibawah.
Klik ganda pada form, dan ketikkan sintaks dibawah
Private Sub ViewDVD()Dim i As Integer
Dim DVDlist As List(Of Entity.DVD) = AccessDVD.FindDVDByRefer(txtReferNo.Text)
txtReferNo.Text = DVDlist.First.Refer_NotxtTitle.Text = DVDlist.First.TitletxtDirector.Text = DVDlist.First.DirectorDtDate.Text = DVDlist.First.Release_DatetxtActor.Text = DVDlist.First.ActorstxtLanguage.Text = DVDlist.First.LanguagetxtRun.Text = DVDlist.First.RunTimetxtSinopsis.Text = DVDlist.First.SynopsistxtRental.Text = DVDlist.First.Group.DaystxtPrice.Text = DVDlist.First.Group.Pricetxtfee.Text = DVDlist.First.Group.Feei = CbGroup.FindStringExact(DVDlist.First.Group.Group_Name)
CbGroup.SelectedIndex = ii = CbGenre.FindStringExact(DVDlist.First.Genre.Genre_Name)CbGenre.SelectedIndex = iIf DVDlist.First.Picture <> "" Then
txtPath.Text = Application.StartupPath & "\" & DVDlist.First.PictureDim fsImage As New System.IO.FileStream(txtPath.Text, IO.FileMode.Open,
IO.FileAccess.Read)Dim MyImage As Image = Image.FromStream(fsImage)PbImage.Image = MyImagefsImage.Close()fsImage.Dispose()
End If
lblStatus.Text = If(DVDlist.First.Status = "True", "Available", "Not Available")
End Sub
Try PbImage.SizeMode = PictureBoxSizeMode.StretchImageSortCbGroup()SortCbGenre()
If Operate = "Add" Then ReferNo()Else
ViewDVD()End If
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "DVD Rental")
End Try
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 153/186
153
Lalu pada event handler CbGroup_SelectedIndexChanged ketikkan sintaks dibawah ini, sintaks
berikut berfungsi jika pada saat pengguna memilih data pada CbGroup maka aplikasi
menampilkan detail dari group, seperti Rental Days, Price.
Klik ganda button cancel dan ketik seperti dibawah.
Lalu untuk menampilkan gambar pada PictureBox kli ganda pada button Edit, dan ketikkan
sintaks seperti dibawah.
If CbGroup.SelectedIndex = 0 Then Exit Sub
Try Dim GroupList As New List(Of Entity.Group)DVDModule.FillListWithoutParam(GroupList, columns, "usp_selectgroup", _
GetType(Entity.Group))Dim group = (From grp In GroupList
Where grp.Group_ID.Equals(CbGroup.SelectedValue)).Single
txtRental.Text = group.Daystxtfee.Text = group.FeetxtPrice.Text = group.Price
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "DVD Rental")
End Try
If Operate = "Add" Then Clear()
Else Operate = Nothing Me.Close()
End If
Try 'Filter file extension OFD.Filter = "Image Files (*.JPEG, *.jpg, *.bmp, *.gif, *.png)|*.JPEG; *.jpg;
*.bmp; *.gif; *.png" If OFD.ShowDialog = Windows.Forms.DialogResult.OK Then
txtPath.Text = OFD.FileNameDim fsImage As New System.IO.FileStream(txtPath.Text, IO.FileMode.Open,
IO.FileAccess.Read)Dim MyImage As Image = Image.FromStream(fsImage)PbImage.Image = MyImage
fsImage.Close()fsImage.Dispose()
End If Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "DVD Rental")End Try
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 154/186
154
Sedangkan untuk menghilangkan gambar pada PictureBox, klik ganda button Cancel, dan
ketikkan sintaks seperti dibawah :
Pada event handler txtRun_Keypress ketikkan sintaks dibawah ini.
Selanjutnya untuk klik ganda button Save untuk menyimpan data.
txtPath.Text = "" PbImage.Image = Nothing
Try If Not ((e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = vbBack) Then
e.Handled() = True End If
Catch ex As Exception MsgBox(ex.Message)
End Try
Try If CbGenre.SelectedIndex = 0 OrElse CbGroup.SelectedIndex = 0 Then
MsgBox("Pilih Group atau genre DVD terlebih dahulu",MsgBoxStyle.Information, "DVD Rental")
Exit Sub End If filenaming = "" If txtPath.Text <> "" Then filenaming = txtReferNo.Text &
(Mid(txtPath.Text, InStrRev(txtPath.Text, "."), Len(txtPath.Text)))
Dim DVD As New Entity.DVD With {.Refer_No = txtReferNo.Text, .Title =txtTitle.Text, _
.Genre = New Entity.Genre With {.Genre_ID =CbGenre.SelectedValue}, _
.Director = txtDirector.Text, .Release_Date =DtDate.Text, _
.Language = txtLanguage.Text, .RunTime =txtRun.Text, _
.Group = New Entity.Group With {.Group_ID =CbGroup.SelectedValue}, _
.Synopsis = txtSinopsis.Text, .Actors =txtActor.Text, _
.Picture = filenaming, .Status = True}Dim mYes_No As String = MsgBox("Apakah kamu ingin menyimpan data ?", vbYesNo, "DVD
Rental")If mYes_No = vbYes Then
If Operate = "Add" Then AccessDVD.DVDInsert(DVD)If txtPath.Text <> "" Then CopyImage()Clear()ReferNo()
Else
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 155/186
155
Selanjutnya pada event handler F_DVD_Closing ketikkan sintaks dibawah ini :
Buka F_Main (Main Menu) pada MenuStrip Data > DVD > Add , klik ganda dan ketikkan
sintaks dibawah :
Jalankan program dan buka form DVD, lalu masukkan data-data yang ada pada form dan
simpan, apakah berjalan dengan benar. Untuk proses update dan List DVD, bisa dilihat pada
project yang disertakan pada buku, sebagai latihan para pembaca. Penulis harap para pembaca
bisa menyelesaikan dengan baik.
Else AccessDVD.DVDUpdate(DVD)If txtPath.Text <> "" Then CopyImage()MsgBox("Update Selesai", MsgBoxStyle.Information, "DVD Rental")
End If End If
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "DVD Rental")End Try
Operate = Nothing
Try
Operate = "Add" Dim frm_dvd As New F_DVD frm_dvd.ShowDialog()Operate = Nothing
Catch ex As Exception MsgBox(ex.Message)
End Try
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 156/186
156
Gambar 4.45
Gambar 4.46
Gambar 4.47
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 157/186
157
Jika sudah selesai dengan Form DVD selanjutnya buka F_Main (Main Menu), buka jendela
Code, buat variable Class seperti dibawah :
Ketikkan 2 prosedure dibawah yang berfungsi untuk menampilkan data pada DgView.
#Region "Deklarasi" Dim DVDList As New List(Of Entity.DVD)
#End Region
Private Sub ListDVD()Try
Dim columns As String() = {"Refer_No", "Title", "Actors", "Director","Language", "Status"}
DVDModule.FillListWithoutParam(DVDList, columns, "usp_SelectDVDList", _GetType(Entity.DVD))
FormatGridWithBothTableAndColumnStyles()DgView.DataSource = DVDList
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Information, "DVD Rental")
End Try End Sub
Private Sub FormatGridWithBothTableAndColumnStyles()Me.DgView.DefaultCellStyle.ForeColor = Color.NavyMe.DgView.RowsDefaultCellStyle.BackColor = Color.AliceBlueMe.DgView.GridColor = Color.BlueMe.DgView.BorderStyle = BorderStyle.Fixed3DMe.DgView.RowHeadersBorderStyle = BorderStyle.Fixed3D
DgView.AutoGenerateColumns = False
Dim ReferColumn As New DataGridViewTextBoxColumn()
ReferColumn.DataPropertyName = "Refer_no" ReferColumn.HeaderText = "Refer No" ReferColumn.Width = 80
Dim TitleColumn As New DataGridViewTextBoxColumn()TitleColumn.DataPropertyName = "Title" TitleColumn.HeaderText = "Title" TitleColumn.Width = 150
Dim ActColumn As New DataGridViewTextBoxColumn()ActColumn.DataPropertyName = "Actors" ActColumn.HeaderText = "Actors" ActColumn.Width = 150
Dim DirecColumn As New DataGridViewTextBoxColumn()DirecColumn.DataPropertyName = "Director" DirecColumn.HeaderText = "Director" DirecColumn.Width = 150
Dim LangColumn As New DataGridViewTextBoxColumn()LangColumn.DataPropertyName = "Language" LangColumn.HeaderText = "Language" LangColumn.Width = 150
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 158/186
158
Dim StatusColumn As New DataGridViewTextBoxColumn()StatusColumn.DataPropertyName = "status" StatusColumn.HeaderText = "Status" StatusColumn.Width = 80
DgView.Columns.Add(ReferColumn)
DgView.Columns.Add(TitleColumn)DgView.Columns.Add(ActColumn)DgView.Columns.Add(DirecColumn)DgView.Columns.Add(LangColumn)DgView.Columns.Add(StatusColumn)
End Sub
Dan tambahkan sintaks berikut pada event handler F_Main_Load
Dan jalankan program, maka tampilan pada Main Menu akan seperti gambar dibawah.
Gambar 4.48
ListDVD
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 159/186
159
4.7 Membuat Form Rental DVD
Form ini merupakan form dimana yang paling sering di gunakan, berfungsi untuk
menyimpan data peminjaman DVD. Pada form ini kita membutuhkan 2 table untuk
menyimpan data peminjaman, ikuti langkah-langah dibawah untuk membuat table-table yang
dibutuhkan. Pertama adalah dengan membuat table t_totalrental dengan field-field seperti
dibwah.
Field Name Data Type Field size Primary Key
R_ID AutoNumber
Ren_ID Text 14 PK (*)
Refer_cust Text 8 FK
Ren_date Date/Time
Tot_fee Currency
Nor_cost Currency
Tot_cost Currency
Selanjutnya adalah membuat table t_detailrental, dimana satu Ren_ID (t_totalrental) bisa
memiki banyak rental detail, dengan field-field seperti dibawah.
Field Name Data Type Field size Primary Key
Ren_ID Text 14 PK (*)
Nos Number integer FK
Refer_no Text 7
Ret_date Date/Time
Late Number Integer
Cost_fee Currency
Cost_normal Currency
return Yes/No
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 160/186
160
Pada jendela MS Access, buka jendela Relationships (Database Tools > Relationships) lalu
tambahkan table T_cust, T_totalrental dan T_detailrental. Selanjutnya Drag field refer_cust
(t_totalrental) pada table t_cust (field refer_cust), maka akan muncul tampilan Edit
Relationships, dan klik OK. Lakukan hal yang sama pada field refer_no pada table
T_detailrental dengan table T_DVD (refer_no). Maka kita akan memilki diagram
relationships seperti dibawah.
Gambar 4.49
Langkah berikutnya adalah membuat Query usp_SelectRenMasterTop1, usp_InsertTotal,
usp_InsertDetail, usp_UpdateDVDStatus. Dengan sintaks SQL nya seperti dibawah.
SELECT TOP 1 t_totalrental.*
FROM t_totalrental WHERE (((t_totalrental.ren_date)=Date())) ORDER BY
t_totalrental.R_ID DESC;
INSERT INTO t_totalrental ( ren_id, refer_cust, ren_date, nor_cost, tot_cost,
tot_fee )
VALUES ([@ren_id], [@refer_cust], [@ren_date], [@nor_cost], [@tot_cost], 0);
INSERT INTO t_totalrental ( ren_id, refer_cust, ren_date, nor_cost, tot_cost,
tot_fee )
VALUES ([@ren_id], [@refer_cust], [@ren_date], [@nor_cost], [@tot_cost], 0);
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 161/186
161
Selanjutnya pada project kita (DVD Rental), tambahkan sebuah form dan ubah properties
nya seperti dibawah.
Name F_Rental
ShowInTaksbar False
Text Add Rental
StartPosition CenterScreen
MaximizedBox False
MinimizedBox False
FormBorderStyle FixedSingle
BackColor White
Selanjutnya tambahkan control-control seperti dibawah:
6 textbox, 4 button, 1 PictureBox, 1 GroupBox, 1ListView, 1 Tooltip dan 6 Label. Lalu
susun control seperti dibawah dan ubah properties seperti dibawah :
Gambar 4.50
INSERT INTO t_detailrental ( ren_id, nos, refer_no, cost_normal, cost_fee )
VALUES ([@ren_id], [@nos], [@refer_no], [@cost_normal], 0);
UPDATE t_dvd SET t_dvd.status = [@status]
WHERE (((t_dvd.refer_no)=[@refer_no]));
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 162/186
162
Textbox1
Name txtReferCust
Enabled False
Textbox2
Name txtFirst
Enabled False
TextBox3
Name txtLast
Enabled False
TextBox4
Name txtPhone
Enabled False
TextBox5
Name txtrefer_no
TextBox6
Name txtTotal
BackColor Black
ForeColor Chartreuse
GroupBox1
Name GbCustomer
Text Customer Detail
Button1
Name btnAdd
Text Add
Button2
Name btnRemove
Text Remove
Button3
Name btnSave
Text &Save
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 163/186
163
Button4
Name btnCancel
Text &Cancel
PictureBox1
Name Pbmage
SizeMode StretchImage
ListView1
Name LsvDVD
FullrowSelect True
GridLines True
View Details
Lalu pada LsvDVD pada properties “Columns” klik tand “…” lalu akan muncul form seperti
dibawah.
Gambar 4.51
Selanjutnya klik button “Add” dan ubah properties “Text” menjadi Refer No, lakukan hal diatas
untuk menambah kolom (Title, Price dan Days).
Masuk pada jendel code lalu buat variable seperti dibawah
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 164/186
164
#Region "Deklarasi" Dim AccessDVD As New AccessData.AccessDVD Dim AccessRenMaster As New AccessData.AccessRentalMaster Dim AccessRenDetail As New AccessData.AccessRentalDetail Dim columns As String() = {}
#End Region
Private Sub ViewCustomer()Dim CustList As New List(Of Entity.Customer)Dim Coltype As System.Data.OleDb.OleDbType() = {System.Data.OleDb.OleDbType.VarChar}Dim FieldName As String() = {"@refer_Cust"}Dim Size As Integer() = {8}Dim Value As String() = {txtReferCust.Text}
DVDModule.FillListWithParam(CustList, columns, "usp_selectCustbyRefer", _GetType(Entity.Customer),
FieldName, _Coltype, Size, Value)
If CustList.Count = 0 Then MsgBox("Reference No yang dicari salah atau tidak ada")Exit Sub
End IftxtReferCust.Text = CustList.First.Refer_CusttxtFirst.Text = CustList.First.First_NametxtLast.Text = CustList.First.Last_NametxtPhone.Text = CustList.First.Telp
If CustList.First.Picture <> "" Then PbImage.Image = Image.FromFile(Application.StartupPath & "\" &
CustList.First.Picture)End If
End Sub
Private Sub ViewDVD()
Dim list As List(Of Entity.DVD) = AccessDVD.FindDVDByRefer(txtrefer_no.Text)If list.First.Status = "False" Then
MsgBox("Status DVD lagi keluar", MsgBoxStyle.Information, "DVD Rental")Exit Sub
End If
Dim lSingleItem As ListViewItem lSingleItem = LsvDVD.Items.Add(txtrefer_no.Text)lSingleItem.SubItems.Add(list.First.Title)lSingleItem.SubItems.Add(list.First.Group.Price)lSingleItem.SubItems.Add(list.First.Group.Days)txtTotal.Text = CDbl(txtTotal.Text) + list.First.Group.Price
End Sub
Lalu buat procedure untuk menampilkan data customer seperti dibawah.
Selanjutnya adalah membuat procedure untuk menampilkan data DVD dan di masukkan
kedalam LsvDVD seperti dibawah
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 165/186
165
Private Function RentalID() As String
Dim RenList As New List(Of Entity.RentalMaster)columns = {"ren_id"}
DVDModule.FillListWithoutParam(RenList, columns, "usp_SelectRenMasterTop1", _GetType(Entity.RentalMaster))
If RenList.Count = 0 Then RentalID = "001-" & Format(Now.Date, "MM/dd/yyyy")
Else
RentalID = Format(Val(CInt(Microsoft.VisualBasic.Left( RenList.First.Ren_ID,RenList.First.Ren_ID.Length - 11)) + 1), "000") & "-" &
Format(Now.Date, "MM/dd/yyyy")End If
Return RentalID
End Function
Try txtTotal.Text = "0" ViewCustomer()
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "DVD Rental")
End Try
Operate = "Edit" Dim frm_HDVD As New H_DVD frm_HDVD.ShowDialog()txtrefer_no.Text = frm_HDVD.txtSearch.TextOperate = Nothing
Prosedure kita gunakan pada saat user akan memasukkan data peminjaman kedalam LsvDVD,
dan secara otomatis harga sewa DVD akan tampil pada txtTotal.
Sedangkan procedure dibawah ini untuk membuat Rental ID dengan format nomor urut dan
tanggal penginputan, dengan cara mencari data pada terakhir pada tanggal penginputan lalu
ditambah 1.
Selanjutnya adalah klik ganda form Rental yang berfungsi untuk menampilkan form awal dengan
menampilkan data Customer yang akan meminjam DVD, dan ketikkan sintaks dibawah
Buat event handler txtrefer_no_DoubleClick dan ketikkan sintaks dibawah, sintak ini berfungsi
untuk memanpilkan form tambahan (List DVD) hal ini untuk memudahkan jika user tidak tau id
DVD.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 166/186
166
Selanjutnya buat event hander txtRefer_no_Keyup, dan ketikkan sintaks dibawah, sedangkan
sintaks ini berfungsi untuk memanggil proses pada event handler txtrefer_no_DoubleClick pada
saat user menekan F8
Untuk memberi informasi bahwa cara menampilkan form dengan menekan F8 dan double click
adalah dengan membuat hint, caranya adalah dengan membuat event handler
txtrefer_no_MouseHover dan ketikkan sintaks berikut :
Lalu klik ganda button “Add” dan ketikkan sintaks dibawah ini :
If e.KeyCode = Shortcut.F8 Then txtrefer_no_DoubleClick(sender, e)
End If
ToolTip1.SetToolTip(txtrefer_no, "Silahkan klik ganda atau menekan F8 untuk menampilList")ToolTip1.Active = True
Try If txtrefer_no.Text = "" Then
MsgBox("Masukkan DVD refer no", MsgBoxStyle.Information, "DVD Rental")Exit Sub
End If
Dim DVDList As New List(Of Entity.DVD)Dim Coltype As System.Data.OleDb.OleDbType() =
{System.Data.OleDb.OleDbType.VarChar}Dim FieldName As String() = {"@refer_No"}Dim Size As Integer() = {7}Dim Value As String() = {txtrefer_no.Text}
columns = {"refer_no"}
DVDModule.FillListWithParam(DVDList, columns, "usp_selectDVDbyRefer", _GetType(Entity.DVD),
FieldName, _Coltype, Size, Value)
If DVDList.Count = 0 Then MsgBox("Reference No yang dicari salah atau tidak ada")txtrefer_no.Focus()txtrefer_no.SelectAll()Exit Sub
End If
For i = 0 To (LsvDVD.Items.Count - 1)If txtrefer_no.Text = LsvDVD.Items(i).Text Then
MsgBox("DVD sudah ada pada list pemesanan", MsgBoxStyle.Information,"DVD Rental")
Exit Sub End If
Next
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 167/186
167
Sintaks diatas ini berfungsi untuk memasukkan data peminjaman DVd kedalam LsvDVD,
dengan mengecek apakah Status DVD keluar atau tidak, jika keluar maka akan ada pesan yang
muncul. Lalu kita akan membuat fungsi untuk menghapus data pada LsvDVD, jika user salah
dalam menginput data (Sebelum penyimpanan), dengan cara klik ganda button Remove dan
ketikkan sintaks dibawah.
Klik ganda button Cancel dan ketikkan sintaks dibawah ini.
Selanjutnya adalah membuat fungsi untuk penyimpanan data Rental. Seperti halnya diatas untuk
rental ini kita memerlukan 2 buah table pertama TotalRental yang kedua Detail Rental, dalam 1
table TotalRental bisa memiliki beberapa baris DetailRental. Dan pada saat kita memasukkan
ViewDVD()txtrefer_no.Text = ""
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "DVD Rental")
End Try
Try If LsvDVD.SelectedItems.Count = 0 Then Exit Sub
Dim Price As Double Dim intIndex As Integer With LsvDVD
intIndex = .SelectedIndices(0)Price = .Items(intIndex).SubItems(2).Text
End With
txtTotal.Text = CDbl(txtTotal.Text) - PriceFor Each lvItem As ListViewItem In LsvDVD.SelectedItems
lvItem.Remove()Next LsvDVD.SelectedItems.Clear()
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "DVD Rental")
End Try
Try txtrefer_no.Text = "" LsvDVD.Items.Clear()
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "DVD Rental")
End Try
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 168/186
168
data Rental maka secara otomatis status dari DVD menjadi False (Keluar). Ketikkan sintaks
dibawah untuk membuat fungsi-fungsi berikut.
Pertama-tama tambahkan Class pada folder Entity dan ganti namanya menjadi
“RentalMaster.vb” lalu ketikkan seperti dibawah.
Dan tambah sebuah Class lagi pada folder Entity dengan nama “RentalDetail.vb” dan ketikkan
sintaks dibawah ini.
Namespace EntityPublic Class RentalMaster
Private m_renid As String Public Property Ren_ID() As String
Get Return m_renid
End Get
Set(ByVal value As String)If value = "" Then
Throw New Exception("Masukkan Rental ID")End If m_renid = value
End Set End Property
Public Property Customer As New Entity.Customer
Public Property Ren_Date() As Date
Public Property Total_Fee() As Double
Public Property Normal_Cost() As Double
Public Property Total_Cost() As Double
End Class End Namespace
Namespace Entity
Public Class RentalDetail
Public Property RenMaster() As New Entity.RentalMaster
Public Property Nos As New Int16
Public Property DVD() As New Entity.DVD
Public Property Ret_Date() As Date
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 169/186
169
Setelah selesai membuat Class Entity seperti dibawah selanjutnya adalah membuat fungsi untuk
menyimpan data Rental. Tambahkan Class baru pada Folder “AccessData” dan ganti menjadi
“AccessRental.vb” , lalu ketikkan sintaks dibawah.
Public Property Late() As Int16
Public Property Cost_Fee() As Double
Public Property Cost_Normal() As Double
Public Property Returns As Boolean
End Class End Namespace
Imports System.DataImports System.Data.OleDb
Namespace AccessDataPublic Class AccessRental
Public Function RenMasterInsert(ByVal RenMaster As Entity.RentalMaster) As OleDbDataReader
Try Using connect As New OleDbConnection(My.Settings.DVDConnection)
Using mycommand As OleDbCommand = New OleDbCommand("usp_InsertTotal",connect)
mycommand.CommandType = CommandType.StoredProcedure
Dim parameterRen_ID As OleDbParameter = New OleDbParameter("@ren_id", OleDbType.VarChar, 14)
parameterRen_ID.Value = RenMaster.Ren_IDDim parameterRefer_Cust As OleDbParameter = New
OleDbParameter("@refer_cust", OleDbType.VarChar, 8)parameterRefer_Cust.Value = RenMaster.Customer.Refer_CustDim parameterRen_Date As OleDbParameter = New
OleDbParameter("@ren_date", OleDbType.Date)parameterRen_Date.Value = RenMaster.Ren_DateDim parameterNor_Cost As OleDbParameter = New
OleDbParameter("@nor_cost", OleDbType.Currency)parameterNor_Cost.Value = RenMaster.Normal_CostDim parameterTot_Cost As OleDbParameter = New
OleDbParameter("@tot_cost", OleDbType.Currency)parameterTot_Cost.Value = RenMaster.Total_CostWith mycommand.Parameters
.Add(parameterRen_ID)
.Add(parameterRefer_Cust)
.Add(parameterRen_Date)
.Add(parameterNor_Cost)
.Add(parameterTot_Cost)End With
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 170/186
170
With mycommand.Parameters.Add(parameterRen_ID).Add(parameterRefer_Cust).Add(parameterRen_Date).Add(parameterNor_Cost).Add(parameterTot_Cost)
End With connect.Open()Using result As OleDbDataReader =
mycommand.ExecuteReader(CommandBehavior.CloseConnection)Return result
End Using
End Using End Using
Catch SqlEx As OleDbException Throw New Exception(SqlEx.Message.ToString())
End Try
End Function
Public Function RenDetailInsert(ByVal RenDetail As Entity.RentalDetail) As OleDbDataReader Try
Using connect As New OleDbConnection(My.Settings.DVDConnection)Using mycommand As OleDbCommand = New OleDbCommand("usp_InsertDetail",
connect)mycommand.CommandType = CommandType.StoredProcedureDim parameterRen_ID As OleDbParameter = New
OleDbParameter("@ren_id", OleDbType.VarChar, 14)parameterRen_ID.Value = RenDetail.RenMaster.Ren_IDDim parameterNos As OleDbParameter = New OleDbParameter("@nos",
OleDbType.Integer) parameterNos.Value = RenDetail.NosDim parameterRefer_No As OleDbParameter = New
OleDbParameter("@refer_no", OleDbType.VarChar, 7)parameterRefer_No.Value = RenDetail.DVD.Refer_NoDim parameterCost_Normal As OleDbParameter = New
OleDbParameter("@cost_normal", OleDbType.Currency)parameterCost_Normal.Value = RenDetail.Cost_Normal
With mycommand.Parameters.Add(parameterRen_ID).Add(parameterNos).Add(parameterRefer_No).Add(parameterCost_Normal)
End With
Return resultEnd Using
End Using End Using
Catch SqlEx As OleDbException Throw New Exception(SqlEx.Message.ToString())
End Try End Function
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 171/186
171
Dan buka Class AccessDVD lalu ketikan sintaks untuk mengubah status DVD
Kembali ke Form Rental lalu Klik ganda button Save dan ketikkan sintaks dibawah.
Public Function DVDStatusUpdate(ByVal DVD As Entity.DVD) As OleDbDataReader Try
Using connect As New OleDbConnection(My.Settings.DVDConnection)Using mycommand As OleDbCommand = New
OleDbCommand("usp_UpdateDVDStatus", connect)mycommand.CommandType = CommandType.StoredProcedure
DVDModule.AddParameter("@status", OleDbType.Boolean, 0,DVD.Status, mycommand)
DVDModule.AddParameter("@refer_no", OleDbType.VarChar, 7,DVD.Refer_No, mycommand)
connect.Open()Using result As OleDbDataReader =
mycommand.ExecuteReader(CommandBehavior.CloseConnection)Return result
End Using
End Using End Using
Catch SqlEx As OleDbException Throw New Exception(SqlEx.Message.ToString())
End Try
End Function
Try
If LsvDVD.Items.Count = 0 Then MsgBox("Masukkan DVD yang mau di Rental")Exit Sub
End If Dim RenId As String = RentalID()Dim RenMaster As New Entity.RentalMaster With {.Ren_ID = RenId,
.Customer = New Entity.Customer With {.Refer_Cust = txtReferCust.Text},
.Ren_Date = Now.Date,
.Normal_Cost = txtTotal.Text,.Total_Cost = txtTotal.Text}
Dim mYes_No As String = MsgBox("Apakah kamu ingin menyimpan data ?", vbYesNo,
"DVD Rental")If mYes_No = vbYes Then
AccessRenMaster.RenMasterInsert(RenMaster)For i = 0 To (LsvDVD.Items.Count - 1)
Dim RenDetail As New Entity.RentalDetail With {.RenMaster = New Entity.RentalMaster With {.Ren_ID = RenId},
.Nos = i + 1, .DVD = New Entity.DVD With {.Refer_No = LsvDVD.Items(i).Text},
.Cost_Normal =LsvDVD.Items(i).SubItems(2).Text}
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 172/186
172
Untuk saat ini kita masih belum bias mengoperasikan form Rental ini, karena pada form Rental
kita menampilkan data Customer, oleh karena itu sebelum menampilkan form rental kita
memerlukan sebuah form untuk menampilkan data customer. Ikuti langkah-langkah dibawah.
Tambahkan sebuah Form dan tambahkan 1 TextBox, 1 Label dan 3 Button. Ubah propertiesnya
seperti dibawah.
Name F_RenBox
ShowInTaksbar False
Text Type Reference Customer
StartPosition CenterScreen
ControlBox False
FormBorderStyle FixedSingle
TextBox1
Name txtReferNo
Button1
Name btnOK
Text OK
Button2
Name btnSearch
AccessRenMaster.RenDetailInsert(RenDetail)
Dim DVD As New Entity.DVD With {.Refer_No = LsvDVD.Items(i).Text,.Status = False}
AccessDVD.DVDStatusUpdate(DVD)
Next btnCancel.PerformClick()MsgBox("Data telah disimpan", MsgBoxStyle.Information, "DVD Rental")
End If
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "DVD Rental")
End Try
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 173/186
173
Text Search
Button3
Name btnCancel
Text Cancel
Name btnSave
Text &Save
Button2
Name btnCancel
Text &Cancel
Lalu atur posisi nya seperti gambar dibawah.
Gambar 3.52
Klik ganda button Cancel dan ketikkan sintaks berikut : Me.Close()
Selanjutnya klik ganda button Search dan ketikkan sintaks dibawah, yang berfungsi untuk
menampilkan form Customer List.
Dan terakhir adalah klik ganda button OK lalu ketikkan sintaks dibawah, yang berfungsi untuk
menvalidasi apakah customer id benar, jika benar maka akan menampilkan form Rental dengan
data customer yang dicari.
Operate = "Edit" Dim frm_HCust As New H_Cust frm_HCust.ShowDialog()txtReferNo.Text = frm_HCust.txtSearch.Text
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 174/186
174
Try If txtReferNo.Text = "" Then
MsgBox("Masukkan reference No", MsgBoxStyle.Information, "DVD Rental")Exit Sub
End If Dim CustList As New List(Of Entity.Customer)
Dim Coltype As System.Data.OleDb.OleDbType() ={System.Data.OleDb.OleDbType.VarChar}Dim FieldName As String() = {"@refer_Cust"}Dim Size As Integer() = {8}Dim Value As String() = {txtReferNo.Text}Dim columns As String() = {"refer_cust"}
DVDModule.FillListWithParam(CustList, columns, "usp_selectCustbyRefer", _GetType(Entity.Customer),
FieldName, _Coltype, Size, Value)
If CustList.Count = 0 Then MsgBox("Reference No yang dicari salah atau tidak ada")
Exit Sub End If If FormShow = "Rental" Then
FormShow = Nothing Dim frm_ren As New F_Rental frm_ren.txtReferCust.Text = txtReferNo.Textfrm_ren.ShowDialog()Me.Close()
ElseIf FormShow = "Return" Then FormShow = Nothing Dim frm_ret As New F_Return frm_ret.txtReferCust.Text = txtReferNo.Textfrm_ret.ShowDialog()Me.Close()
End If
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "DVD Rental")
End Try
Buka Form Utama (Main Menu), pada menu item Tools > Rental (klik ganda) ketikkan sintaks
dibawah (untuk menampilkan form Rental Box).
Try FormShow = "Rental"
Dim frm_renBox As New F_RenBox frm_renBox.ShowDialog()FormShow = Nothing
Catch ex As Exception MsgBox(ex.Message)
End Try
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 175/186
175
Jalankan program dan pada Menu Utama klik Tools > Rental, selanjutnya cari customer, dan klik
OK. Masukkan data DVD pada form Rental.
Gambar 3.53
Gambar 3.54
4.7 Membuat Form Return DVD
Setelah selesai membuat form peminjaman (Rental) maka selanjutnya adalah membuat form
Return (Pengembalian) DVD oleh customer. Tambahkan sebuah Form dalam project danubah propertiesnya seperti dibawah.
Name F_Return
ShowInTaksbar False
Text Return DVD
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 176/186
176
StartPosition CenterScreen
MaximizedBox False
MinimizedBox False
FormBorderStyle FixedSingle
BackColor White
Dan tambahkan beberapa control seperti berikut 5 textbox, 5 label, 1 GroupBox, 1
PictureBox, 4 button dan 2 ListView. Dan ubah properties seperti dibawah.
Textbox1
Name txtReferCust
Enabled False
Textbox2
Name txtFirst
Enabled False
TextBox3
Name txtLast
Enabled False
TextBox4
Name txtPhone
Enabled False
TextBox5
Name txtTotal
BackColor Black
ForeColor Chartreuse
GroupBox1
Name GbCustomer
Text Customer Detail
Button1
Name btnReturn
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 177/186
177
Text Return
Button2
Name btnRemove
Text Remove
Button3
Name btnSave
Text &Save
Button4
Name btnCancel
Text &Cancel
PictureBox1
Name Pbmage
SizeMode StretchImage
ListView1
Name LsvDVD
FullrowSelect True
GridLines True
View Details
ListView2
Name LsvReturn
FullrowSelect True
GridLines True
View Details
Tambahkan kolom pada LsvDVD seperti berikut : Rental ID, Refer No, Title, Price, Days,
Date dan Fee. Sedangkan untuk LsvReturn tambahkan kolom seperti berikut : Rental ID,
Refer No, Due Date, Late Days, Total Fee. Dan susun seperti gambar dibawah ini.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 178/186
178
Gambar 3.55
Lalu pada MS Access buat lah query seperti berikut : usp_selectRental,
usp_UpdateRenMaster, usp_UpdateRenDetail. Dengan sintaks SQL sebagai berikut :
SELECT t_totalrental.Ren_ID, t_detailrental.Nos, t_group.days, t_group.price, t_group.fee,
t_totalrental.Ren_Date, t_dvd.title, t_cust.refer_cust, t_cust.first_name, t_cust.last_name,
t_cust.telp, t_detailrental.refer_no
FROM t_cust INNER JOIN (t_group INNER JOIN (t_dvd INNER JOIN (t_totalrental INNER JOIN
t_detailrental ON t_totalrental.Ren_ID = t_detailrental.Ren_ID) ON t_dvd.refer_no =
t_detailrental.refer_no) ON t_group.group_id = t_dvd.group_id) ON t_cust.refer_cust =
t_totalrental.refer_cust
WHERE (((t_cust.refer_cust)=[@refer_cust]) AND ((t_detailrental.return)=0));
UPDATE t_totalrental SET t_totalrental.Tot_Fee = t_totalrental.Tot_Fee+[@Tot_Fee],
t_totalrental.Tot_Cost = t_totalrental.Tot_cost+[@Tot_Cost]
WHERE (((t_totalrental.Ren_ID)=[@Ren_ID]));
UPDATE t_detailrental SET t_detailrental.Ret_Date = [@Ret_Date], t_detailrental.late = [@late],
t_detailrental.cost_fee = [@cost_fee], t_detailrental.return = [@return]
WHERE (((t_detailrental.Ren_ID)=[@Ren_ID]) AND ((t_detailrental.Nos)=[@Nos]));
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 179/186
179
Public Function RenMasterUpdate(ByVal RenMaster As Entity.RentalMaster) As OleDbDataReader
Try Using connect As New OleDbConnection(My.Settings.DVDConnection)
Using mycommand As OleDbCommand = New OleDbCommand("usp_UpdateRenMaster", connect)
mycommand.CommandType = CommandType.StoredProcedure
Dim parameterTotal_Fee As OleDbParameter = New OleDbParameter("@Tot_Fee", OleDbType.Currency)
parameterTotal_Fee.Value = RenMaster.Total_Fee
Dim parameterTot_Cost As OleDbParameter = New OleDbParameter("@Tot_Cost", OleDbType.Currency)
parameterTot_Cost.Value = RenMaster.Total_Cost
Dim parameterRen_ID As OleDbParameter = New OleDbParameter("@ren_id", OleDbType.VarChar, 14)
parameterRen_ID.Value = RenMaster.Ren_ID
With mycommand.Parameters.Add(parameterTotal_Fee).Add(parameterTot_Cost).Add(parameterRen_ID)
End With connect.Open()Using result As OleDbDataReader =
mycommand.ExecuteReader(CommandBehavior.CloseConnection)Return result
End Using
End Using
End UsingCatch SqlEx As OleDbException
Throw New Exception(SqlEx.Message.ToString())End Try
End Function
Public Function RenDetailUpdate(ByVal RenDetail As Entity.RentalDetail) As OleDbDataReader
Try Using connect As New OleDbConnection(My.Settings.DVDConnection)
Using mycommand As OleDbCommand = New
OleDbCommand("usp_UpdateRenDetail", connect)mycommand.CommandType = CommandType.StoredProcedureDim parameterReturnDate As OleDbParameter = New
OleDbParameter("@ret_date", OleDbType.VarChar, 7)parameterReturnDate.Value = RenDetail.Ret_DateDim parameterLate As OleDbParameter = New OleDbParameter("@late",
OleDbType.Integer)parameterLate.Value = RenDetail.Late
Lalu buka Class AccessRental dan ketikkan fungsi-fungsi dibawah ini.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 180/186
180
Dim parameterLate As OleDbParameter = New OleDbParameter("@late", OleDbType.Integer)
parameterLate.Value = RenDetail.Late
Dim parameterCostFee As OleDbParameter = New OleDbParameter("@cost_fee", OleDbType.Currency)
parameterCostFee.Value = RenDetail.Cost_Fee
Dim parameterReturn As OleDbParameter = New OleDbParameter("@return", OleDbType.Boolean)
parameterReturn.Value = RenDetail.Returns
Dim parameterRen_ID As OleDbParameter = New OleDbParameter("@ren_id", OleDbType.VarChar, 14)
parameterRen_ID.Value = RenDetail.RenMaster.Ren_ID
Dim parameterNos As OleDbParameter = New OleDbParameter("@nos",OleDbType.Integer)
parameterNos.Value = RenDetail.Nos
With mycommand.Parameters
.Add(parameterReturnDate)
.Add(parameterLate).Add(parameterCostFee)
.Add(parameterReturn)
.Add(parameterRen_ID)
.Add(parameterNos)End With connect.Open()Using result As OleDbDataReader =
mycommand.ExecuteReader(CommandBehavior.CloseConnection)Return result
End Using
End Using End Using
Catch SqlEx As OleDbException Throw New Exception(SqlEx.Message.ToString())
End Try
End Function
Public Function FindRenByReferCust(ByVal Refer_cust As String) As List(Of Entity.RentalDetail)
Dim RenDetail As New List(Of Entity.RentalDetail)()Try
Using connect As New OleDbConnection(My.Settings.DVDConnection)
Using mycommand As OleDbCommand = New OleDbCommand("usp_selectRental", connect)mycommand.CommandType = CommandType.StoredProceduremycommand.Parameters.Add( "@refer_cust",
OleDbType.VarChar).Value = Refer_custconnect.Open()Using rdr As OleDbDataReader = mycommand.ExecuteReader
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 181/186
181
Using rdr As OleDbDataReader = mycommand.ExecuteReader
While rdr.ReadDim RentalDetails As New Entity.RentalDetail RentalDetails.RenMaster.Ren_ID =
rdr("Ren_ID").ToString()RentalDetails.Nos = rdr("Nos").ToString()RentalDetails.DVD.Group.Days = rdr("days").ToString()RentalDetails.DVD.Group.Price =
rdr("price").ToString()RentalDetails.DVD.Group.Fee = rdr("fee").ToString()RentalDetails.RenMaster.Ren_Date =
rdr("ren_date").ToString()RentalDetails.DVD.Title = rdr("title").ToString()RentalDetails.RenMaster.Customer.Refer_Cust =
rdr("refer_cust").ToString()RentalDetails.RenMaster.Customer.First_Name =
rdr("first_name").ToString()RentalDetails.RenMaster.Customer.Last_Name =
rdr("last_name").ToString()
RentalDetails.RenMaster.Customer.Telp =rdr("telp").ToString()RentalDetails.DVD.Refer_No =
rdr("refer_no").ToString()RenDetail.Add(RentalDetails)
End While
End Using
End Using End Using
Catch sqlex As OleDbException
Throw New Exception(sqlex.Message.ToString())End Try Return RenDetail
End Function
#Region "Deklarasi" Protected AccessDVD As New AccessData.AccessDVD Protected AccessRenMaster As New AccessData.AccessRental Dim columns As String() = {}
#End Region
Kembali ke form Return buat deklarasi seperti dibawah.
Dan seperti pada form Rental kita juga akan menampilkan data customer pada form ini, ketikkan
procedure dibawah ini.
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 182/186
182
Private Sub ViewCustomer()
Dim CustList As New List(Of Entity.Customer)
Dim Coltype As System.Data.OleDb.OleDbType() ={System.Data.OleDb.OleDbType.VarChar}
Dim FieldName As String() = {"@refer_Cust"}Dim Size As Integer() = {8}Dim Value As String() = {txtReferCust.Text}
DVDModule.FillListWithParam(CustList, columns, "usp_selectCustbyRefer", _GetType(Entity.Customer),
FieldName, _Coltype, Size, Value)
If CustList.Count = 0 Then MsgBox("Reference No yang dicari salah atau tidak ada")Exit Sub
End If
txtReferCust.Text = CustList.First.Refer_CusttxtFirst.Text = CustList.First.First_NametxtLast.Text = CustList.First.Last_NametxtPhone.Text = CustList.First.Telp
If CustList.First.Picture <> "" Then PbImage.Image = Image.FromFile(Application.StartupPath & "\" &
CustList.First.Picture)End If
End Sub
Lalu buat procedure untuk menampilkan data Rental.
Private Sub ViewRental()Dim list As List(Of Entity.RentalDetail) =
AccessRenMaster.FindRenByReferCust(txtReferCust.Text)Dim lSingleItem As ListViewItem For Each rental In list
lSingleItem = LsvDVD.Items.Add(rental.RenMaster.Ren_ID)lSingleItem.SubItems.Add(rental.DVD.Refer_No)lSingleItem.SubItems.Add(rental.DVD.Title)lSingleItem.SubItems.Add(rental.DVD.Group.Price)lSingleItem.SubItems.Add(rental.DVD.Group.Days)
lSingleItem.SubItems.Add(rental.RenMaster.Ren_Date)lSingleItem.SubItems.Add(rental.DVD.Group.Fee)lSingleItem.SubItems.Add(rental.Nos)
Next End Sub
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 183/186
183
Try
If LsvDVD.SelectedItems.Count = 0 Then Exit Sub
Dim intIndex, late As Integer
Dim tot_price As Double With LsvDVD
intIndex = .SelectedIndices(0)Dim lSingleItem As ListViewItem Dim Lsv As ListViewItem =
LsvReturn.FindItemWithText(.Items(intIndex).SubItems(1).Text)If Not (Lsv Is Nothing) Then
MsgBox("Data sudah ada pada List DVD Return",MsgBoxStyle.Information, "DVD Rental")
Exit Sub End If
lSingleItem = LsvReturn.Items.Add(.Items(intIndex).Text)lSingleItem.SubItems.Add(.Items(intIndex).SubItems(1).Text)
lSingleItem.SubItems.Add(CDate(.Items(intIndex).SubItems(5).Text).AddDays( CInt(.Items(intIndex).SubItems(4).Text)))
late = DateDiff(DateInterval.Day,
CDate(.Items(intIndex).SubItems(5).Text).AddDays( CInt(.Items(intIndex).SubItems(4).Text)), Now.Date)
lSingleItem.SubItems.Add(If(late < 0, 0, late))
tot_price = If(late < 0, 0, late) *CInt(.Items(intIndex).SubItems(6).Text)
lSingleItem.SubItems.Add(tot_price)lSingleItem.SubItems.Add(.Items(intIndex).SubItems(7).Text)txtTotal.Text = Format(CDbl(txtTotal.Text) + tot_price, "##,###.00")
End With
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "DVD Rental")
End Try
Klik ganda form return dan ketikkan sintaks dibawah :
Pada sintaks diatas berfungsi untuk menampilkan data Customer dan data peminjaman customer
yang dipilih. Lalu klik ganda button Return dan ketikkan sintaks dibawah ini.
Try txtTotal.Text = "0" ViewCustomer()ViewRental()
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "DVD Rental")
End Try
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 184/186
184
Try LsvReturn.Items.Clear()txtTotal.Text = "0"
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "DVD Rental")
End Try
Pada sintaks ini berfungsi untuk memindahkan data dari LsvDVD ke LsvReturn, jika
pengembalian melewati batas waktu yang ditentukan maka secara otomatis nilai nominal yang
didenda akan ditampilkan. Klik ganda button Remove dan ketikkan sintaks dibawah:
Lalu klik ganda button Cancel dan ketikkan sintaks dibawah :
Dan terakhir klik ganda button Save dan ketikkan sintaks dibawah.
Try
Dim intIndex As Integer If LsvReturn.SelectedItems.Count = 0 Then Exit Sub With LsvReturn
intIndex = .SelectedIndices(0)txtTotal.Text = Format(CDbl(txtTotal.Text) -
CDbl(.Items(intIndex).SubItems(4).Text), "##,###.00")End With
For Each lvItem As ListViewItem In LsvReturn.SelectedItemslvItem.Remove()
Next LsvReturn.SelectedItems.Clear()
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "DVD Rental")
End Try
Try
Dim mYes_No As String = MsgBox("Apakah kamu ingin menyimpan data ?", vbYesNo,"DVD Rental")
If mYes_No = vbYes Then
For a = 0 To LsvReturn.Items.Count - 1Dim RenMaster As New Entity.RentalMaster With {.Ren_ID =
LsvReturn.Items(a).Text,.Total_Fee =
LsvReturn.Items(a).SubItems(4).Text,.Total_Cost =
LsvReturn.Items(a).SubItems(4).Text}
AccessRenMaster.RenMasterUpdate(RenMaster)Next
For i = 0 To (LsvReturn.Items.Count - 1)Dim RenDetail As New Entity.RentalDetail With {.RenMaster = New
Entity.RentalMaster With {.Ren_ID = LsvReturn.Items(i).Text},.Nos =
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 185/186
185
LsvReturn.Items(i).SubItems(5).Text, .Ret_Date = Now.Date,.Late =
LsvReturn.Items(i).SubItems(3).Text,.Cost_Fee =
LsvReturn.Items(i).SubItems(4).Text, .Returns = True}
AccessRenMaster.RenDetailUpdate(RenDetail)Dim DVD As New Entity.DVD With {.Refer_No =
LsvReturn.Items(i).SubItems(1).Text, .Status = True}AccessDVD.DVDStatusUpdate(DVD)Dim Lsv As ListViewItem =
LsvDVD.FindItemWithText(LsvReturn.Items(i).SubItems(1).Text)
If Not (Lsv Is Nothing) Then LsvDVD.Items.RemoveAt(Lsv.Index)
End If
Next btnCancel.PerformClick()
MsgBox("Data telah disimpan", MsgBoxStyle.Information, "DVD Rental")End If
Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "DVD Rental")
End Try
Lalu buka form Menu Utama ke main menu (Tools > Return) klik ganda dan ketikkan sintaks
dibawah.
Jalankan program dan masuk kedalam form Return. Selamat mencoba dan selamat bercoding
ria…………
Try FormShow = "Return" Dim frm_renBox As New F_RenBox frm_renBox.ShowDialog()FormShow = Nothing
Catch ex As Exception MsgBox(ex.Message)
End Try
7/16/2019 Membuat Aplikasi Interaktif Dengan VB 2010 Dan Access 2010
http://slidepdf.com/reader/full/membuat-aplikasi-interaktif-dengan-vb-2010-dan-access-2010-563384a50a067 186/186