Mengurutkan (Sort), Mencari (search) dan Menyaring (Filter) Data di VB6

Pada artikel kali ini saya kan berbagi kode yang sangat sederhana yang pasti anda akan temui dalam sebuah database.Mungkin bagi para pemula seperti saya ini, kode ini mungkin belum anda ketahui terlalu banyak, kode yang saya maksud adalah cara mengurutkan, mensortir dan mencari data di vb6.Berikut dibawah ini adalah ketiga kode tersebut :

1. Kode untuk Mengurutkan atau Sort Data

penjualan.Sort = DataGrid1.Columns(1).DataField

2. Kode untuk Mecari Data atau Search Data

penjualan.Find "Tahun_Penjualan='" + Text1.Text + "'", , adSearchForward, 1

If Not penjualan.EOF Then

     MsgBox "Data ditemukan!", vbOKOnly, "Info"

     Text1.SetFocus

Else

MsgBox "Data tidak ditemukan!", vbOKOnly, "Info"

     Text1.Text = ""

      Text1.SetFocus

End If

End If

3. Kode untuk mencari untuk Menyaring atau Filter Data

penjualan.Filter = "Januari like '" & Text2.Text & "*'"


Berikut dibawah ini adalah ketiga kode diatas yang saya terapkan dalam sebuah database 

lengkap dengan validasinya

Database Penjualan


Berdasarkan gambar diatas Saya menggunakan Database Access dengan nama Database :DBPenjualan dan Recodset: penjualan

Berikut dibawah ini adalah kode lengkap berdasarkan gambar form diatas :

Private Sub Command1_Click()

If Text1.Text = "" Then

MsgBox "Masukan Tahun Penjalan yang akan dicari", vbOKOnly, "Info"

Text1.SetFocus

Else

'-----------------kode pencarian-----------------

penjualan.Find "Tahun_Penjualan='" + Text1.Text + "'", , adSearchForward, 1

If Not penjualan.EOF Then

     MsgBox "Data ditemukan!", vbOKOnly, "Info"

     Text1.SetFocus

Else

MsgBox "Data tidak ditemukan!", vbOKOnly, "Info"

     Text1.Text = ""

      Text1.SetFocus

End If

End If

'-----------------kode pencarian-------------------

End Sub


Private Sub Command2_Click()

If Text2.Text = "" Then

MsgBox "Masukan hasil penjualan yang akan di Filter", vbOKOnly, "Info"

Text2.SetFocus

Else

If Option1.Value = False And Option2.Value = False And Option3.Value = False Then

MsgBox "Pilih Nama Kolom yang di Filter", vbOKOnly, "Info"

Else

   If Command2.Caption = "FILTER" Then

       Command2.Caption = "REFRESH"

        '---------------kode filter data--------------

       If Option1.Value = True Then

         'penjualan.Filter = "Januari='" & Text2.Text & "'"

         penjualan.Filter = "Januari like '" & Text2.Text & "*'"

         End If

         

         If Option2.Value = True Then

         'penjualan.Filter = "Januari='" & Text2.Text & "'"

         penjualan.Filter = "Februari like '" & Text2.Text & "*'"

         End If

         

         If Option3.Value = True Then

         'penjualan.Filter = "Januari='" & Text2.Text & "'"

         penjualan.Filter = "Maret like '" & Text2.Text & "*'"

         End If

      '---------------kode filter data--------------

      Else

      If Command2.Caption = "REFRESH" Then

        Command2.Caption = "FILTER"

         penjualan.Filter = ""

         '---------Refresh Data filter-------------

         Set DataGrid1.DataSource = Nothing

         Set DataGrid1.DataSource = penjualan

          '---------Refresh Data filter-------------

         Option1.Value = False

         Option2.Value = False

         Option3.Value = False

         Text2.Text = ""

         Text2.SetFocus

       End If

   End If

End If

End If

End Sub


Private Sub Command3_Click()

If Option4.Value = False And Option5.Value = False And Option6.Value = False And Option7.Value = False Then

MsgBox "Pilih Nama Kolom yang di urutkan", vbOKOnly, "Info"

Else

If Command3.Caption = "SORT" Then

Command3.Caption = "REFRESH"

'---------------kode penyortiran data---------------

    If Option4.Value = True Then

       penjualan.Sort = DataGrid1.Columns(1).DataField

    End If

    If Option5.Value = True Then

       penjualan.Sort = DataGrid1.Columns(2).DataField

    End If

    If Option6.Value = True Then

       penjualan.Sort = DataGrid1.Columns(3).DataField

      End If

    If Option7.Value = True Then

       penjualan.Sort = DataGrid1.Columns(0).DataField

    End If

 '---------------kode penyortiran data---------------


Else

If Command3.Caption = "REFRESH" Then

Command3.Caption = "SORT"

penjualan.Sort = ""

'----------refresh data sortiran-----------------

Set DataGrid1.DataSource = Nothing

Set DataGrid1.DataSource = penjualan

'----------refresh data sortiran-----------------

Option4.Value = False

Option5.Value = False

Option6.Value = False

Option7.Value = False

End If

End If

End If

End Sub


Private Sub Form_Load()

Call connect

Set DataGrid1.DataSource = penjualan

Text1.Text = ""

Text2.Text = ""

End Sub


Private Sub Option1_Click()

Text2.SetFocus

Command2.Caption = "FILTER"

penjualan.Filter = ""

Set DataGrid1.DataSource = Nothing

Set DataGrid1.DataSource = penjualan

End Sub


Private Sub Option2_Click()

Text2.SetFocus

Command2.Caption = "FILTER"

penjualan.Filter = ""

Set DataGrid1.DataSource = Nothing

Set DataGrid1.DataSource = penjualan

End Sub


Private Sub Option3_Click()

Text2.SetFocus

Command2.Caption = "FILTER"

penjualan.Filter = ""

Set DataGrid1.DataSource = Nothing

Set DataGrid1.DataSource = penjualan

End Sub


Private Sub Option4_Click()

Command3.Caption = "SORT"

End Sub


Private Sub Option5_Click()

Command3.Caption = "SORT"

End Sub


Private Sub Option6_Click()

Command3.Caption = "SORT"

End Sub


Private Sub Option7_Click()

Command3.Caption = "SORT"

End Sub


Jika kode diatas dijalankan hasilnya akan seperti gambar dibawah ini :

Output

Output diatas adalah ketika Saya memfilter atau menyaring sebuah data hasil penjualan buan Januari dengan menampilkan yang nominalnya 5000

Oh ya untuk membuat ketiga kode diatas dalam artikel ini saya tidak menyertakan cara membuat database dan membuat koneksinya.silahkan anda cari sendiri didalam blog ini saya sudah membuatkannya.

Saya kira demikianlah artikel pada kali ini tentang Mengurutkan (Sort), Mencari (search) dan Menyaring (Filter) Data di VB6, semoga artikel inibermanfaat buat kita semua.Amin

Selamat mencoba semoga sukses

No comments: