Trik Memudahkan Pencarian Pada Combobox
Trik Memudahkan Pencarian Pada Combobox
Mencari data pada combobox harus dimulai dari awal teks. Trik ini akan memungkinkan kita mencari data dengan potongan teks di mana saja.

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 :

Leave a Reply

Your email address will not be published.

Scroll to Top