Mengambil data Excel dengan Visual Basic 6


Artikel kali ini saya ingin  membahas hal basi tapi sulit dalam visual basic 6.0. seperti diketahui, program developer vb6 sudah begitu ketinggalan karena microsoft terus mengembangkan visualbasic.net yang berbasis framework. Namun microsoft tetap berkomitmen mensupport vb6 untuk setiap sistem operasi yang diciptakannya. Maka vb 6 tetap bisa digunakan dalam windows 8 yang baru-baru ini dirilis.

Salah satu hal sulit yang dibicarakan adalah bagaimana caranya menggunakan excel untuk vb6 ?. salah satu hal yang dibutuhkan adalah membaca data dari excel untuk bisa diolah di dalam visual basic. Bisa saja disebabkan user kita menerima data dari tim lain berupa data excel, namun kita harus mengolahnya lagi sehingga dapat digunakan ke dalam sistem kita secara terintegrasi.

Misalnya kita telah menyiapkan file excel dengan isi berikut :

Laporan Bulanan
Kode Nama Nilai
AB Abepura 89
KK Kota Kote 72

Kemudian kita siapkan form vb seperti berikut :

Form Upload File Excel ke VB 6

Form Upload File Excel ke VB 6

Keterangan :

Untuk mengawali pembuatan proyek ini, kita perlu menggunakan component dengan menekan CTRL+T, kemudian pilih Microsoft Common Dialog 6.0 dan Microsoft Flex Grid Control 6.0
Kemudian kita juga perlu untuk memasukkan library excel dengan klik Project > Refference
Pilih Microsoft Excel 12.0 untuk pengguna excel 2007.
Berikut atribut komponen yang digunakan.

Command Button –>  Name : cmdambil             Caption : Ambil File Excel

Common Dialog  –> Name    : C

Flexgrid Control : Name : f

Skrip :

————————————————–

General

Dim eksel As Excel.Application

Dim wb As Excel.Workbook

Dim ws As Excel.Worksheet

————————————————–

Private Sub cmdAmbil_Click()

startexcel

‘buka common dialog open

c.DialogTitle = “Membuka File Excel”

c.ShowOpen

nama = c.FileName

Set wb = eksel.Workbooks.Open(nama)

MsgBox “Berhasil Membuka File”

Set ws = eksel.Worksheets(1)

MsgBox “Berhasil membuat worksheet”

Dim I As Integer, baris As Integer, strdata As String

f.Cols = 4

f.Rows = 3

f.TextMatrix(0, 1) = ws.Cells(2, 1)

f.TextMatrix(0, 2) = ws.Cells(2, 2)

f.TextMatrix(0, 3) = ws.Cells(2, 3)

For I = 1 To 2

For J = 1 To 3

f.TextMatrix(I, J) = ws.Cells(I + 2, J)

Next J

Next I

CloseWorksheet

ClearExcelMemory

End Sub

————————————————-

Private Sub CloseWorksheet()

On Error Resume Next

wb.Close

eksel.Quit

End Sub

————————————–

Private Sub ClearExcelMemory()

If Not ws Is Nothing Then Set ws = Nothing

If Not wb Is Nothing Then Set wb = Nothing

If Not eksel Is Nothing Then Set eksel = Nothing

End Sub

————————————————————–

Private Sub startexcel()

On Error GoTo salah

Set eksel = GetObject(, “excel.Application”)

Exit Sub

salah:

Set eksel = CreateObject(“excel.Application”)

End Sub

Silahkan mempelajari skrip ini, akan saya jelaskan lain kali jika ada yang perlu ditanyakan. Ditunggu komentarnya ya,…

22 Responses

  1. bapak…
    ODBC saya kok gag bisa yaa pak..
    padahal gag ada msalah kemarin2 tu pak…
    udah saya coba pak… masih gag bisa pakk…
    yang untuk buat data source itu pak..
    yg nyambungin vb k xampp pak.. 😦
    mohon bantuannya pak

    • odbc digunakan sebagai data source dari beberapa database. untuk mysql, bisa di download di situs mysql. pilih jenis odbc yang digunakan. jika pernah terinstal, tapi sekarang jadi hilang, bisa saja diakibatkan oleh file yang berpindah. disarankan folder mysql odbcnya disimpan di dalam harddisk, reinstall sekali lagi. pastikan user account notifynya paling rendah.

  2. thank u bapak….
    berhasillll pak…
    iyaaaa…
    ika lupa cara installl nya…
    hehehe 🙂

  3. bapak.. apa flexgrid itu sesuai dengan jumlah cell pada tiap excel kita.?
    berarti kalau mau nyimpan database nya bsa kan pak sesuai dengan format d excell pak…?
    trus gmna kalau dia nyimpan k data base setelah kita import pak.???
    script nya sama seperti biasa atau ada perubahan pak?
    mohon bantuannya pak

  4. kan kita transfer datanya dari excel ke vb. tujuannya biar bisa diedit kan?. setelah kita edit, kita bisa simpan ke database. maka kita simpan seperti cara menyimpan program master-transaksi aja. disimpan perbarisnya. jika tujuannya mau menyimpan datanya dari excel langsung ke db, juga bisa. ndak perlu ditampilkan di flexgrid. tinggal tujuannya aja.

  5. banyak kolom di flexgrid bisa aja kita tambahkan otomatis sesuai dengan jumlah kolom di excel. atau jika memang kita punya indikasi pasti jumlah kolomnya tentunya juga bisa kita sesuaikan untuk flexgridnya. apalagi soal barisnya, harusnya bisa otomatis menyesuaikan barisnya kan….

  6. hmm…
    faham saya pak…
    saya coba buat yaa pak…
    nanti kalau kurang paham akan saya tanya kembali pak.. 🙂
    makasih pak…

  7. bapak…
    kenapa
    “For I = 1 To 2”
    “For J = 1 To 3”
    cols nya 4 dateng dari mana pak?
    mohon bantuan pak..

  8. bapak…
    apa ngatur besar kecilnya suatu kolom di flexgrid sama seperti biasa pak??
    mohon bantuan nya pak.. 🙂

  9. bapak… bagaimana cara kita masukin data yang ada d flexgrid k dalam textbox, tapi masih dalam 1 form yang sama pak??

  10. udah ika coba dngan cara form cari… tapi gag bisa pak…

  11. Saya coba pak tapi ketika karakter di dalam sheet panjang(diatas 16 karakter) malah ga bisa di import ke flexgrid(nilainya null). Itu kenapa ya pak?

  12. pak ada pin bbm nya, saya mau tanya2, terima kasih.

  13. wah ini bermanafaat…
    apakah bisa membaca xlsx dng ukuran row yg besar?
    misal 200 ribu row dan 20 column?

  14. Mantaaap berguna sekali postingan bapak, terima kasih pak
    Pak, bagaimana cara klo visual basic d hubungkan dengan web?

    • VB 6 berbasis client, maksud saya diclient harus diinstall dulu aplikasinya. perkara database ada diserver atau diclient itu lain lagi. kalau aplikasi vb sudah diinstall diclient, tentu bisa dipanggil dengan web javascript. tapi menurut saya itu suatu kemunduran. belum pernah saya mendengar ada yang mau repot menjalankan vb di web. semisal dengan menjalankan android di web. yang ada menjalankan web di android. begitu juga dengan vb, biasanya orang malah mencari cara menjalankan web di vb.

  15. Bisa run, tp pas d klik ambil file, ada indikasi kesalahan di private sub startexcel() jd kuning, teeima kasih

    • Private Sub startexcel()

      On Error GoTo salah

      Set eksel = GetObject(, “excel.Application”)

      Exit Sub

      salah:

      Set eksel = CreateObject(“excel.Application”)

      End Sub
      yang perlu dipastikan, apakah reference nya sudah di aktifkan ?. tanpa ada reff excel itu, ya gak bisa jalan.

Leave a comment