Kamis, 08 Desember 2011

Menampilkan Data dari MySQL ke MsFlexGrid

masih berhubungan dengan MySQL seperti yang sudah saya bahas sebelumnya di Sini, Sekarang Saya akan membahas cara bagaimana menampilkan Data MySQL yang sudah berhasil dibaca ke MsFlexGrid. Saya memilih MsFlexGrid karena relatif lebih mudah dalam pengaturan.

Untuk contoh, saya siapkan sebuah table database seperti berikut (silahkan dicopast kalau mau menggunakan data ini)


CREATE TABLE IF NOT EXISTS pegawai (
NIP char(18) DEFAULT NULL,
NMPEG char(100) DEFAULT NULL,
TEMPATLHR char(50) DEFAULT NULL,
KDGAPOK char(4) DEFAULT NULL,
Nominal int
);

INSERT INTO pegawai VALUES
('110013596000000000', 'HERIEN DJOHAR M.', 'PARE-PARE', '3C32', 1000000),
('110013605000000000', 'DRS.SUNARJONO', 'YOGYAKARTA', '4A30', 1500000),
('110013622000000000', 'NY.SRI MULYATI', 'JAKARTA', '3C32', 1000000),
('110013953000000000', 'NY.KARTININGSIH', 'SOLO', '3B32', 1250000),
('110015937000000000', 'L.SURACHMAN', 'MAGELANG', '3B30', 1750000),
('110016206000000000', 'M.WAJELLI, SE.MBA', 'TANJUNG KARANG', '4A26', 1300000),
('110017469000000000', 'THERESIA SUBIJANTI', 'YOGYAKARTA', '3C30', 1750000),
('110017472000000000', 'NATHANIEL RUNDUPADANG', 'MAKASSAR', '3C28', 1400000),
('110017514000000000', 'SRI JULIANI', 'AMBARAWA', '3B28', 2100000),
('110017672000000000', 'ROCHYATI', 'YOGYAKARTA', '3B30', 1100000);


Langkah-langkahnya sebagai berikut:

1. Buat Project baru

2. Tambahin VbMySQLDirect ke Referensi program seperti saya jelaskan Disini

3. Tambah sebuah MsFlexGrid

4. Copy Code berikut:


Dim Koneksi As New MYSQL_CONNECTION
Dim Recordset As New MYSQL_RS

Private Sub Form_Load()
Koneksi.OpenConnection "localhost", "root", "", "db_appgpp" 'sesuaikan
Set Recordset = Koneksi.Execute("select * from pegawai")

MSFlexGrid1.Cols = Recordset.FieldCount 'Set jumlah kolom Grid, sesuai jumlah field data
MSFlexGrid1.Rows = Recordset.RecordCount + 2 'set jml baris, +2 untuk header
CetakHeader

For Baris = 2 To Recordset.RecordCount + 1 'data dimulai di baris2, brs 0&1 utk header
For Kolom = 0 To Recordset.FieldCount - 1
MSFlexGrid1.TextMatrix(Baris, Kolom) = Recordset.Fields(Kolom)
MSFlexGrid1.ColAlignment(1) = flexAlignCenterleft
MSFlexGrid1.ColAlignment(2) = flexAlignCenterleft
Next
Recordset.MoveNext
Next

ResizeGrid MSFlexGrid1, Me
End Sub

Sub CetakHeader()
With MSFlexGrid1
.FixedRows = 2
.FixedCols = 0
.ForeColorFixed = vbBlue

.TextMatrix(0, 0) = "NIP"
.TextMatrix(1, 0) = "NIP"
.TextMatrix(0, 1) = "NAMA PEGAWAI"
.TextMatrix(1, 1) = "NAMA PEGAWAI"
.TextMatrix(0, 2) = "TEMPAT LAHIR"
.TextMatrix(1, 2) = "TEMPAT LAHIR"

.TextMatrix(0, 3) = "GAJI"
.TextMatrix(0, 4) = "GAJI"
.TextMatrix(1, 3) = "KODE"
.TextMatrix(1, 4) = "NOMINAL"

.ColAlignment(-1) = flexAlignCenterCenter
.FixedAlignment(1) = flexAlignCenterCenter
.FixedAlignment(2) = flexAlignCenterCenter
.ColAlignment(1) = flexAlignCenterleft
.ColAlignment(2) = flexAlignCenterleft
.MergeCells = flexMergeRestrictAll
.MergeCol(0) = True
.MergeCol(1) = True
.MergeCol(2) = True
.MergeRow(0) = True
End With
End Sub

Sub ResizeGrid(pGrid As MSFlexGrid, pForm As Form)
Dim intRow As Integer
Dim intCol As Integer
With pGrid
If .Rows > 100 Then
maxRow = 100
Else: maxRow = (.Rows - 1)
End If
For intCol = 0 To .Cols - 1
For intRow = 0 To maxRow
If .ColWidth(intCol) < pForm.TextWidth(.TextMatrix(intRow, intCol)) + 100 Then
.ColWidth(intCol) = pForm.TextWidth(.TextMatrix(intRow, intCol)) + 100
End If
Next
Next
End With
End Sub


Jika sukses, hasilnya akan seperti ini:


Selamat mencoba..

Welcome

Selamat datang di blog yang sangat sederhana ini.
Ingin menyumbang Artikel di Blog ini? Silahkan hubungi cool_dan@plasa.com

Created by@

Ramedhan Hermawan