Import Database Dari File Excel Dengan VB

Import Database Dari File Excel Dengan VB. Pada kesempatan kali ini saya akan membahas tentang import database dari file excel dengan menggunakan vb 6 pada kesempatan sebelumnya saya pernah membahas tentang Membaca Dan Menampilkan Data Dari File Excel di VB 6, postingan ini merupakan kelanjutan dari postingan tersebut. Pada postingan tersebut hanya membaca dan menampilkan data dari file excel saja,  pada kesempatan kali ini setelah data file excelnya tampil pada msflexgrid kita akan masukan ke dalam sebuah tabel dalam database. Jadi tidak hanya di tampilkan saja melainkan di import masuk kedalam tabel.

Ini sangat berguna jika kita menginginkan memasukan sebuah data dari file excel sehingga kita tidak perlu menginput satu persatu datanya atau aplikasi yang kita buat ada fitur import database dari file excel. Bagaimanakah cara Import Database Dari File Excel Dengan VB ?  ikutilah langkah-langkahnya sebagai berikut ini


Buka Microsoft Visual Basic 6 dan buat dan desainlah sebuah form seperti gambar yang ada di bawah ini

Tampilkan Gambar


Jika sudah selesai mendesainnya lalu tambahkan sebuah modul dengan cara klik menu Project-Add Modul lalu ketikan kode berikut ini

Public conXls As ADODB.Connection
Public Conn As New ADODB.Connection

'Function Ini di gunakan untuk koneksi ke file excel
Public Function openExcelFile(ByVal excelFile As String) As Boolean
    On Error GoTo errHandle
    '-----------------------
    'Jika menggunakan Office 2007 ke atas ganti Provider=Microsoft.Jet.OLEDB.4.0;
    'menjadi Provider=Microsoft.ACE.OLEDB.12.0;
    
    Set conXls = New ADODB.Connection
    conXls.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
                            & "Data Source=" & Replace(excelFile, Chr$(0), "") & ";" _
                            & "Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
    conXls.Open
    '-------------------
    openExcelFile = True
    Exit Function
errHandle:
    openExcelFile = False
End Function

'Untuk koneksi database ms access pd waktu memasukan data ke dlm database
Public Sub KonekDb()
    Set Conn = New ADODB.Connection
    
    'Jika menggunakan ms access 2007 keatas pakailah koding berikut:
    'Conn.Open "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & App.Path & "\db_mhs.accdb;"
    'Conn.CursorLocation = adUseClient
    
    Conn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\DB_MHS.mdb"
    Conn.CursorLocation = adUseClient
End Sub


Jika Sudah buka desain formnya kemudian double klik formnya kemudian ketikan kode berikut ini pada general declarations

Dim rsExcel     As ADODB.Recordset
    Dim strSql      As String
    Dim Baris       As Long
    Dim SQL         As String

'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 selesai kemudian double klik CmdBuka dan ketikanlah kode berikut ini yang berfungsi untuk menampilkan data dari file excel ke dalam sebuah MsFlexgrid:

Private Sub CmdBuka_Click()
    MSFlexGrid1.Clear
    Call AktifMSFlexGrid1
    Baris = 0
    'Memilih File Excel
    With CommonDialog1
        .DialogTitle = "Pilih File Excelnya (.xls)"
        .InitDir = App.Path
        .Filter = "SQL Files (*.xls)|*.xls"
        'jika menggunakan file excel 2007 keatas
        'untuk .Filter = "SQL Files (*.xls)|*.xls" '
        'Ganti dengan .Filter = "SQL Files (*.xlsx)|*.xlsx"
        .ShowOpen
    End With
    'menampilkan nama filenya di textbox
    TxtNamaFile.Text = CommonDialog1.FileName
    'Membuka File Excel
    If openExcelFile(CommonDialog1.FileName) Then
        'selanjutnya data yg diambil ada di sheet1,
        'sheet disini sama seperti tabel yang ada di database
        strSql = "SELECT * FROM [Sheet1$]" ' penting !!!, jangan lupa menambahkan karakter $
        Set rsExcel = New ADODB.Recordset
        rsExcel.Open strSql, conXls, adOpenForwardOnly, adLockReadOnly
        'tampilkan data yg ada sheet1 ke MSFlexGrid1
        If Not rsExcel.EOF Then
            Do While Not rsExcel.EOF
                Baris = Baris + 1
                MSFlexGrid1.Rows = Baris + 1
                MSFlexGrid1.TextMatrix(Baris, 0) = Baris
                MSFlexGrid1.TextMatrix(Baris, 1) = rsExcel(0).Value
                MSFlexGrid1.TextMatrix(Baris, 2) = rsExcel(1).Value
                MSFlexGrid1.TextMatrix(Baris, 3) = rsExcel(2).Value
                MSFlexGrid1.TextMatrix(Baris, 4) = rsExcel(3).Value
                rsExcel.MoveNext
                DoEvents
            Loop
        End If
        rsExcel.Close
        Set rsExcel = Nothing
    End If
End Sub


Jika sudah kemudian double klik CmdImport dan ketikankah kode berikut ini yang berfungsi untuk menyimpan data yang telah tampil di MsFlexGrid

Private Sub CmdImport_Click()
On Error GoTo AdaError
    Dim i As Integer
    Call KonekDb
    For i = 1 To MSFlexGrid1.Rows - 1
        SQL = ""
        SQL = "INSERT INTO Tbl_Mhs(Nim,Nama,alamat,jurusan) " _
            & "VALUES ('" & MSFlexGrid1.TextMatrix(i, 1) & "'," _
            & "'" & MSFlexGrid1.TextMatrix(i, 2) & "'," _
            & "'" & MSFlexGrid1.TextMatrix(i, 3) & "'," _
            & "'" & MSFlexGrid1.TextMatrix(i, 4) & "')"
        Conn.Execute (SQL), , adCmdText
        DoEvents
    Next i
    MsgBox "Import data berhasil, Silahkan di cek...", vbInformation, ".:: Sukses..."
    Exit Sub
AdaError:
If Err.Number = -2147467259 Then
    MsgBox "NIM " & MSFlexGrid1.TextMatrix(i, 1) & " sudah ada dalam database." & vbCrLf & _
    "Pada file excelnya di baris " & i + 1 & " ,silahkan hapus terlebih dahulu lalu ulangi.", vbCritical, ".:: Gagal...!!!"
    Exit Sub
Else
    MsgBox "Error No : " & Err.Number & vbCrLf & _
    Err.Description, vbCritical + vbOKOnly, "Error......"
End If
End Sub


Kemudian tulislah kode pada bagian form load, double klik formnya kemudian tulis kode berikut ini

Private Sub Form_Load()
    Call AktifMSFlexGrid1
End Sub


Jika sudah semuanya silahkan programnya di jalankan,jika berhasil akan tampil seperti gambar animasi berikut ini



Selesai. semoga tutorial ini bermanfaat. Jika anda tidak ingin ribet mendesain dan menulis kodenya silahkan download source kodenya yang telah saya sediakan di link di akhir tulisan ini. Silahkan di download dan digunakan dengan baik.

Pada postingan berikutnya saya akan membuat sebuah tutorial Bagaimana Cara Eksport Database Ke Ms Excel. Tunggu ya...?

Tutorial ini dapat di terapkan tidak hanya untuk database ms access saja bisa, anda bisa menerapkan pada database MS SQL Server maupun MySQL Server tinggal diganti saja koneksi nya.






Keywords:
Import Database Dari File Excel Dengan VB,Tutorial Import Database Dari File Excel Dengan VB,Cara Import Database Dari File Excel Dengan VB,Import Ekport Database, Trik Import Eksport Database,Cara Mudah Import Dan Eksport Database,Coding Import data dari Excel ke Database,Cara Membuat Import Data Dari Excel Menggunakan Visual Basic,Mengambil data Excel dengan Visual Basic 6,Impor data dari Excel ke Visual Basic,Import Data Excel Ke MS Access Menggunakan VB6,

21 comments:

  1. gan saya coba database dan codingnya trus pas import muncul error -2147217900 mohon pencerahannya gan ?

    ReplyDelete
  2. gan saya coba edit database dan codingnya trus pas import muncul error -2147217900 mohon pencerahannya gan ?

    ReplyDelete
  3. nim nya sudah ada di dalam database gan. jika ada nim yang sama (double) atau sudah ada dalam tabel maka akan error atau datanya tidak akan masuk. karena nim nya saya buat primery key. coba data dalam tabel di hapus semua baru import. klo datanya sudah masuk g usah di import lagi. trima kasih...

    ReplyDelete
  4. database dalam keadaan kosong gan trus primary key nya saya hapus gan tapi tetep muncul error kaya gitu..

    ReplyDelete
  5. klo mau silahkan dikirim source kodenya sama file excelnya ke email saya : birawa_84@yahoo.co.id biar nanti saya cek dan benerin gan.

    ReplyDelete
  6. terima kasih Gan.., semoga Allah yang balas semua kebaikan nya
    jaenal

    ReplyDelete
  7. mas, adakah fb ato WA yg bisa untuk chatingan ? ane mau memperdalam ilmu vb juga nih.. tq

    ReplyDelete
  8. Replies
    1. Terima Kasih gan untuk laporannaya, sudah saya perbaiki silahkan di download

      Delete
    2. gan kok ditempat saya eror terus ya padahal udah di hapus primary key nya

      Delete
    3. coba di kirim ke email sorce code sama data file excelnya biar saya cek mas. birawa_84@yahoo.co.id

      Delete
  9. link download kok di blokir " telah dilaporkan sebagai situs penyerang " apa maksudnya ?

    ReplyDelete
  10. mas.. ada WA or bbm gag?? boleh minta?? aku mau nanya" mas.. terimakasih

    ReplyDelete
  11. Om Hadi Asoka ada nomor utk WA...mau minta bbrapa pencerahan ini mengenai VB6? Thanks

    ReplyDelete
  12. siang bro, kode ini untuk database Akcess, ya...
    kalau untuk database model SQL Sever bagaimana ya??

    ReplyDelete
    Replies
    1. tinggal disesuikan pada bagian koneksi ke databasenya aja. yang lain sama

      Tinggal ganti pada bagian ini aja, ganti dengan koneksi Ke SQL Server nya
      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

      Delete
  13. apa yang perlu saya ubah kalau saya hanya ingin mengimport beberapa kolom spesifik dari excel saya saja? terima kasih

    ReplyDelete
  14. Mantap gan, terimakasih tutorialnya sangat membantu sekali 😁😁😁

    ReplyDelete