List box membantu kita memasukkan data tanpa harus mengetikkan sesuatu berupa text, tetapi dengan menggunakan pilihan yang telah disediakan. Dengan list box, kesalahan ketik saat memasukkan data menjadi tidak ada karena kita hanya memilih opsi yang ada dalam daftar, tidak ada tempat yang digunakan untuk mengetikkan data.
List box menampilkan daftar pilihan yang terbuka, tidak seperti combo box yang menggunakan drop down list sehingga daftar pilihan pada combo box memberi kesan tersembunyi. Dengan daftar pilihan yang terbuka ini, pengguna langsung dapat melihat berbagai macam opsi dan memilih mana yang paling tepat.
Daftar pilihan yang ada di list box diatur melalui properti Row Source. Properti Row Source ini bisa diatur melalui Control wizard saat membuat list box, property sheet saat berada di Design view, atau melalui VBA. Jika menggunakan Control wizards untuk membuat list box, wizard itu mengatur properti Row Source berdasarkan bagaimana kita menjawab pertanyaan yang ada di wizard. Dalam format Design view, kita dapat mengatur kembali properti Row Source dengan membuka property sheet list box. Sedangkan dengan menggunakan VBA, kita dapat mengubah properti Row Source dengan menggunakan kode yang kita buat, seperti yang akan dibahas lebih dalam langkah-langkah berikut ini.
Proses penambahan jenis olah raga itu diatur melalui prosedur Tambahkan_Click dengan cara menambahkan setiap jenis olah raga ke dalam Row Source dari list box lstListNamaOlahRaga, sehingga tampilannya tampak seperti Gambar 2. Bila satu jenis olah raga tertentu sudah berada dalam lstListNamaOlahRaga, maka akan muncul pesan yang memberitahu kita bahwa jenis olah raga itu sudah ada di daftar. Adapun isi dari Row Source yang terbentuk melalui prosedur Tambahkan_Click adalah sbb:
'Sepak Bola';'Renang';'Bulutangkis';'Bola Voli';'Bola Basket';'Bola Tenis';'Tenis Meja';'Lari';'Senam';'Bowling';'Memanah';'Menembak';'Sepeda';'Fitness';'Karate';'Taekwondo';'Judo';'Wushu'
Di mana tanda petik tunggal (') diperoleh dari fungsi Chr(39) pada prosedur Tambahkan_Click.
Bila kita ingin mengeluarkan salah satu jenis olah raga dari dalam lstListNamaOlahRaga, maka kita dapat menekan tombol perintah Hapus yang pengaturannya dilakukan melalui prosedur Hapus_Click. Proses menghapus ini kebalikan dari Tambah_Click, yaitu mengeluarkan setiap jenis olah raga yang ada dalam Row Source dari list box lstListNamaOlahRaga. Kita juga bisa menghapus jenis olah raga itu dengan menekan tombol Del pada keyboard yang pengaturannya dilakukan melalui prosedur lstListNamaOlahRaga_KeyDown.
List box menampilkan daftar pilihan yang terbuka, tidak seperti combo box yang menggunakan drop down list sehingga daftar pilihan pada combo box memberi kesan tersembunyi. Dengan daftar pilihan yang terbuka ini, pengguna langsung dapat melihat berbagai macam opsi dan memilih mana yang paling tepat.
Daftar pilihan yang ada di list box diatur melalui properti Row Source. Properti Row Source ini bisa diatur melalui Control wizard saat membuat list box, property sheet saat berada di Design view, atau melalui VBA. Jika menggunakan Control wizards untuk membuat list box, wizard itu mengatur properti Row Source berdasarkan bagaimana kita menjawab pertanyaan yang ada di wizard. Dalam format Design view, kita dapat mengatur kembali properti Row Source dengan membuka property sheet list box. Sedangkan dengan menggunakan VBA, kita dapat mengubah properti Row Source dengan menggunakan kode yang kita buat, seperti yang akan dibahas lebih dalam langkah-langkah berikut ini.
- Buatlah form dengan menggunakan Blank form.
- Matikan (non aktifkan) tombol perintah Control wizard, bila tombol itu dalam keadaan menyala.
- Sisipkanlah 4 buah form control seperti tampak pada Gambar 1. Berikut ini adalah properti masing-masing control:
- Sebuah text box untuk memasukkan data ke list box lstListNamaOlahRaga, properti:
- Name=txtInputBox
- Label Caption untuk text box ini=Input Box
- Tombol perintah (command button), properti:
- Name=Tambahkan
- Caption=Tambahkan ->
- On Click=[Event Prcedure], lihat di bawah.
- Tombol perintah (command button), properti:
- Name=Hapus
- Caption= <- Hapus
- On Click=[Event Prcedure], lihat di bawah.
- Sisipkan sebuah list box dengan menekan tombol List Box pada tab Design, group Controls. List box digunakan untuk menampung data dari txtInputBox, propertinya sebagai berikut:
- Name=lstListNamaOlahRaga
- Row Source= Value List
- Allow Value List Edits=No
- Label Caption untuk list box ini= List Box
- On Key Down=[Event Prcedure], lihat di bawah.
- Sebuah text box untuk memasukkan data ke list box lstListNamaOlahRaga, properti:
- Berikut ini adalah kode VBA yang ada dalam class module form:
Private Sub lstListNamaOlahRaga_KeyDown(KeyCode As Integer, Shift As Integer) ‘ Bila tombol Del ditekan, maka jalankan prosedur Hapus_Click If vbKeyDelete Then Hapus_Click End Sub Private Sub Tambahkan_Click() Dim i, n As Integer, strLista As Variant, ada As Boolean If Me.txtInputBox = "" Then MsgBox "Tidak ada data yang ditambahkan" Exit Sub End If If Me.lstListNamaOlahRaga.ListCount = 0 Then Me.lstListNamaOlahRaga.RowSource = Chr(39) & Me.txtInputBox & Chr(39) Else strLista = Split(Me.lstListNamaOlahRaga.RowSource, ";") For i = LBound(strLista) To UBound(strLista) If strLista(i) = Chr(39) & Me.txtInputBox & Chr(39) Then ada = True Exit For Else ada = False End If Next i If ada Then MsgBox Chr(39) & Me.txtInputBox & Chr(39) & " sudah ada dalam daftar." Me.txtInputBox.SetFocus Exit Sub End If Me.lstListNamaOlahRaga.RowSource = Me.lstListNamaOlahRaga.RowSource & ";" & Chr(39) & Me.txtInputBox & Chr(39) End If Me.lstListNamaOlahRaga = Me.lstListNamaOlahRaga.ItemData(Me.lstListNamaOlahRaga.ListCount - 1) Me.txtInputBox = "" Me.txtInputBox.SetFocus End Sub Private Sub Hapus_Click() Dim n, i, p As Integer, strLista, slstListNamaOlahRaga As Variant Dim strp() As String ReDim strp(20) If IsNull(Me.lstListNamaOlahRaga) Then Exit Sub If IsNull(Me.lstListNamaOlahRaga.ItemsSelected) Then Exit Sub If Me.lstListNamaOlahRaga.RowSource = "" Then Exit Sub strLista = Split(Me.lstListNamaOlahRaga.RowSource, ";") If UBound(strLista) = 0 Then Me.lstListNamaOlahRaga.RowSource = "" Exit Sub End If i = 0 p = Me.lstListNamaOlahRaga.ItemsSelected(0) For n = LBound(strLista) To UBound(strLista) If n <> p Then strp(i) = strLista(n) i = i + 1 End If Next n ReDim Preserve strp(UBound(strLista) - 1) Me.lstListNamaOlahRaga.RowSource = Join(strp, ";") If p < Me.lstListNamaOlahRaga.ListCount Then Me.lstListNamaOlahRaga = Me.lstListNamaOlahRaga.ItemData(p) Else Me.lstListNamaOlahRaga = Me.lstListNamaOlahRaga.ItemData(Me.lstListNamaOlahRaga.ListCount - 1) End If End Sub
Gambar 1 |
Gambar 2 |
'Sepak Bola';'Renang';'Bulutangkis';'Bola Voli';'Bola Basket';'Bola Tenis';'Tenis Meja';'Lari';'Senam';'Bowling';'Memanah';'Menembak';'Sepeda';'Fitness';'Karate';'Taekwondo';'Judo';'Wushu'
Di mana tanda petik tunggal (') diperoleh dari fungsi Chr(39) pada prosedur Tambahkan_Click.
Bila kita ingin mengeluarkan salah satu jenis olah raga dari dalam lstListNamaOlahRaga, maka kita dapat menekan tombol perintah Hapus yang pengaturannya dilakukan melalui prosedur Hapus_Click. Proses menghapus ini kebalikan dari Tambah_Click, yaitu mengeluarkan setiap jenis olah raga yang ada dalam Row Source dari list box lstListNamaOlahRaga. Kita juga bisa menghapus jenis olah raga itu dengan menekan tombol Del pada keyboard yang pengaturannya dilakukan melalui prosedur lstListNamaOlahRaga_KeyDown.
Comments
Post a Comment