Skip to main content

Fungsi Untuk Membuka Database di Access VBA

Posting kali ini menjelaskan bagaimana membuat fungsi untuk membuka database di MS Access. Fungsi ini melibatkan metode yang sudah umum digunakan di VBA, yaitu OpenDatabase. Membuka database, terutama digunakan untuk menghubungkan ke tabel dan query, adalah proses yang pertama kali dilakukan saat mengakses database.

Gambar Fungsi membukaDbs, untuk membuka database via Access VBA, dijalankan di Immediate Window, berawal dari module, terlihat file Database_be.accdb terbuka ditandai dengan munculnya file Database_be.laccdb di Window Explorer
Untuk membuka database Access, kita membuat fungsi yang dinamakan membukaDbs. Fungsi membukaDbs mempunyai dua pilihan sumber data, yaitu sumber data eksternal dan sumber data lokal. Di antara dua pilihan itu, kita harus menentukan database mana yang akan dibuka. Jika database lokal, berarti kita menggunakan database yang sedang terbuka atau current database. Jika database eksternal, berarti kita membuka database eksternal untuk diolah di database yang sedang terbuka. 

Adapun fungsi membukaDbs adalah sebagai berikut:
Option Compare Database
Public daoDbs As DAO.Database

Function membukaDbs(Optional boolDbsLokal As Boolean = False)
' Parameter: boolDbsLokal = opsional, boolean, bernilai True bila
' berada di database lokal, yaitu menggunakan object CurrentDb.
' default=False

  Dim strLokasi, strStringKoneksi As String
On Error GoTo Err_Msg
  If boolDbsLokal Then
    Set daoDbs = CurrentDb()
  Else
    strLokasi = lokasiDatabase()
    strStringKoneksi = cariDbsConString()
  
    If daoDbs Is Nothing Then Set daoDbs = OpenDatabase(strLokasi, False, False, strStringKoneksi)
  End If
Exit_Function:
  Exit Function
Err_Msg:
  MsgBox "Function membukaDbs, Error # " & str(Err.Number) & ", source: " & Err.Source & _
  Chr(13) & Err.description
  Resume Exit_Function
End Function
Sebelum fungsi membukaDbs dijalankan, kita mendeklarasikan sebuah variabel global di bagian paling atas sebuah module dengan nama daoDbs. Variabel global ini nantinya akan digunakan saat kita mengelola recordset yang akan diproses di dalam fungsi membukaDbs.

Dalam sekali operasi, kita hanya bisa membuka satu database saja, entah itu database lokal atau eksternal. Bila membuka database lokal, maka kita menggunakan metode CurrentDb, seperti tertera pada baris sembilan dari fungsi di atas. Bila membuka database eksternal, maka kita menggunakan metode OpenDatabase. Pemilihan metode ini dilakukan melalui parameter boolDbsLokal. Jika boolDbsLokal bernilai True, maka kita menggunakan metode CurrentDb untuk mengatur daoDbs, selain itu, kita menggunakan metode OpenDatabase.

Jika menggunakan metode OpenDatabase, yang berarti membuka database eksternal, maka kita harus mendapatkan nama path file database dan string koneksinya. Karena itu, kita harus mengatur nama path file menggunakan variabel strLokasi dan string koneksi database menggunakan variabel strStringKoneksi. Nilai strLokasi diperoleh dengan menjalankan fungsi lokasiDatabase, sedangkan nilai strStringKoneksi diperoleh dengan menjalankan fungsi cariDbsConString.

Setelah nilai strLokasi dan strStringKoneksi diperoleh, langkah selanjutnya adalah menetapkan nilai variabel global daoDbs. Begitu nilai variabel global daoDbs diperoleh, maka database sudah terbuka dan siap digunakan.

Implementasi:

Biasanya, kita menjalankan fungsi membukaDbs pada sebuah event procedure Form On Open atau saat sebuah tombol diklik (event procedure On Click). Jika ingin menampilkan sekumpulan recordset, kita menggunakan event procedure Form On Open. Jika ingin menampilkan recordset tunggal dan mengeditnya, kita menggunakan event procedure On Click pada sebuah tombol perintah.
Contoh:

Kita dapat mencoba menjalankan fungsi membukaDbs di Immediate Window, seperti terlihat pada gambar animasi di atas. Misalnya, kita mempunyai dua macam database Access yang terpisah, database back-end dan aplikasinya di database front-end. Nama path file dari database back-end, yang berisi tabel dan query, adalah "D:\Access\Database_be.accdb" seperti tertera pada fungsi lokasiDatabase. Aplikasi yang sedang terbuka, berperan sebagai database front-end dengan nama path file "D:\Access\Database_fe.accdb", juga menggunakan database Access namun tidak berisi tabel dan query, berada di dalam folder yang sama dengan database back-end. Lihat contoh gambar di atas, kotak Window Explorer. Dengan menjalankan fungsi membukaDbs, Access akan membuka database "D:\Access\Database_be.accdb":

?membukaDbs

Jika tabel dan query berada pada database yang sama dengan aplikasi, menjalankan fungsi di bawah ini akan membuka database yang sedang terbuka yaitu  "D:\Access\Database_fe.accdb".

?letDbsOpen True

Comments

  1. Selamat siang, saya juga sedang membuat aplikasi tapi bermasalah untuk mengambil data lewat query saat kodingannya di visual basic aplicationnya, padahal kalau pakai query wizard / query design bisa, bisa minta bantuannya? terimkasih sebelumnya

    ReplyDelete
    Replies
    1. Fungsi Untuk Membuka Database di Access VBA di atas hanya awal dari keseluruhan fungsi pada core modul yg says susun.

      Shinta bisa menuliskan kodingnya di sini, supaya saya bisa cek letak kesalahannya?

      Delete
  2. Selamat siang pak
    apakah perintah vba dapat juga digunakan untuk access project?

    ReplyDelete
    Replies
    1. MS Access 2010 ke bawah masih bisa. Mulai MS Access 2013, Access Project sudah tidak ada. Jadi, kalau membuat MS Access Project (Access Data Project atau ADP) silakan menginstall MS Access 2010 ke bawah.

      Delete

Post a Comment

Posting Terpopuler

Normalisasi, Denormalisasi, dan Anomali Database

Membuat Relasi Database

Menampilkan Data MySQL dalam Form di Access