Download - Pemrograman VB 6.Dan Access

Transcript

Pemrograman VB 6 + MS Access (3)Selanjutnya kita akan melihat hasil jadi dari aplikasi yang akan kita buat. Aplikasi yang akan dibuat, terdiri dari beberapa form SDI (Single Document Interface).

Spash screen Form, yang menunjukkan judul dari aplikasi

kita.

Form utama, disini kita langsung dihadapkan dengan form isian data ebook yang kita miliki.

Form Cari Data, disini kita bisa mem-browse ebook yang sudah kita input-kan

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/ActiveX yaitu 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 18. For i = 0 To frmName.Count - 1

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 FormUtamaFormUtama 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. 47. Private Sub CommandCari_Click()

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

Pemrograman VB 6 + Ms Access (5)

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 FormCariDataview 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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83.

' Percabangan untuk pencarian semua atau khusus If Text1.Text "" Or Combo1.Text "" Then ' Membuka Recordset dgn perintah SQL rsCariData.Open strSQL, strCon Else ' Membuka Recordset dgn perintah SQL2 rsCariData.Open strSQL2, strCon End If i = 1 Do While Not rsCariData.EOF Set Item = ListView1.ListItems.Add(, , rsCariData!judul) 'ListView1.ListItems(rec + 1).Bold = True 'ListView1.ForeColor = vbRed Item.SubItems(1) = rsCariData!pengarang Item.SubItems(2) = rsCariData!penerbit Item.SubItems(3) = rsCariData!isbn Item.SubItems(4) = rsCariData!tahunterbit Item.SubItems(5) = rsCariData!kategori Item.SubItems(6) = rsCariData!keterangan rsCariData.MoveNext i = i + 1 Loop LabelTotalEbook.Caption="Total Ebook : " & ListView1.ListItems.Count ' Menutup koneksi Set rsCariData = Nothing strCon.Errors.Clear strCon.Close End Sub Private Sub CommandKembali_Click() Unload Me End Sub Private Sub ListView1_Click() Dim Index If ListView1.ListItems.Count = 0 Then Exit Sub Index = ListView1.SelectedItem.SubItems(2) Label3.Caption = "Penerbit : " & Index End Sub Private Sub ListView1_DblClick() If ListView1.ListItems.Count = 0 Then Exit Sub On Error GoTo err With FormEdit .TextJudul = FormCariData.ListView1.SelectedItem.Text .TextIsbn = FormCariData.ListView1.SelectedItem.SubItems(3) .TextPenerbit = FormCariData.ListView1.SelectedItem.SubItems(2) .TextPengarang = FormCariData.ListView1.SelectedItem.SubItems(1) .TextTahun = FormCariData.ListView1.SelectedItem.SubItems(4) .ComboKategori = FormCariData.ListView1.SelectedItem.SubItems(5) .TextDummy = FormCariData.ListView1.SelectedItem.SubItems(3) .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 39. 'menutup koneksi

40. 41. 42. 43. 44. 45.

Set rsEdit = Nothing strCon.Close Call ClearAll(Me) FormCariData.ListView1.ListItems.Clear Unload Me 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 silahkan hubungi saya di [email protected]