How to Sort Data on DataGrid with column header Click

Baca Juga

Kali ini saya akan sedikit berbagi soal bagaimana mengurutkan data dari sebuah table yang ditampilkan dengan menggunakan datagrid control.


Buat project baru dan tambahkan satu buah form baru. Karena kali ini kita akan menggunakan Datagrid untuk menampilkan table, maka kita memerlukan control untuk koneksinya, biar mudah kita pakai saja ADODC

Untuk menambahkan 2 component diatas lakukan langkah-langkah sebagai berikut :
Klik menu>>Project>>Component … sehingga akan muncul form Components, berikan tanda check untuk dua component di atas seperti terlihat pada gambar dibawah ini.



Jika sudah akhiri dengan tombol “OK”.

Koneksi Adodc ke database

Untuk contoh saya menggunakan table MS Access 2003, untuk koneksinya Anda hanya tinggal meng-copy code di bawah dan paste ini ke dalam form Anda.


Private Sub Form_Load()
    Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source= C:\test.mdb; Persist Security Info=False"
    Adodc1.RecordSource = "T_administrasi"
    Adodc1.Refresh
    DataGrid1.Refresh
End Sub


note : *Untuk tulisan berwarna merah dapat diganti sesuai database dan nama tabel tang akan ditampilkan

Kenapa harus pakai coding untuk koneksinya? Karena berdasarkan pengalaman saya, koneksi secara manual terkadang akan menyebabkan koneksi tidak mau menerima bahasa SQL. Bila Anda bukan pengguna bahasa SQL, mungkin cara manual boleh menjadi pilihan.

Koneksi DataGrid dengan ADODC
Lakukan setting properties pada Datagrid secara manual, pada properties Datagrid, pilih datasource, isi dengan Adodc1.

Sort Data
Tambahkan terlebih dahulu sebuah Combobox (bisa diganti dengan OptionButton), kemudian set propertiesnya, pada List isi dengan ASC dan DESC.

Kemudian tuliskan code dibawah ini pada jendela coding Anda :

Private Sub DataGrid1_HeadClick(ByVal ColIndex As Integer)

Adodc1.RecordSource = "SELECT * FROM T_administrasi ORDER BY [" & DataGrid1.Columns(ColIndex).Caption & "] " & Combo1.Text
Adodc1.Refresh
DataGrid1.Refresh
End Sub



Sekarang kita coba Run, kemudian klik pada judul kolomnya, terjadi perubahan? Ya, data akan diurutkan berdasarkan kolom yang diklik. Tinggal tentukan Ascending atau descending dengan memilih dari combobox.




Sudah selesai? Sudah … simple kan? Selamat mencoba. Semoga yang sedikit ini bisa membantu.




Untuk Link download yang sudah saya perbaiki dapat dilihat pada halaman DOWNLOAD, walaupun baru sedikit semoga bisa bermanfaat,untuk cara download silakan lihat DI SINI, Terima kasih

16 Tanggapan

Ckckc ... boleh ni, creative. bungkus!!!

Trm kasih commentnya. Semoga bisa membantu sobat.

Nice Idea ^^
"Dim Urutan as String" nya kok ga dipake di coding ya
soalnya gua tuliskan ke list coding saya tidak terjadi error tapi waktu diklik headernya tidak ada yg berubah T.T
sekalian mao tny untuk data seperti ini "AB00001" apakah bisa diurutkan dengan ini ?

Sory 4 double post
Sudah jalan ternyata kesalahan karena saya sudah meng"set" datasource pada datagrid nya, bukan melalu Adodc ^^

tq. cuma terispirasi dr dac easy dan myob mas. kok bs d sort kyk gitu ya?he2..

klo mw sort data berdasarkan waktu gmn?mksd'y dari tgl XXX smpai tgl XXX. .
trima kasih sblm'y :)

Code di atas dapat diaplikasikan untuk semua jenis data.

Misalnya ingin dibuat berdiri sendiri codenya akan seperti ini :
...
adodc1.recordsource="SELECT * FROM Tabel1 ORDER BY tanggal ASC"
...
^_^

assalamualaikum... saya mau nanya nih..
DBGrid saya urutannya gini:
No----Nomor Account-----Nama----Tanggal-

source code diatas saya coba berhasil untuk kolom
Nama dan kolom No
Tapi klu yg di klik kolom Nomor Account atau Tanggal selalu debug " No Value Given for one or more required parameters " " Methode 'refresh' of object 'adodc' failed "
NB: database MS.Access tipe data "text" semua
tolong pencerahannya y? klu bisa kirim by e-mail ir1_007@yahoo.co.id

Kalau debug nya " No Value Given for one or more required parameters ", berarti yang salah adalah 'nama field' yang buat ngurutin, yaitu yang dibelakang code ORDER BY. usahakan field tidak ada spasi nya atau karakter "terlarang" lainnya, kalaupun ada spasinya apit nama field dengan "[" dan "]", atau "`" dan ini "`"

kalau berkenan boleh kirim sourcenya + databasenya ke email saya [caknur84@yahoo.com], Insya Alloh akan saya bantu semampu saya.

Terima kasih.

@Nur Suhadi : syukron akhi .... ana kirim dlm bentuk .rar y?

irwan lagi "Peace" delete Senin, Februari 22, 2010

akhi Nur Suhadi punya component Statusbar y?? kemaren saya download program Listview dan begitu saya coba ternyata ada component Statusbar nya? klu boleh tolong di buatkan artikel2 component tambahan untuk mempercantik program dan download componentnya dong? tks

@irwan : "Sudah saya terima dan saya balas"

Intinya caption di datagrid tidak sama dengan nama field pada tabel di databasenya.

soal component2 pemanis banyak kok di google he2. coba antum kunjungi : planetsourcecode.com, a1vbcode.com, codeguru.com, vbaccelerator.com, bagus2 gratis tapi sayang bhs inggris he3...

Oke dech insya Alloh kapan2 kalau ada waktu saya posting.

jazakallah.

Syukron akhi na

Gan mau tanya nih... tolong scepatnya dibales ya...

strProses = "MENCARI"
MENCARI = txtnomor.Text

Adodc1.RecordSource = "SELECT*FROM TMPELANGGAN WHERE nmrpelanggan = '" + MENCARI + "'"
Adodc1.Refresh <---- debug terus

padahal Dim-nya udah ada Suorce-nya juga uda bener.....

kira-kira apanya ya gan????

@Nur Suhadi > makasih gan sarannya udah saya baca dan coba... ternyata benar... hehe...
makasih banget ya......

Semoga selalu sukses dan semua blog mu laris....
(^_^)


Formulir Kontak

Nama

Email *

Pesan *

Pengikut