Skip to main content

Manipulasi Data Dengan Menggunakan List Box Pada Form di Access

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.
  1. Buatlah form dengan menggunakan Blank form.
  2. Matikan (non aktifkan) tombol perintah Control wizard, bila tombol itu dalam keadaan menyala.
  3. Gambar 1
  4. Sisipkanlah 4 buah form control seperti tampak pada Gambar 1. Berikut ini adalah properti masing-masing control:
    1. Sebuah text box untuk memasukkan data ke list box lstListNamaOlahRaga, properti:
      1. Name=txtInputBox
      2. Label Caption untuk text box ini=Input Box
    2. Tombol perintah (command button), properti:
      1. Name=Tambahkan
      2. Caption=Tambahkan ->
      3. On Click=[Event Prcedure], lihat di bawah.
    3. Tombol perintah (command button), properti:
      1. Name=Hapus
      2. Caption= <- Hapus
      3. On Click=[Event Prcedure], lihat di bawah.
    4. 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:
      1. Name=lstListNamaOlahRaga
      2. Row Source= Value List
      3. Allow Value List Edits=No
      4. Label Caption untuk list box ini= List Box
      5. On Key Down=[Event Prcedure], lihat di bawah.
  5. Berikut ini adalah kode VBA yang ada dalam class module form:
    1. Private Sub lstListNamaOlahRaga_KeyDown(KeyCode As Integer, Shift As Integer)  
    2. ‘ Bila tombol Del ditekan, maka jalankan prosedur Hapus_Click  
    3.   If vbKeyDelete Then Hapus_Click  
    4. End Sub  
    5. Private Sub Tambahkan_Click()  
    6.   Dim i, n As Integer, strLista As Variant, ada As Boolean  
    7.   If Me.txtInputBox = "" Then  
    8.     MsgBox "Tidak ada data yang ditambahkan"  
    9.     Exit Sub  
    10.   End If  
    11.   If Me.lstListNamaOlahRaga.ListCount = 0 Then  
    12.     Me.lstListNamaOlahRaga.RowSource = Chr(39) & Me.txtInputBox & Chr(39)  
    13.   Else  
    14.     strLista = Split(Me.lstListNamaOlahRaga.RowSource, ";")  
    15.     For i = LBound(strLista) To UBound(strLista)  
    16.       If strLista(i) = Chr(39) & Me.txtInputBox & Chr(39) Then  
    17.         ada = True  
    18.        Exit For  
    19.       Else  
    20.         ada = False  
    21.       End If  
    22.     Next i  
    23.     If ada Then  
    24.       MsgBox Chr(39) & Me.txtInputBox & Chr(39) & " sudah ada dalam daftar."  
    25.       Me.txtInputBox.SetFocus  
    26.       Exit Sub  
    27.     End If  
    28.     Me.lstListNamaOlahRaga.RowSource = Me.lstListNamaOlahRaga.RowSource & ";" & Chr(39) & Me.txtInputBox & Chr(39)  
    29.   End If  
    30.   Me.lstListNamaOlahRaga = Me.lstListNamaOlahRaga.ItemData(Me.lstListNamaOlahRaga.ListCount - 1)  
    31.   Me.txtInputBox = ""  
    32.   Me.txtInputBox.SetFocus   
    33. End Sub  
    34. Private Sub Hapus_Click()  
    35.   Dim n, i, p As Integer, strLista, slstListNamaOlahRaga As Variant  
    36.   Dim strp() As String  
    37.   ReDim strp(20)  
    38.   If IsNull(Me.lstListNamaOlahRaga) Then Exit Sub  
    39.   If IsNull(Me.lstListNamaOlahRaga.ItemsSelected) Then Exit Sub  
    40.   If Me.lstListNamaOlahRaga.RowSource = "" Then Exit Sub  
    41.   strLista = Split(Me.lstListNamaOlahRaga.RowSource, ";")  
    42.   If UBound(strLista) = 0 Then  
    43.     Me.lstListNamaOlahRaga.RowSource = ""  
    44.     Exit Sub  
    45.   End If  
    46.   i = 0  
    47.   p = Me.lstListNamaOlahRaga.ItemsSelected(0)  
    48.   For n = LBound(strLista) To UBound(strLista)  
    49.     If n <> p Then  
    50.       strp(i) = strLista(n)  
    51.       i = i + 1  
    52.     End If  
    53.   Next n  
    54.   ReDim Preserve strp(UBound(strLista) - 1)  
    55.   Me.lstListNamaOlahRaga.RowSource = Join(strp, ";")  
    56.   If p < Me.lstListNamaOlahRaga.ListCount Then  
    57.     Me.lstListNamaOlahRaga = Me.lstListNamaOlahRaga.ItemData(p)  
    58.   Else  
    59.     Me.lstListNamaOlahRaga = Me.lstListNamaOlahRaga.ItemData(Me.lstListNamaOlahRaga.ListCount - 1)  
    60.   End If  
    61. End Sub  
Untuk memahami list box dan kode VBA di atas, kita bisa menggunakan contoh. Masukkan satu per satu jenis olah raga berikut ini ke dalam Input Box: Sepak Bola, Renang, Bulutangkis, Bola Voli, Bola Basket, Bola Tenis, Tenis Meja, Lari, Senam, Bowling, Memanah, Menembak, Sepeda, Fitness, Karate, Taekwondo, Judo, Wushu. Setiap selesai satu jenis olah raga, tekanlah tombol perintah Tambahkan untuk memasukkan jenis olah raga ke dalam list box.
Gambar 2
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.

Comments

Posting Terpopuler

Cara Mengatur dan Menggunakan ODBC untuk Mengakses Data Eksternal

Fungsi Untuk Membuka Database di Access VBA

Format Untuk Field Dengan Tipe Data Number dan Currency di MS Access