Cara Membuat Auto Complete Pada Combobox di VB6

Pada pertemuan kali ini saa akan berbagi trik yaitu cara membuat auto complete pada combobox menggunakan visual basic 6.0 atau VB6.

Auto complete yang dimaksud disini adalah melengkapi teks secara automatis pada saat kita melakukan pengetikan pada pilihan combobox untuk mencari data yang mendekati kata yang kita inginkan dengan syarat sudah ada dalam data combobox.

Trik ini biasanya digunakan karena pilihan combobox yang sangat banyak sehingga si user kesulitan untuk memilih satu per satu. Dengan adanya trik ini si user tidak perlu mencari satu persatu cukup hanya mengetikan beberapa karakter awal yang ada pada kata yang kita akan cari, sehingga otomatis melengkapinya, dengan begitu user tidak perlu mengetik sampai akhir kata.

Nah bagaimana apakah Anda penasaran cara membuatnya berikut ikutilah langkah-langkahnya agar tidak tersesat :

1. Buat Form baru dengan standar EXE

2. Tanamkan 1 buah Combobox, Style:DropDown Combo 

3. Tambahkan sebuah jendela Module di project Anda

4. Kemudian ketikan kode dibawah ini dijendela Module :


Const CB_FINDSTRING = &H14C


Public Declare Function SendMessage Lib "user32" _

Alias "SendMessageA" (ByVal hwnd As Long, _

ByVal wMsg As Long, ByVal wParam As Long, _

lParam As Any) As Long


Public Enum EnumKarakter

Asli = 0

Ubah = 1

End Enum


Public Function AutoComplete( _

cbCombo As ComboBox, _

sKeyAscii As Integer, _

Optional bUpperCase As Boolean = True, _

Optional cCharacter As EnumKarakter = Asli) _

As Integer

Dim lngFind As Long, intPos As Integer

Dim intLength As Integer, tStr As String

With cbCombo

If sKeyAscii = 8 Then

If .SelStart = 0 Then Exit Function

.SelStart = .SelStart - 1

.SelLength = 32000

.SelText = ""

Else

intPos = .SelStart

tStr = .Text

If bUpperCase = True Then

.SelText = UCase(Chr(sKeyAscii))

Else

.SelText = (Chr(sKeyAscii))

End If

End If


lngFind = SendMessage(.hwnd, CB_FINDSTRING, 0, _

ByVal .Text)

If lngFind = -1 Then

Exit Function

Else

intPos = .SelStart

intLength = Len(.List(lngFind)) - Len(.Text)

If cCharacter = Ubah Then

.SelText = .SelText & Right(.List(lngFind), _

intLength)

Else

.Text = .List(lngFind)

End If

.SelStart = intPos

.SelLength = intLength

End If

End With

End Function


5. Kemudian kembali ke Form1, pada Form1 ketik kode dibawah ini :


Private Sub AddData()

With Combo1

.Clear

.AddItem "Jakarta"

.AddItem "Bandung"

.AddItem "Bogor"

.AddItem "Depok"

.AddItem "Bekasi"

.AddItem "Jepara"

.AddItem "Terserah luh"

End With

End Sub


Private Sub Combo1_KeyPress(KeyAscii As Integer)

KeyAscii = AutoComplete(Combo1, KeyAscii, False, Asli)

End Sub


Private Sub Form_Load()

Call AddData

End Sub


Dan langkah terakhir jalankan Project Anda, jika tidak ada error maka hasilnya seperti pada gambar dibawah ini :

Output AutoCombo

Coba Anda ketikan huruf awal dari sebuah kota berdasarkan gambar diatas misal "Ba.." maka otomatis akan menampilkan kota "Bandung"

Demikinalah artikel dari saya tentang cara membuat auto complete pada combobox menggunakan visual basic 6.0 atau VB6., semoga artikel ini bermanfaat buat kita semua.Amin.

Selamat mencoba semoga sukses...

No comments: