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

Sunday, November 20, 2011

Cara Membuka File Excel Menggunakan ADO pada Microsoft Visual Basic 6.0

Meskipun Excel tidak ditujukan menjadi database dalam pemrograman Visual Basic 6.0 tetapi kita bisa membuka file Excel tersebut menggunakan Microsoft Visual Basic 6.0 menggunakan ADO.

Kenapa Menggunakan ADO?
Koneksi ke file Excel lebih baik menggunakan ADO karena meskipun di komputer atau PC tersebut tidak terinstall Microsoft Office, kita masih bisa menggunakan ADO untuk membuka file Excel tersebut.

Bagaimana Cara Membuka File Excel Menggunakan ADO?
Caranya cukup mudah, dan mirip dengan cara membuka file database lainnya semisal Access (mdb). Perbedaannya cuma ada beberapa tambahan pada Connection String-nya.

Misalkan kita punya file Excel dengan nama"Dataku.xls" yang berisi Sheet1, Sheet2, Sheet3.
Pastikan di MS VB6-nya sudah kita aktifkan Referensi Micsosoft ActiveX Data Object 2.0 Library.
Pada awal script kita definiskan dahulu variabelnya seperti berikut:
'==================
Option Explicit

'variabel untuk koneksi ke file excel
Public Conn As New ADODB.Connection


'variabel untuk koneksi ke tabel/sheet
Public rsIdentitas As New ADODB.Recordset
'==================

Kemudian kita buat Sub baru berisi prosedur untuk mengkoneksikan file Excel seperti contoh berikut:

Sub BukaExcel()
    Dim strAlamat As String
    Dim strKonek As String
   
    strAlamat = App.Path & "\dataku.xls"
    strKonek = "Provider=Microsoft.jet.OLEDB.4.0;"
    strKonek = strKonek & "data source=" & strAlamat & ";"
    strKonek = strKonek & "Extended Properties='Excel 8.0;HDR=Yes;IMEX=0';"

'Lakukan koneksi ke file database/excel
    Conn.CursorLocation = adUseClient
    Conn.Open strKonek
   
'buka tabel/sheet
    Dim strKueri As String
    strKueri = "Select * from [Sheet1$]"
    rsIdentitas.Open strKueri, Conn, adOpenKeyset, adLockOptimistic
End Sub


Pada saat form Load, kita panggil sub yang kita buat tersebut seperti contoh berikut:

Private Sub Form_Load()
    BukaExcel
End Sub

Selanjutnya, bisa kita olah data tersebut seperti pengolahan database pada umumnya. Tapi ingat, Excel bukan untuk database sehingga ada keterbatasan pada pengolahan file Excel misalnya: tidak bisa dilakukan perintah recordset.delete (menghapus record) sehingga harus disiasati menggunakan cara lain.

Saturday, November 19, 2011

Telkomsel Flash error Network Connection Problem "The current operating system is not supported" pada Windows XP

Suatu ketika, seperti biasanya saya mau buka om google nyari referensi buat kuliah. Dan seperti biasanya juga...laptop saya nyalakan dan saya tancepin modem USB Telkomsel Flash merk Huawei yang sudah dikasih logonya Telkomsel Flash. Tapi ketika mau koneksi, kok gak seperti biasanya....!!! Muncul error pada koneksinya.

Pesan errornya Network Connection Prompt "The current operating system is not supported" padahal selama ini bisa dan saya gak ganti-ganti operating sistem. Saya pikir ada masalah dengan modem atau SIM Cardnya, lalu saya coba di komputer lain...lha...kok bisa....! Berarti modemnya gak ada masalah.  Terus saya coba lagi berulang kali koneksinya di Laptop saya tetap gak bisa. Saya coba uninstall dengan bersih pake Revo Uninstaller, terus diinstall lagi tetep aja gak bisa. Sampai saya frustasi.

Akhirnya pake komputer yang lain saya cari di Google, ketemunya cuma masalah waktu nginstall karena sistem operasinya gak support. Karena frustasi, akhirnya saya biarkan aja laptopnya tergeletak tak berdaya.

Besok harinya saya coba lagi, tetep aja gak bisa. Kemudian muncul ide jahat di benak saya untuk melempar modem itu jauh-jauh dan beli modem yang lain tapi saya urungkan niat tersebut karena emang bukan salah modemnya. Lalu saya iseng-iseng bikin user baru lewat control panel...lalu saya gunakan user itu untuk masuk ke windows XP. Saya setting tampilan dan sebagainya untuk sekedar refresing. Waktu lihat icon telkomsel Flash, saya tergoda untuk men-doubleclick-nya. Modemnya saya tancepin dan saya double click icon telkomsel flashnya (karena autorun saya matikan). Saya coba koneksinya....alhamdulillah bisa....!

Dengan laptop yang sama, sistem operasi yang sama tapi beda user modem telkomsel flashnya bisa koneksi lagi. Saya coba lagi user lama saya...telkomsel flashnya tetep gak bisa. Cuma bisa menggunakan user yang baru. Berarti kesimpulan saya, ada masalah sama profile user-nya. So, daripada nginstall ulang Windows XP-nya....lebih baik bikin user name baru aja. Problem Solved..!