Desain Search List box

Minggu, 26 Desember 2010
Pernah membuat program visual basic dengan entry data 1-100?. Kalo misalkan kamu mau mencari entry data yang dituju, misalkan 99 atas nama "jae", sudah pasti bakalan cape melihat sepenuhnya form untuk entry data satu persatu.
ini contoh program vb sederhana tanpa menggunakan database terkoneksi. jadi input data masih sepenuhnya didalam form.
pusing sih bakalan, kalo data entry lebih dari 100 harus diketikan diform. tapi ada kemudahan yang didapatkan.

desain form seperti di samping ini.
adapun didalam form terdapat:
- bagian atas terdapat textbox dengan name "txtfind"
- bagian bawahnya terdapat listbox dengan name "list1"
- bagian "select" dibuat dengan name "commandbutton1"

berikut listing code dan penjelasannya:
'--------------------------------------------------------------------------------------------
Option Explicit

Private Declare Function SendMessageByString _
                         Lib "user32" _
                         Alias "SendMessageA" _
                         (ByVal hwnd As Long, _
                          ByVal wMsg As Long, _
                          ByVal wParam As Long, _
                          ByVal lParam As String) _
As Long

Private Const LB_SELECTSTRING = &H18C

'--------------------------------------------------------------------------------------------
Private Sub Form_Load()

    ' pada pilihan additem, digunakan untuk membuat record pada list dengan tampilan nama
    ' menggunakan itemdata.  didalam pilihan, kamu dapat melakukan looping nick

'--------------------------------------------------------------------------------------------
    List1.AddItem "ahmad, Jaelani"
    List1.ItemData(List1.NewIndex) = 1234
    List1.AddItem "amma, cute"
    List1.ItemData(List1.NewIndex) = 8393
    List1.AddItem "brontox, capedeh"
    List1.ItemData(List1.NewIndex) = 6564
    List1.AddItem "opo yooo, betty"
    List1.ItemData(List1.NewIndex) = 9303
    List1.AddItem "visualbasic, tutor"
    List1.ItemData(List1.NewIndex) = 8295
    List1.AddItem "do, on"
    List1.ItemData(List1.NewIndex) = 7272
    List1.AddItem "warung, rumpi"
    List1.ItemData(List1.NewIndex) = 8292
    List1.AddItem "manga, saya"
    List1.ItemData(List1.NewIndex) = 8111
    List1.AddItem "chesita, doon"
    List1.ItemData(List1.NewIndex) = 4564
    List1.AddItem "bill, gates"
    List1.ItemData(List1.NewIndex) = 8023

End Sub

'--------------------------------------------------------------------------------------------
'pada textbox digunakan selectstring untuk pencarian entry sesuai input yang diketikkan
Private Sub txtFind_Change()

    Dim lngEntryNum     As Long
    Dim strTextToFind   As String
   
    strTextToFind = txtFind.Text
   
    lngEntryNum = SendMessageByString(List1.hwnd, _
                                      LB_SELECTSTRING, _
                                      0, _
                                      strTextToFind)

End Sub

'--------------------------------------------------------------------------------------------
Private Sub Command1_Click()
'setelah hasil didapatkan maka si lisbox akan menyamakan hasil pencarian yang telah dilakukan ke texbox
    txtFind.Text = List1.Text
    ' setelahnya akan memuncul msgbox dengan struktur seperti hasil yang didapatkan
    MsgBox "kamu pilih " _
          & txtFind.Text _
          & vbNewLine _
          & "nim = " _
          & List1.ItemData(List1.ListIndex)
          
End Sub

'--------------------------------------------------------------------------------------------

Movie Category 1