Thursday, December 08, 2011

Cara Import atau Memindah Data dari Sheet di File Microsoft Excel Menjadi Tabel di File Microsoft Access Menggunakan ADO Microsoft Visual Basic 6.0

Pada posting sebelumnya sudah saya sebutkan contoh cara membuka file Excel di Microsoft Visual Basic 6. menggunakan ADO. Karena file Excel memang bukan "real" database, sehingga biasanya file Excel tidak dijadikan database utama dalam suatu program. Karena Microsoft Excel sudah menjadi aplikasi yang sudah umum digunakan, sehingga biasanya data-data kebanyakan disimpan ke dalam File Excel. Begitu juga dengan data-data yang dibutuhkan dalam sebuah program yang kita buat seringkali user meminta kita untuk memindahkkan data yang sudah ada dari file Excel ke dalam program yang kita buat karena user tentunya tidak mau repot untuk mengetik ulang dan menginputkan semua datanya ke dalam program kita.

Karena latar belakang itulah, perlu kita buatkan ataun tambahkan fasilitas untuk mengambil data dari file Microsoft Excel ke database yang digunakan oleh program kita. Sebagai contoh, database yang digunakan oleh program kita adalah Microsoft Access.

Kali ini akan saya berikan contoh untuk mengambil data dari File Excel menjadi tabel di File Microsoft Access menggunakan ADO.

Sub ImportExcel(Dlg As CommonDialog)

   'variabel untuk koneksi database
   Dim Koneksi As New ADODB.Connection
   Dim rsExcel As New ADODB.Recordset
   Dim strAlamat As String
   Dim strKonek As String


   Dlg.ShowOpen


   If Dlg.FileName = "" Then Exit Sub


On Error Resume Next
   strAlamat = Dlg.FileName
   strKonek = "Provider=Microsoft.jet.OLEDB.4.0;"
   strKonek = strKonek & "data source="
   strKonek = strKonek & App.Path & "\Dataku.mdb" & ";"


'Lakukan koneksi ke file database/excel
   Koneksi.CursorLocation = adUseClient
   Koneksi.Open strKonek


'buka tabel/sheet
   strKueri = "SELECT * INTO tblIdentitas FROM " &
   strKueri = "[Excel 8.0;Database=" & strAlamat & "].[Sheet1$]"


   rsExcel.Open strKueri, Koneksi, adOpenKeyset, adLockOptimistic
   If Err.Number <> 0 Then
      MsgBox Err.Description, vbOKOnly + vbInformation, "informasi"
      Exit Sub
   end if


   MsgBox "Import Data selesai"
   rsExcel.Close
   Set rsExcel = Nothing
   Koneksi.Close
   Set Koneksi = Nothing
End Sub

Script di atas akan mengambil data dari Sheet1 di file Excel menjadi tabel "tblIdentitas" di File "dataku.mdb". Agar script tersebut berjalan dengan baik, file Dataku.mdb sudah harus terbentuk dan tblIdentitas masih belum ada dalam database Dataku.mdb.

Selamat Mencoba

8 comments:

fandiWOW said...

saya masih belum ngerti mas... sebenernya ini trik konek Ms.excel ke ms.Acces atw konek Ms.Acces ke VB...??? mohon pencerahannya gan

Muhammad Akroma said...

dua-duanya bro....
Skenarionya:
Program kita menggunakan database utama Ms. Access....
Misalkan kita sudah punya data identitas tapi berupa file excel...
Terus...daripada ngetik data satu-persatu ke dalam program kita...lebih praktir kita import/ambil saja satu sheet data dari file Ms. Excel menjadi satu buah tabel ke dalam database Ms. Access di program kita...
==========
Cara sederhananya...artikel di atas...
Begitu bro...

FADIL SEVENFOLDISM said...

gan boleh minta project.nya gk...?
kirim email ane dong gan..
fadildzikri@yahoo.com

Muhammad Akroma said...

sorry, untuk project yang ini datanya ikut harddiskku yang rusak...! Mungkin kalau ada yang sudah nyoba, bisa berkenan ngasih projectnya ke Fadil.

Tekhno Solution said...

gimana caranya mas klo saya punya file excel dengan 2 kolom terus saya punya database dengan kolom yg sama, saya mau masukkan klom ke dua file excel ke database dengan pembandingnya kode

ruky prasetiyo said...

mas kalo di database acces sudah ada tabelnya gimana, dan kalo tidak bisa kodenya bagaimana?

suriken said...

Gan, kl ingin input beberapa sheet syntax nya gimana..??
Terima kasih..

Muhammad Akroma said...

Suriken:
Lebih baik bikin program database menggunakan akses saja. Kemudian untuk file excelnya bisa dibuka pake script untuk membuka file excel seperti link ini, sheet di excel diibaratkan sebagai tabel di access. Jadi, kalau sheet lebih dari satu berarti harus menyediakan variabel ADO.Recordset sejumlah sheet yang mau diambil datanya.

Catatan:

Jumlah sheetnya harus sudah pasti (ditentukan di awal program)