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 :
Pada postingan ini saya memakai database DB_MHS.mdb, dengan nama tabel Tbl_Mhs desainnya seperti yang nampak pada gambar berikut ini :
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
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
ReplyDeletekirim source codenya ke email saya biar nanti saya benerin mbak..? hadiasoka@gmail.com
Deletemas minta source codenya, saya download ga bisa ...
ReplyDeletekirim ke ngazizrizky@gmail.com
ok. sudah saya email . trima kasih
Deletesaya 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
ReplyDeleteterima kasih atas laporannya. sekarang sudah saya update silahkan di cek :).
Deletemas cara ngeprint data dari database berbeda itu gimana mas
ReplyDeleteterima kasih
mohon pencerahannya mas
mungkin kurang kode untuk refresh. blh lihat kode nya mas?
Deletemaaf mas hadi, ini bisa diterapkan untuk DataGrid nggak ?
ReplyDeleteMas boleh minta sourch kode.a. q dowload gx bsa. Septynur28@gmail.com
ReplyDeleteThanks
Mas kalauu pkai data grid coding.a gmna??
ReplyDeleteKode untuk refresh di flexgridnya apa? please
ReplyDeleteKode untuk comand Refreshnya di flexgridnya apa? Please
ReplyDeleteAku coba ini tapi begitu di pilih salah satu nim nya malah yg keluar NIM tidak ditemukan terus. Gimana ya.
ReplyDeletepakai perintah like gak om?
Delete