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
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,
 
gan saya coba database dan codingnya trus pas import muncul error -2147217900 mohon pencerahannya gan ?
ReplyDeletegan saya coba edit database dan codingnya trus pas import muncul error -2147217900 mohon pencerahannya gan ?
ReplyDeletenim 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...
ReplyDeletedatabase dalam keadaan kosong gan trus primary key nya saya hapus gan tapi tetep muncul error kaya gitu..
ReplyDeleteklo mau silahkan dikirim source kodenya sama file excelnya ke email saya : birawa_84@yahoo.co.id biar nanti saya cek dan benerin gan.
ReplyDeleteterima kasih Gan.., semoga Allah yang balas semua kebaikan nya
ReplyDeletejaenal
mas, adakah fb ato WA yg bisa untuk chatingan ? ane mau memperdalam ilmu vb juga nih.. tq
ReplyDeleteini FB saya :facebook.com/hadiasoka
Deletegan filenya nggak bisa di ada
ReplyDeleteTerima Kasih gan untuk laporannaya, sudah saya perbaiki silahkan di download
Deletegan kok ditempat saya eror terus ya padahal udah di hapus primary key nya
Deletecoba di kirim ke email sorce code sama data file excelnya biar saya cek mas. birawa_84@yahoo.co.id
Deletelink download kok di blokir " telah dilaporkan sebagai situs penyerang " apa maksudnya ?
ReplyDeletemas.. ada WA or bbm gag?? boleh minta?? aku mau nanya" mas.. terimakasih
ReplyDeleteOm Hadi Asoka ada nomor utk WA...mau minta bbrapa pencerahan ini mengenai VB6? Thanks
ReplyDeleteada 085 663 25 035
Deletesiang bro, kode ini untuk database Akcess, ya...
ReplyDeletekalau untuk database model SQL Sever bagaimana ya??
tinggal disesuikan pada bagian koneksi ke databasenya aja. yang lain sama
DeleteTinggal 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
apa yang perlu saya ubah kalau saya hanya ingin mengimport beberapa kolom spesifik dari excel saya saja? terima kasih
ReplyDeleteerror 3001 kenapa yach...
ReplyDeleteMantap gan, terimakasih tutorialnya sangat membantu sekali 😁😁😁
ReplyDelete