27 April 2011

VB6 MySQL: Menampilkan Data di Datagrid

Selanjutnya kita akan mencoba menampilkan isi table kategori pada database latihan ke datagrid di aplikasi VB.
Query yang digunakan:


Isi table:

Beri nama Form1 menjadi frmKategori

Dan beri nama project dengan wpLatihan
Save form dan project dalam satu folder yang sama

Jika muncul pesan untuk menambahkan project ke dalam SourceSafe, pilih No

Tambahkan sebuah control grid ke form
Beri nama grdData

Kita akan mengkombinasikan koneksi MySQL dengan koneksi ADODB. Karena itu tambahkan reference Microsoft ActiveX Data Object 2.6 Library dengan cara sebagai berikut:


Deklarasikan variable recordset MySQL, recordset ADODB, dan sebuah variable string untuk menyimpan query SQL pada skala private.

Dim rsMySQL As MYSQL_RS
Dim rsData As ADODB.Recordset
Dim sSQL As String

Deklarasikan sebuah variable long event Form_Load.

Dim l As Long

Masih pada event Form_Load, isi variable sSQL dengan query select.
sSQL = "select kodekategori, namakategori from kategori"

Masukan query select tersebut ke recordset mySQL
Set rsMySQL = oConn.Execute(sSQL)

Buat ADODB recordset untuk memuat data dari MySQL
Set rsData = New ADODB.Recordset
rsData.Fields.Append rsMySQL.Fields(0).Name, adVarChar, 10, adFldIsNullable
rsData.Fields.Append rsMySQL.Fields(1).Name, adVarChar, 50, adFldIsNullable
rsData.Open

Isi ADODB recordset dengan baris data dari MySQL
For l = 0 To rsMySQL.RecordCount - 1
    rsData.AddNew
    rsData.Fields(0).Value = rsMySQL.Fields(0).Value
    rsData.Fields(1).Value = rsMySQL.Fields(1).Value
    rsData.Update
    rsMySQL.MoveNext
Next

Tampilkan data dari ADODB recordset ke datagrid
Set grdData.DataSource = rsData

Atur tampilan datagrid (caption & width)
With grdData
    .Columns(0).Caption = "Kode Kategori"
    .Columns(1).Caption = "Nama Kategori"
    .Columns(0).Width = 2000
    .Columns(1).Width = 3000
End With

Tutup dan hapus (bersihkan) MySQL Recordset
rsMySQL.CloseRecordset
Set rsMySQL = Nothing

MySQL Recordset harus selalu ditutup dan dibersihkan agar aplikasi tidak berat, dan kapasitas muatan recordset tidak mencapai maksimum yang dapat menyebabkan aplikasi error.

Berikut ini adalah code selengkapnya:

Run aplikasi dan hasilnya akan seperti berikut:

Click here if you like this article.


Artikel Sebelumnya:
Artikel Selanjutnya:

10 comments:

Ahmad Fadholi said...

assalamu'alaikum wr wb. Mbak rani, salam kenal aq fadholi. mau tanya donk ttg data grid vb 6.0 :
1. Gimana caranya agar kolom di data grid bisa menampilkan data angka dalam format currency or number dengan format #,# (angka dengan digit koma 2).
2. Nah ketika kita mengetik angka dari textbox dengan standar ascii hanya bisa angka 1-9 plus koma n backspace, tp koq ketika kita ngetik gk bisa kyk kita ngetik angka di excel yg cursornya selalu di akhir.
3. Caranya agar ketikan textbos td dlm bentuk format currency dg digit koma 2 terus dimasukkan ke database dn ditampilkan lg ke datagrid biar tampil dlm bntuk currency jg, gimana ya caranya.
Sebelumnya aq ucapkan terima kasih banyak, krn aq seseorang yg sdg belajar programmmer vb 6.0 otodidak. :-) mohon jwbannya dikirim ke emailku ya fadholy2316@gmail.com

Ibnu Sabil said...

Assalamu 'alaikum..

Maaf mba mau tanya neh dikit,klo perlu yang banyak skalian tanya nya,maklum Newbie.. hehehe..

Kok tabel data dari SQL nya kok ga bisa masuk ke Datagrid view begitu saya "Run" dengan menggunakan Coding di atas..?? Kunaon tah..?? seperti ada kesalahan dalam coding paling atas ini :
Dim rsMySQL As MYSQL_RS..

Mohon solusi nya.. Thank's..

rani irsan said...

salah nya dimana? error nya dimana?
jadi yang salah code apa programmer nya? :D

Riki Yunus said...

Assalamualaikum wr wb.
Maaf mba mau tanya, kalo misalkan saya ingin menampilkan data dari database ke datagrid dengan menekan sebuah command button dan menampilkan form baru itu bagaimana ya?
Mohon penjelasannya

rani irsan said...

@Riki: klo pengen code berjalan saat command diklik ya, code nya ditempatin di event Click nya command.
Klo pengen nampilin form misalnya form2 tinggal code Form1.Show
Ngomong2 datagrid nya dimana?
Klo misal nya di form baru (form2).
Yah habis manggil form2 di form1, kemudian simpan code menampilkan data di datagrid nya pada event load di form2.

catharina Tastri T. said...

Assalamualaikum wr wb.
Maaf mbak mau tanya, kalo erornya disini "Set grdData.DataSource = rsData" biasanya apa yang perlu diperbaiki ?

rani irsan said...

@catharina:
wa alaikum salam wr wb
ada pesan error nya ga?

catharina Tastri T. said...

@rani : ada mbak "Run Time Error 424 Object Required" itu pesannya mbak. Tolong dibantu mbak, terimakasih

rani irsan said...

@catharina: kemungkinan grdData nya belum dibikin di form atau salah namain, coba di cek lagi. Atau rsData nya belum dideklarasikan

catharina Tastri T. said...

@rani iya mbak terimakasih, kurang teliti heheh