Pemrograman VB 6 + MS Access (3)
Pemrograman VB 6 + MS Access (3)
Selanjutnya kita akan melihat hasil jadi dari aplikasi yang akan kita buat. Aplikasi yang akan dibuat, terdiri Selanjutnya kita akan melihat hasil jadi dari aplikasi yang akan kita buat. Aplikasi yang akan dibuat, terdiri dari beberapa form SDI (Single Document Interface).
dari beberapa form SDI (Single Document Interface).
•
• Spash screen Form, yang menunjukkan judul dari aplikasiSpash screen Form, yang menunjukkan judul dari aplikasi
kita. kita.
•
• Form utama, disini kita langsung dihadapkan dengan form isian data ebook yang kita miliki.Form utama, disini kita langsung dihadapkan dengan form isian data ebook yang kita miliki.
•
• Form Edit Data, form ini diakses dengan cara men-double klik item pada listview control
• Oke, saya rasa kita cukup menggunakan 4 form tersebut pada aplikasi ebook kita.
Untuk mempercantik tampilan form, kita memerlukan beberapa activeX control yang bisa kita dapatkan secara gratis pada http://www.sevillaonline.com/ActiveXyaitu ARButton.ocx . Tetapi untuk mempermudah, kita gunakan saja ActiveX control bawaan VB6 kita.
Pemrograman VB 6 + Ms Access (4)
Oke, untuk kali ini kita akan memulai proses selanjutnya. Pada tutorial ini ada beberapa asumsi yang harus diingat :
• Komponen Control yang digunakan adalah standar VB6, seperti : Command Button, Label, TextBox,
Listview, Image, Timer dan ProgressBar.
• Koneksi database menggunakan ActiveX Data Object/ADO (disini saya menggunakan ADO 2.7).
Kita akan melakukan koneksi melalui kode program, sehingga pada Project References-nya jangan lupa di tambahkan ADO 2.7 Library, caranya dengan mengklik Project →References →Microsoft
ActiveX Data Objects 2.7 Library →Kasih centang dan OK
• Pada Project →Component →tambahkan Control Microsoft Windows Common Control 6.0 ( SP6 ).
Ini diperlukan, karena kita akan menggunakan Listview dan ProgressBar.
• Letakkan database yang telah dibuat pada folder yang sama dengan tempat kita menyimpan file
project Visual Basic kita. Pembuatan Aplikasi
Kita mulai pembuatan aplikasi kita dengan mengkoneksikan database kita dengan ADO. Seperti yang sudah kita singgung sebelumnya, bahwa kita akan melakukan koneksi melalui kode program. Supaya mudah dan efisien, kita akan meletakkan kode program koneksi tersebut pada Modules. Klik pada Project →Add
Module, kemudian akan terbentuk satu module kosong. Pada Properties-nya beri nama ” Modul1 ” ( atau nama lain juga boleh). Kemudian ketikkan kode program seperti berikut :
view plaincopy to clipboardprint? 1. option explicit
2. Global strCon As New ADODB.Connection 3. Public Sub bukaDatabase()
4. Dim strString As String 5.
6. strString = "provider = Microsoft.Jet.OLEDB.4.0;" & _ 7. "Data Source=" & App.Path & "Ebook.mdb;" & _ 8. "Persist Security Info=False; "
9.
10. Set strCon = New ADODB.Connection 11. strCon.Open strString
12. strCon.CursorLocation = adUseClient 13.
14. End Sub 15.
16. Public Sub ClearAll(frmName As Form) 17. Dim i As Long
19. Set objObject = frmName.Controls(i) 20. If TypeOf objObject Is TextBox Then 21. objObject.Text = ""
22. ElseIf TypeOf objObject Is ComboBox Then 23. objObject.Text = ""
24. End If 25. Next i 26. End Sub 27.
28. Public Sub aturListView(myForm As Form, ParamArray lstView()) 29. Dim i, lebar 30. myForm.ListView1.View = lvwReport 31. lebar = myForm.ListView1.Width - 80 32. 33. With myForm.ListView1.ColumnHeaders 34. .Clear 35.
36. For i = 0 To UBound(lstView) - 1 Step 2
37. .Add , , lstView(i), (lstView(i + 1) * lebar) / 100 38. Next i
39. End With 40. Exit Sub 41. End Sub
Sekarang akan coba saya jelaskan maksud dari kode program diatas ;
• Global strCon As New ADODB.Connection ,
Kita gunakan keyword Global supaya strCon tidak perlu lagi di inisialisasi jika kita ingin melakukan koneksi. Maksud dari kode diatas adalah kita mendeklarasikan variabel koneksi ADO Library ( yaitu ADODB.Connection) yang direpresentasikan pada variable strCon ( anda bisa memakai nama lain )
• Kemudian pada ,
Set strCon = New ADODB.Connection strCon.Open strString
Kode diatas adalah cara untuk mengeset variabel koneksi yang telah kita deklarasikan. Selanjutnya variabel koneksi strCon akan membuka database yang telah dideklarasikan pada variabel strString. Jadi, pada
dasarnya strString ini bertindak sebagai connection string pada ADODC Control.
Setelah Koneksi dengan database terjadi, kita bisa memanipulasi data-data pada recordsetnya dengan menggunakan object Recordset pada ADO Library. Cara mengakses sumber data/ record source dapat
dengan penyataan SQL maupun tabel. Jadi pada dasarnya, melakukan koneksi dengan database melalui ADO cukup mudah.
• Untuk subRoutine ClearAll() tidak saya bahas disini. Routine ini berfungsi untuk membersihkan
object TextBox maupun ComboBox yang kita pakai pada form.
• Routine aturListView() kita gunakan untuk menginisialisasi header kolom, jumlah kolom dan juga
lebar masing-masing kolom.
Untuk mengakses record source pada database yang telah terkoneksi cukup mudah. Pada dasarnya cara yang digunakan mirip, hanya object Recordset pada ADO Library yang digunakan. Nanti akan saya tunjukkan cara pemakaiannya.
Perlu diperhatikan pada strString, strString ini menentukan Path dimana kita menyimpan file database kita. Untuk contoh diatas letakkan database pada folder yang sama dengan file project. Kita juga bisa menentukan Path file database kita dengan menuliskan Path-nya secara absolut, misal ” C:Program FilesGMEBook.mdb “ Berikut adalah tampilan gambarnya :
Gambar 1
Gambar 2
Pembuatan FormUtama
FormUtama merupakan form utama kita, silahkan anda meletakkan komponen kontrol sesuai dengan gambar pada artikel saya sebelumnya. Sesuaikan saja properti name -nya dengan Caption pada masing-masing
komponen kontrol. Misalnya untuk Command Button “Simpan” kita beri property name -nya dengan commandSimpan, begitu juga untuk lainnya. Untuk properties name-nya beri nama FormUtama Berikut ini adalah listing kodenya :
view plaincopy to clipboardprint? 1. Option explicit
2. ' Mendeklarasikan variable recordset ADO 3. Dim rsDataEbook As New ADODB.Recordset 4.
5. Private Sub CommandSimpan_Click() 6. ' Validasi 1 untuk mengecek no isbn 7. If TextIsbn = " " Then
8. MsgBox "Nomor ISBN belum diisi !!", vbOKOnly, "ISBN" 9. Exit Sub
10. End If 11.
12. ' Validasi 2 untuk verifikasi data
13. If MsgBox("Data sudah benar ?", vbQuestion + _
14. vbYesNo + vbDefaultButton2, "Simpan data") = vbNo Then Exit Sub 15. bukaDatabase 'Routine untuk koneksi dengan
16. 'database yang kita letakkan pada module 17.
18. On Error GoTo errorSimpan 19.
20. ' Membuat rsDataEbook baru untuk mengakses 21. ' record source pada tabel DataEbook
22. Set rsDataEbook = New ADODB.Recordset 23. rsDataEbook.LockType = adLockOptimistic 24. rsDataEbook.Open "DataEbook", strCon 25.
26. ' Memasukkan data ke recordset DataEbook 27. rsDataEbook.AddNew 28. rsDataEbook!isbn = TextIsbn.Text 29. rsDataEbook!judul = TextJudul.Text 30. rsDataEbook!penerbit = TextPenerbit.Text 31. rsDataEbook!pengarang = TextPengarang.Text 32. rsDataEbook!tahunterbit = TextTahun.Text 33. rsDataEbook!kategori = ComboKategori.Text 34. rsDataEbook.Update 35.
36. ' Menutup koneksi database 37. Set rsDataEbook = Nothing 38. strCon.Close
39.
40. 'Perangkap kesalahan 41. Exit Sub
42. errorSimpan:
43. MsgBox "Buku sudah terdaftar ", vbInformation, Simpan 44. TextIsbn.SetFocus
45. End Sub 46.
48. FormCariData.Show vbModal, Me 49. End Sub
50.
51. Private Sub CommandBatal_Click() 52. Call ClearAll(Me)
53. TextIsbn.SetFocus 54. End Sub
55.
56. Private Sub CommandKeluar_Click() 57. 'If user clicks the No button, do not exit
58. If MsgBox("Do you really want to exit EBook Library ?", vbQuestion + _ 59. vbYesNo + vbDefaultButton2, "Keluar dari program") = vbNo Then Exit Sub 60. 'Unload, clear from memory & end program
61. Set FormUtama = Nothing 62. Unload Me
63. End 64. End Sub
Silahkan ketik sesuai listing diatas sambil dibaca keterangan yang saya lampirkan pada program tersebut. Dim rsDataEbook As New ADODB.Recordset
….
Set rsDataEbook = New ADODB.Recordset rsDataEbook.LockType = adLockOptimistic rsDataEbook.Open “DataEbook”, strCon ….
Potongan listing kode diatas adalah cara untuk mengakses record source pada database yang telah kita koneksikan. Langkahnya mirip dengan koneksi database. Disini kita mendeklarasikan variabel Recordset rsDataEbook sebagai ADODB.Recordset kemudian mengesetnya kemudian membuka tabel DataEbook pada koneksi strCon kita.
Saya akan teruskan pada artikel selanjutnya…
Kita akan lanjutkan dengan pembuatan form cariData. Form ini akan muncul ketika kita menekan command button “Cari” .
Silahkan anda membentuk form cari seperti gambar diatas. Perlu diingat bahwa komponen listview baru muncul bila kita menambahkan Microsoft Windows Common Control 6 pada Project →Components.
Berikut adalah listing kode program untuk FormCariData
view plaincopy to clipboardprint? 1. Option Explicit
2.
3. Dim rsCariData As New ADODB.Recordset 4. Private Sub CommandCariData_Click() 5.
6. Dim i,Item
7. Dim strSQL As String 8. Dim strSQL2 As String 9.
10. On Error Resume Next
11. ' Membersihkan listview, berguna pd pencarian berulang 12. ListView1.ListItems.Clear
13. aturListView Me, "Judul Buku", 55,"Pengarang", 24, _ 14. "Penerbit", 22, "ISBN", 0, "Tahun", 0, _ 15. "Kategori", 0, "Keterangan", 0
16.
17. ' Membuka koneksi dgn Database
18. bukaDatabase
19. Set rsCariData = New ADODB.Recordset 20.
21. ' Setting perintah SQL untuk Recordset
22. strSQL = " SELECT * FROM dataebook WHERE" & _
23. "(judul LIKE '" & Text1.Text & "%' AND kategori = '" & Combo1.Text & "')" 24.
25. strSQL2 = "SELECT * FROM dataebook" 26.
27. ' Percabangan untuk pencarian semua atau khusus 28.
29. If Text1.Text "" Or Combo1.Text "" Then
30. ' Membuka Recordset dgn perintah SQL
31. rsCariData.Open strSQL, strCon
32. Else
33. ' Membuka Recordset dgn perintah SQL2
34. rsCariData.Open strSQL2, strCon
35. End If
36.
37. i = 1
38. Do While Not rsCariData.EOF
39. Set Item = ListView1.ListItems.Add(, , rsCariData!judul)
40. 'ListView1.ListItems(rec + 1).Bold = True
41. 'ListView1.ForeColor = vbRed 42. Item.SubItems(1) = rsCariData!pengarang 43. Item.SubItems(2) = rsCariData!penerbit 44. Item.SubItems(3) = rsCariData!isbn 45. Item.SubItems(4) = rsCariData!tahunterbit 46. Item.SubItems(5) = rsCariData!kategori 47. Item.SubItems(6) = rsCariData!keterangan 48. rsCariData.MoveNext 49. i = i + 1 50. Loop
51. LabelTotalEbook.Caption="Total Ebook : " & ListView1.ListItems.Count 52.
53. ' Menutup koneksi
54. Set rsCariData = Nothing 55. strCon.Errors.Clear
56. strCon.Close
57.
58. End Sub 59.
60. Private Sub CommandKembali_Click()
61. Unload Me
62. End Sub 63.
64. Private Sub ListView1_Click()
65. Dim Index
66. If ListView1.ListItems.Count = 0 Then Exit Sub 67. Index = ListView1.SelectedItem.SubItems(2) 68. Label3.Caption = "Penerbit : " & Index 69. End Sub
70.
71. Private Sub ListView1_DblClick()
72. If ListView1.ListItems.Count = 0 Then Exit Sub 73. On Error GoTo err
74. 75. With FormEdit 76. .TextJudul = FormCariData.ListView1.SelectedItem.Text 77. .TextIsbn = FormCariData.ListView1.SelectedItem.SubItems(3) 78. .TextPenerbit = FormCariData.ListView1.SelectedItem.SubItems(2) 79. .TextPengarang = FormCariData.ListView1.SelectedItem.SubItems(1) 80. .TextTahun = FormCariData.ListView1.SelectedItem.SubItems(4) 81. .ComboKategori = FormCariData.ListView1.SelectedItem.SubItems(5) 82. .TextDummy = FormCariData.ListView1.SelectedItem.SubItems(3) 83. .Show vbModal
84. End With 85. 86. 'Perangkap kesalahan 87. 88. Exit Sub 89. 90. err: 91.
92. MsgBox "Ada Error", vbOKOnly + vbInformation, "Error" 93.
94. End Sub
Silahkan anda ketik listing kode diatas sambil memperhatikan keterangan yang ada. Saya akan bahas pada listing tentang CommandCariData_Click(), disini kita menggunakan dua perintah SQL . Tujuan saya adalah supaya kita bisa membrowse seluruh data maupun mencari data dengan keyword tertentu. Sebenarnya ada cara lain untuk melakukan hal ini, tetapi menurut saya ini adalah cara yang mudah dimengerti.
Pada bagian ListView1_DblClick() adalah listing kode dimana ketika kita mengeksekusi item ListView dengan double klik, akan muncul form Edit yang berguna bila kita ingin mengubah data-data pada ebook kita. Berikut ini adalah tampilan ketika kita menjalankan aplikasi :
Kita lanjutkan pada artikel selanjutnya………..
Ini merupakan form terakhir untuk tutorial kita. Kita beri nama form ini FormEdit, form ini berfungsi bila kita ingin melakukan editing pada data ebook kita. Pada form ini terdapat TextBox dummy yang kita hidden.
Tugas dari TextBox ini adalah untuk menyimpan primary key record pada database ebook. Silahkan anda sesuaikan tampilan form seperti gambar dibawah ini.
berikut ini adalah listing kode untuk FormEdit : view plaincopy to clipboardprint?
1. Option Explicit
2. Dim rsEdit As New ADODB.Recordset 3. Private Sub CommandBatal_Click() 4. Call ClearAll(Me)
5. Unload Me
6. End Sub
7. Private Sub CommandUpdate_Click() 8. Dim strSQL As String
9.
10. 'jika user mengklik no,maka tidak disimpan
11. If MsgBox("Data Ebook akan diperbarui ?", vbQuestion + vbYesNo _ 12. + vbDefaultButton2, "Edit data") = vbNo Then Exit Sub
13.
14. strSQL = " SELECT * FROM dataebook WHERE" & _ 15. "(isbn = '" & TextDummy.Text & "' )" 16.
17. bukaDatabase
18.
19. Set rsEdit = New ADODB.Recordset 20. rsEdit.LockType = adLockOptimistic 21.
22. 'membuka koneksi
23. rsEdit.Open strSQL, strCon
24.
25. 'memasukkan data baru
26. If rsEdit.RecordCount = 1 Then 27. With rsEdit 28. !isbn = TextIsbn.Text 29. !judul = TextJudul.Text 30. !penerbit = TextPenerbit.Text 31. !pengarang = TextPengarang.Text 32. !tahunterbit = TextTahun.Text 33. !kategori = ComboKategori.Text 34. .Update 35. End With 36. Else
37. MsgBox "Data tidak ditemukan", vbOKOnly
38. End If
40. Set rsEdit = Nothing 41. strCon.Close 42. Call ClearAll(Me) 43. FormCariData.ListView1.ListItems.Clear 44. Unload Me 45. End Sub
Oke saya rasa cukup sekian tutorial ini. Sebagai pelengkap aplikasi ini, anda bisa menambahkan form Login maupun form splash screen sehingga aplikasi anda akan makin terlihat profesional. Untuk pertanyaan