Membuka File dBase

Meskipun dBase sudah jarang yang memakai sebagai backend aplikasi-aplikasi di masa kini, tetap saja ada yang masih menggunakannya karena sudah terlanjur memakai dari sejak lama dan mereka tidak melihat alasan untuk mengganti ke model database yang baru.

Hal ini juga saya alami, ketika saya mendapat satu pesanan aplikasi yang harus bisa import data dari dBase. Data tersebut harus bisa di’lebur’ ke dalam database utama yang saya buat dengan MySQL. Untuk frontend saya memakai Visual Basic 6.0.

Pertamanya sih bingung juga, setelah cari sana-sini ketemu juga untuk membuka data dBase. Untuk connection string kita masih memakai bantuan konektor Microsoft Jet. Cara penulisan string nya sebagai berikut:

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=folder_lengkap;Extended Properties=dBASE IV;User ID=Admin;Password=;"

Di Data Source anda bisa ganti dengan path dan nama dBase nya, misalnya file dBase nya adalah contoh.dbf dan berada di folder C:\Data\ maka connection string nya menjadi seperti ini:

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Data\;Extended Properties=dBASE IV;User ID=Admin;Password=;"

Buka koneksi string itu dengan object Connection ADODB. Oya, anda bisa tetap memakai ADODB object untuk membukanya. Lalu untuk memakai koneksi di object recordset-nya anda bisa membuka table-nya dengan cara seperti ini:

rs.Open "SELECT * FROM nama_file sehingga dalam contoh ini, anda bisa membuka file contoh.dbf dengan menuliskan SQL statement seperti ini: rs.Open "SELECT * FROM contoh.dbf.

Nah, proses selanjutnya anda bisa mengelola nya seperti biasa dan untuk lebih jelasnya, rekan-rekan bisa melihat contoh dari aplikasi saya:

Dim conn_mpm As ADODB.Connection
Dim rs_data As New ADODB.Recordset
Dim con_string_mpm As String
Dim folder_data As String
Dim nama_file As String
Dim str_sql As String
'/berikan default nama file dan path db
folder_data = "C:\Data\"
nama_file = "contoh.dbf"
'/set connection string
con_string_mpm = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & folder_data & ";Extended Properties=dBASE IV;User ID=Admin;Password=;"
'/buka koneksi
Set conn_mpm = New ADODB.Connection
With conn_mpm
    .ConnectionString = con_string_mpm
    .CursorLocation = adUseClient
    .Open
End With
'/string sql
str_sql = "SELECT * FROM " & nama_file
With rs_data
    .CursorLocation = adUseClient
    .Open str_sql, conn_mpm, adOpenStatic, adLockReadOnly
    .Requery
    If .RecordCount <= 0 Then
        MsgBox "Tidak ada data di dalam file!", vbExclamation, "Kosong"
    Else
        masukan field ke control form anda.
    End If
End With
'/hapus memory
Set rs_data = Nothing

Semoga artikel ini bisa sedikit bermanfaat.

8 comments

  1. @Ali: Hehehe ngga Pak, saya hanya seorang karyawan biasa dari perusahaan swasta…

  2. Salam kenal Pak Edi
    Postingnya bagus2 pak..kebetulan saya juga lg belajar VB, baru dasar, databasenya jg cuma MS Acces.
    Kalo boleh nanya Pak, program menggunakan VB+MSAcces apa bisa dipakai utk multi user Pak?yg disharing databasenya aja atau plus aplikasinya jg ya pak?
    Thx sebelumnya…

    Sukses Selalu buat Bpk, terima kasih buat ilmunya.

    anto

  3. Mas Anto, kl boleh saya ingin memberikan sedikit tanggapan tentang pertanyaan Mas ke Pak Edi.
    Sepengetahuan saya, MS Access itu tidak bisa dijadikan aplikasi yang multi user, melainkan hanya bisa untuk standalone. tapi bisa diakali dengan cara mengkoneksikan program yang bertindak sebagai server dengan client nya menggunakan winsock. Semoga membantu. kl mau saya punya contoh programnya.
    .-= Yayan´s last blog ..Pembulatan ke atas berdasarkan nilai tertentu =-.

  4. Pak..aplikasi sy pake sql Pake Dim As DTBS tp ga mau jaln pd Set DTBS As Database,ejeaan nama databasenya,lopkasinya sudah benar tapi g mau jlan terus yg salah dmnanya y/

  5. Salam kenal pak edi, saya mau bertanya mengapa database saya tidak terkoneksi dan ada kata-kata
    “The ‘Microsoft.Jet.OLEDB.4.0’ provider is not registered on the local machine”
    apakah artinya belum ter registry kah ? dan bagaimana solusinya ? terimakasih. Fauzan

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.