Eksport Database Ke File Excel Dengan VB. Pada postingan sebelumnya kita membahas cara
Import Database Dari File Excel, untuk kesempatan kali ini saya akan membahas tentang cara eksport database ke ms excel seperti yang telah saya janjikan sebelumnya.
Pada postingan ini saya akan menggunakan database ms access kemudian kita lakukan eksport ke ms excel, trik ini dapat anda terapkan pada database selain ms access misalnya MySQL SERVER, MS SQL SERVER atau pun yang lainnnya tinggal mengganti koneksi databasenya saja.
Data yang dieksport alurnya seperti ini : data di tampilkan di msflexgrid lalu kita eksport ke excel, jadi data yang tampil di msflexgrid saja yang kita eksport nantinya, jadi kita bisa menentukan data yang mana saja yang ingin kita eksport.
Bagaimana Cara Eksport Database Ke File Excel Dengan VB ? Ikutilah caranya sebagai berikut ini :
Buka Visual Basicnya kemudian buatlah sebuah form seperti berikut ini
Lalu Cari dan tambahkan references Microsoft ActiveX Data Object 2.x Librari dan ms excel 14 Object Library kalau tidak ada ms Excel 14 bisa versi 12 atau yang lebih rendah , caranya klik menu Project-References maka akan muncul jendela seperti gambar berikut ini lalu cari dan centang Object Library yang dimaksuhkan kemudin klik ok.
Jika sudah selanjutnya membuat koding. sebelumnya tambahkan sebuah modul caranya klik menu Project-Add Modul kemudian ketiklah koding berikut ini
'Untuk koneksi database ms access pd waktu memasukan data ke dlm database
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
'Prosedur Untuk Eksport
Public Sub FlexGrid_To_Excel(TheFlexgrid As MSFlexGrid, _
TheRows As Integer, TheCols As Integer, _
Optional GridStyle As Integer = 1, _
Optional WorkSheetName As String)
Dim objXL As New Excel.Application
Dim wbXL As New Excel.Workbook
Dim wsXL As New Excel.Worksheet
Dim intRow As Integer ' counter
Dim intCol As Integer ' counter
If Not IsObject(objXL) Then
MsgBox "You need Microsoft Excel to use this function", _
vbExclamation, "Print to Excel"
Exit Sub
End If
On Error Resume Next
' Membuka Excel
objXL.Visible = True
Set wbXL = objXL.Workbooks.Add
Set wsXL = objXL.ActiveSheet
' Nama worksheet
With wsXL
If Not WorkSheetName = "" Then
.Name = WorkSheetName
End If
End With
' Fill worksheet
For intRow = 1 To TheRows
For intCol = 1 To TheCols
With TheFlexgrid
wsXL.Cells(intRow, intCol).Value = _
.TextMatrix(intRow - 1, intCol - 1) & " "
End With
Next
Next
' Format Tampilan Excel
For intCol = 1 To TheCols
wsXL.Columns(intCol).AutoFit
wsXL.Range("a1", Right(wsXL.Columns(TheCols).AddressLocal, _
1) & TheRows).AutoFormat GridStyle
Next
End Sub
Kemudian double klik formnya lalu ketikkan koding berikut ini pada form load yang berfungsi untuk menampilkan data pada grid
Private Sub Form_Load()
MSFlexGrid1.Clear
Call AktifMSFlexGrid1
MSFlexGrid1.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
On Error Resume Next
Baris = Baris + 1
MSFlexGrid1.Rows = Baris + 1
MSFlexGrid1.TextMatrix(Baris, 0) = Baris
MSFlexGrid1.TextMatrix(Baris, 1) = !nim
MSFlexGrid1.TextMatrix(Baris, 2) = !nama
MSFlexGrid1.TextMatrix(Baris, 3) = !alamat
MSFlexGrid1.TextMatrix(Baris, 4) = !jurusan
.MoveNext
Loop
End With
End If
End Sub
Kemudian pada bagian general declaration ketikan koding berikut ini :
Dim RsMhs As New ADODB.Recordset
Dim Baris As Integer
'Untuk Mengatur Tampilan MSFlexGrid1
Sub AktifMSFlexGrid1()
MSFlexGrid1.Cols = 5
MSFlexGrid1.RowHeightMin = 300
'-------------------------------------------------
MSFlexGrid1.Col = 0
MSFlexGrid1.Row = 0
MSFlexGrid1.Text = "NO"
MSFlexGrid1.CellFontBold = True
MSFlexGrid1.ColWidth(0) = 500
MSFlexGrid1.AllowUserResizing = flexResizeColumns
MSFlexGrid1.CellAlignment = flexAlignCenterCenter
'-------------------------------------------------
MSFlexGrid1.Col = 1
MSFlexGrid1.Row = 0
MSFlexGrid1.Text = "NIM"
MSFlexGrid1.CellFontBold = True
MSFlexGrid1.ColWidth(1) = 900
MSFlexGrid1.AllowUserResizing = flexResizeColumns
MSFlexGrid1.CellAlignment = flexAlignCenterCenter
'-------------------------------------------------
MSFlexGrid1.Col = 2
MSFlexGrid1.Row = 0
MSFlexGrid1.Text = "NAMA MAHASISWA"
MSFlexGrid1.CellFontBold = True
MSFlexGrid1.ColWidth(2) = 2000
MSFlexGrid1.AllowUserResizing = flexResizeColumns
MSFlexGrid1.CellAlignment = flexAlignCenterCenter
'-------------------------------------------------
MSFlexGrid1.Col = 3
MSFlexGrid1.Row = 0
MSFlexGrid1.Text = "ALAMAT"
MSFlexGrid1.CellFontBold = True
MSFlexGrid1.ColWidth(3) = 2000
MSFlexGrid1.AllowUserResizing = flexResizeColumns
MSFlexGrid1.CellAlignment = flexAlignCenterCenter
'---------------------------------------------------
MSFlexGrid1.Col = 4
MSFlexGrid1.Row = 0
MSFlexGrid1.Text = "JURUSAN"
MSFlexGrid1.CellFontBold = True
MSFlexGrid1.ColWidth(4) = 2000
MSFlexGrid1.AllowUserResizing = flexResizeColumns
MSFlexGrid1.CellAlignment = flexAlignCenterCenter
End Sub
Jika sudah ketikan koding berikut ini pada tombol Eksport
Private Sub CmdEksport_Click()
FlexGrid_To_Excel MSFlexGrid1, MSFlexGrid1.Rows, MSFlexGrid1.Cols, 1, "Data Mahasiswa"
DoEvents
End Sub
Untuk lebih jelasnya lihat gambar berikut ini...
Jika sudah semua silahkan di run koding diatas sudah bisa untuk melakukan eksport data.
Untuk koding tombol refresh,tombol close dan pencarian data tidak saya jelaskan di sini, untuk koding lengkapnya silahkan download source codenya yang saya sertakan link downloadnya di akhir tulisan ini. Untuk melakukan eksport database ke ms excel dengan koding yang telah saya jelaskan di atas sudah bisa digunakan.
Tags:
Eksport Database, Excel, Eksport Import Database, Visual Basic 6,Eksport Database Ke File Excel Dengan VB,Cara Eksport Database Ke File Excel Dengan VB
Artikelnya sangat membantu, terimakasih banyak untuk ilmunya.
ReplyDeleteMantap banget artikel2 bapa
ReplyDeleteKalau MSflexGrid Diganti Pakai DataGrid Bisa Ga ? Gimana Codingnya, terima kasih..
ReplyDeletedalam kolom nim saya coba isi dengan angka lebih dari 16 digit, saat diexport ke xcel angka terakhir menjadi 0000, agar angka akhir tidak jadi 0000 kodingnya apa ya Gan. Trims
ReplyDeleteKolom pada excelnya sudah di coba untuk dilebarin blm mas?
Deletesudah mas...contohnya jika angka 1234567890123456, maka angka terakhir "6" menjadi "0"...jadinya 1234567890120000
DeleteSudah Mas
DeleteKOc sy nyoba debug disini ya, kira-kira knp ya om?
ReplyDeletePublic Sub FlexGrid_To_Excel(TheFlexgrid As MSFlexGrid, _
TheRows As Integer, TheCols As Integer, _
Optional GridStyle As Integer = 1, _
Optional WorkSheetName As String)
Saya nyoba debug dsini, kira-kira kenapa ya om?
ReplyDeletePublic Sub FlexGrid_To_Excel(TheFlexgrid As MSFlexGrid, _
TheRows As Integer, TheCols As Integer, _
Optional GridStyle As Integer = 1, _
Optional WorkSheetName As String)