Pencarian Data Pada MsFlexGrid Di VB Bag 1

Bagaimanakah cara pencarian data yang ada sebuah grid, misalnya kita ingin mencari nama joko dari data yang di tampilkan dalam sebuah grid tersebut dan semua nama yang mengandung nama joko akan muncul semua dalam grid tersebut.

Dengan menggunakan perintah LIKE dalam bahasa SQL maka masalah tersebut bisa di atasi. Bagaimanakah cara pengunaan LIKE dalam bahasa SQL tersebut di terapkan dalam vb 6 ? 

Saya akan memakai option untuk jenis pencariannya misalnya kita akan mencari data berdasarkan nama maka kita pilih option nama dulu dan jika kita mau mencari data berdasarkan alamat maka kita pilih option alamat baru mengetikan kata pencariannya begitu seterusnya.

Biar jelas dan paham silahkan ikuti langkah-langkah penggunaannya sebagai berikut ini :

Bukalah visual basic 6 dan buatlah sebuah form tambahkan msflexgrid,textbox,command button,option button seperti gambar berikut ini :

Tampilkan Gambar

Pada postingan ini saya memakai database DB_MHS.mdb, dengan nama tabel Tbl_Mhs desainnya seperti yang nampak pada gambar berikut ini :

Tampilkan Gambar

kemudian klik menu Project-References kemudian cari dan centang Microsoft ActivX Data Objects 2.x Library lalu klik ok. 

Kemudian tambahkan sebuah modul dengan cara klip menu Project-Add Modul dan ketikanlah koding berikut ini pada modul tersebut :

Public Conn As New ADODB.Connection
Public RsMhs As ADODB.Recordset

Public Sub KonekDB()
    Set Conn = New ADODB.Connection
    Conn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\DB_MHS.mdb"
    Conn.CursorLocation = adUseClient
End Sub

Kemudian double klik formnya lalu ketikan koding berikut ini pada bagian General Declarations, berfungsi untuk mengatur tampilan msflexgrid dan menampilkan data.

Dim Baris As Double

Sub AktifGrid()
    MSFlexGrid.Cols = 5
    MSFlexGrid.RowHeightMin = 300
    '-------------------------------------------------
    MSFlexGrid.Col = 0
    MSFlexGrid.Row = 0
    MSFlexGrid.Text = "NO"
    MSFlexGrid.CellFontBold = True
    MSFlexGrid.ColWidth(0) = 500
    MSFlexGrid.AllowUserResizing = flexResizeColumns
    MSFlexGrid.CellAlignment = flexAlignCenterCenter
    '-------------------------------------------------
    MSFlexGrid.Col = 1
    MSFlexGrid.Row = 0
    MSFlexGrid.Text = "NIM"
    MSFlexGrid.CellFontBold = True
    MSFlexGrid.ColWidth(1) = 700
    MSFlexGrid.AllowUserResizing = flexResizeColumns
    MSFlexGrid.CellAlignment = flexAlignCenterCenter
    '-------------------------------------------------
    MSFlexGrid.Col = 2
    MSFlexGrid.Row = 0
    MSFlexGrid.Text = "NAMA MHS"
    MSFlexGrid.CellFontBold = True
    MSFlexGrid.ColWidth(2) = 2000
    MSFlexGrid.AllowUserResizing = flexResizeColumns
    MSFlexGrid.CellAlignment = flexAlignCenterCenter
    '-------------------------------------------------
    MSFlexGrid.Col = 3
    MSFlexGrid.Row = 0
    MSFlexGrid.Text = "ALAMAT"
    MSFlexGrid.CellFontBold = True
    MSFlexGrid.ColWidth(3) = 2000
    MSFlexGrid.AllowUserResizing = flexResizeColumns
    MSFlexGrid.CellAlignment = flexAlignCenterCenter
    '---------------------------------------------------
    MSFlexGrid.Col = 4
    MSFlexGrid.Row = 0
    MSFlexGrid.Text = "JURUSAN"
    MSFlexGrid.CellFontBold = True
    MSFlexGrid.ColWidth(4) = 2300
    MSFlexGrid.AllowUserResizing = flexResizeColumns
    MSFlexGrid.CellAlignment = flexAlignCenterCenter
End Sub

Sub TampilGrid()
    MSFlexGrid.Clear
    Call AktifGrid

    MSFlexGrid.Rows = 2
    Baris = 0
    Call KonekDB
    Set RsMhs = New ADODB.Recordset
    RsMhs.Open "SELECT * FROM Tbl_Mhs ORDER BY nim ASC", Conn, adOpenDynamic, adLockOptimistic
    If RsMhs.BOF Then
        Exit Sub
    Else
        With RsMhs
            .MoveFirst
            Do While Not .EOF
                Baris = Baris + 1
                MSFlexGrid.Rows = Baris + 1
                MSFlexGrid.TextMatrix(Baris, 0) = Baris
                MSFlexGrid.TextMatrix(Baris, 1) = !nim
                MSFlexGrid.TextMatrix(Baris, 2) = !nama
                MSFlexGrid.TextMatrix(Baris, 3) = !alamat
                MSFlexGrid.TextMatrix(Baris, 4) = !jurusan
                .MoveNext
            Loop
        End With
    End If
    RsMhs.Close
End Sub

Sub AktifGrid berfungsi untuk mengatur tampilan msflexgrid sedang Sub TampilGrid berfungsi untuk menampilkan data pada msflexgrid.

Kemudian ketikan koding berikut ini pada Form Load 

Private Sub Form_Load()
    Call TampilGrid
End Sub

Kemudian double klik text1 kemudian ketikan koding berikut ini pada  Text1_Change

Private Sub Text1_Change()
If Option1.Value = False And Option2.Value = False _
    And Option3.Value = False And Option4.Value = False Then
    
    MsgBox "Pilih Opsi Pencarian Terlebih dulu", vbExclamation, "Perhatian"
    Exit Sub
End If

MSFlexGrid.Clear
Call AktifGrid

MSFlexGrid.Rows = 2
Baris = 0
Call KonekDB
Set RsMhs = New ADODB.Recordset
'pencarian berdasarkan nim
If Option1.Value = True Then
    RsMhs.Open "SELECT * FROM Tbl_Mhs WHERE nim LIKE '%" & Text1.Text & "%'", _
                Conn, adOpenDynamic, adLockOptimistic
'pencarian berdasarkan nama
ElseIf Option2.Value = True Then
    RsMhs.Open "SELECT * FROM Tbl_Mhs WHERE nama LIKE '%" & Text1.Text & "%'", _
                Conn, adOpenDynamic, adLockOptimistic
'pencarian berdasarkan alamat
ElseIf Option3.Value = True Then
    RsMhs.Open "SELECT * FROM Tbl_Mhs WHERE alamat LIKE '%" & Text1.Text & "%'", _
                Conn, adOpenDynamic, adLockOptimistic
'pencarian berdasarkan jurusan
ElseIf Option4.Value = True Then
    RsMhs.Open "SELECT * FROM Tbl_Mhs WHERE jurusan LIKE '%" & Text1.Text & "%'", _
                Conn, adOpenDynamic, adLockOptimistic
End If

If RsMhs.BOF Then
    Exit Sub
Else
    With RsMhs
        .MoveFirst
        Do While Not .EOF
            Baris = Baris + 1
            MSFlexGrid.Rows = Baris + 1  'no urut
            MSFlexGrid.TextMatrix(Baris, 0) = Baris
            MSFlexGrid.TextMatrix(Baris, 1) = !nim
            MSFlexGrid.TextMatrix(Baris, 2) = !nama
            MSFlexGrid.TextMatrix(Baris, 3) = !alamat
            MSFlexGrid.TextMatrix(Baris, 4) = !jurusan
            .MoveNext
        Loop
    End With
End If
RsMhs.Close
End Sub

Jika sudah semua silahkan di run, dan jika berhasil maka hasilnya akan seperti yang nampak pada gambar animasi di bawah ini. selamat mencoba dan semoga berhasil serta bermanfaat. Dan jika ada yang kurang jelas silahkan kasih komentar.

Pencarian Data Pada MsFlexGrid

Jika tidak ingin ribet untuk mendesain dan mengetik kodenya silahkan download source codenya di link download di akhir postingan ini.






Tags:
Pencarian Data Pada MsFlexGrid,Pencarian Data,Trik Pencarian Data di VB,Filter Data Pada VB,Penyaringan Data di Visual Basic,Pencarian Data Pada Grid,Pencarian Data Di Grid,Pencarian Data Di VB, Source Code Pencarian Data

15 comments:

  1. Mangapa jika saya klik mshflexgrid utk mnculkan data dari recond ke 5 maka data yang muncul adalah data recond 4?? Mhon bntuannya krim ke email saya triewahyunich@gmail.com secepatnya yaa terima ksih

    ReplyDelete
    Replies
    1. kirim source codenya ke email saya biar nanti saya benerin mbak..? hadiasoka@gmail.com

      Delete
  2. mas minta source codenya, saya download ga bisa ...
    kirim ke ngazizrizky@gmail.com

    ReplyDelete
  3. saya pernah download yg forminput,edit,simpan,hapus,cari data sekedar koreksi ada run time error 3021 saat data yg dicari tidak ada kadang muncul juga run time error 30009, tolong disempurnakan ya ? trims artikel bagus2

    ReplyDelete
    Replies
    1. terima kasih atas laporannya. sekarang sudah saya update silahkan di cek :).

      Delete
  4. mas cara ngeprint data dari database berbeda itu gimana mas
    terima kasih
    mohon pencerahannya mas

    ReplyDelete
    Replies
    1. mungkin kurang kode untuk refresh. blh lihat kode nya mas?

      Delete
  5. maaf mas hadi, ini bisa diterapkan untuk DataGrid nggak ?

    ReplyDelete
  6. Mas boleh minta sourch kode.a. q dowload gx bsa. Septynur28@gmail.com
    Thanks

    ReplyDelete
  7. Mas kalauu pkai data grid coding.a gmna??

    ReplyDelete
  8. Kode untuk refresh di flexgridnya apa? please

    ReplyDelete
  9. Kode untuk comand Refreshnya di flexgridnya apa? Please

    ReplyDelete
  10. Aku coba ini tapi begitu di pilih salah satu nim nya malah yg keluar NIM tidak ditemukan terus. Gimana ya.

    ReplyDelete