Cara agar pengguna dengan mudah menemukan bagian data yang posisinya bukan diawal pada Combobox.
Combobox umum dipakai untuk input yang mengacu pada data master, seperti master barang, master customer, master supplier, dll. Karena mudahnya dalam mencari data, tinggal input data yang dicari, maka otomatis data yang awalannya sama dengan yang diinputkan akan ditampilkan, sehingga lebih mudah dalam mencari data.
Akan tetapi jika data yang diinput pada posisi tidak diawal data, maka akan sulit ditemukan. Misalnya : kue basah pisang aroma, telah ada di combobox. Ketika diinputkan pisang atau pisang aroma, data tersebut tidak akan ketemu. Biasanya pengguna akan memasukkan data baru dimaster, yang menyebabkan data menjadi double.
Jika Event NotInList berisi :
Private Sub cboIdPastry_NotInList(NewData As String, Response As Integer) Response = acDataErrContinue MsgBox "Data tersebut tidak ada.", vbInformation, "Informasi" End Sub
Untuk mengatasi hal tersebut diatas, salah satu caranya, dengan mempersempit daftar yang tampil, yaitu hanya menampilkan data yang mengandung kata yang diketikkan, sehingga pengguna lebih mudah mencarinya. Misalnya cukup masukan pisang kemudian tekan tombol Enter, maka yang tampil dilist hanya data yang mengandung kata pisang saja.
Caranya adalah sebagai berikut :
Nama Combobox : cboIdPastry
RowSumber : SELECT MasterPastry.IdPastry, MasterPastry.[NamaPastry] FROM MasterPastry ORDER BY MasterPastry.[NamaPastry];
Jumlah Kolom: 2
Modul-modulnya :
Private Sub cboIdPastry_NotInList(NewData As String, Response As Integer) Response = acDataErrContinue Me.cboIdPastry.RowSource = "SELECT MasterPastry.IdPastry, MasterPastry.NamaPastry FROM MasterPastry " _ & "WHERE NamaPastry Like '*" & NewData & "*' ORDER BY MasterPastry.NamaPastry;" If Me.cboIdPastry.ListCount = 0 Then MsgBox "Data tersebut tidak ada.", vbInformation, "Informasi" End If End Sub Private Sub cboIdPastry_Exit(Cancel As Integer) Me.cboIdPastry.RowSource = "SELECT MasterPastry.IdPastry, MasterPastry.NamaPastry FROM MasterPastry " _ & "ORDER BY MasterPastry.NamaPastry;" End Sub
Modul Keterangan :
Ketika Input data tidak ketemu, maka program akan mengeksekusi modul cboIdPastry_NotInList , dimodul tersebut Query RowSource ditambah kondisi NamaPastry Like '*" & NewData & "*' . Isi query nya menjadi field NamaPastry yang mengandung parameter NewData , kemudian combobox di cek apakah berisi data atau tidak. Jika berisi data, maka akan tampil seperti gambar di bawah ini.
Dan jika tidak ada data, maka akan menampilkan pesan Data tersebut tidak ada.
Waktu kursor keluar dari combobox, program akan mengeksekusi modul cboIdPastry_Exit , dimana modul ini akan mengembalikan Query RowSource ke asal.
Semoga bermanfaat.
Referensi :
- Kelas Online 10 Trik ComboBox Yg Hrs Diketahui Pengembang Profesional, Mentor Haer Talib.
- https://www.rumahaccess.com/2021/06/cara-membuat-list-combo-box-update.html
- Panduan Lengkap Microsoft Access 2010, Haer Talib.