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