Eksport Database Ke File Excel Dengan VB

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

Tampilkan Gambar

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.

Tampilkan Gambar

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

9 comments:

  1. Artikelnya sangat membantu, terimakasih banyak untuk ilmunya.

    ReplyDelete
  2. Kalau MSflexGrid Diganti Pakai DataGrid Bisa Ga ? Gimana Codingnya, terima kasih..

    ReplyDelete
  3. dalam 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

    ReplyDelete
    Replies
    1. Kolom pada excelnya sudah di coba untuk dilebarin blm mas?

      Delete
    2. sudah mas...contohnya jika angka 1234567890123456, maka angka terakhir "6" menjadi "0"...jadinya 1234567890120000

      Delete
  4. KOc sy nyoba debug disini ya, kira-kira knp ya om?
    Public Sub FlexGrid_To_Excel(TheFlexgrid As MSFlexGrid, _
    TheRows As Integer, TheCols As Integer, _
    Optional GridStyle As Integer = 1, _
    Optional WorkSheetName As String)

    ReplyDelete
  5. Saya nyoba debug dsini, kira-kira kenapa ya om?
    Public Sub FlexGrid_To_Excel(TheFlexgrid As MSFlexGrid, _
    TheRows As Integer, TheCols As Integer, _
    Optional GridStyle As Integer = 1, _
    Optional WorkSheetName As String)

    ReplyDelete