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.
Adapun fungsi membukaDbs adalah sebagai berikut:
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.
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":
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".
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 FunctionSebelum 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
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
ReplyDeleteFungsi Untuk Membuka Database di Access VBA di atas hanya awal dari keseluruhan fungsi pada core modul yg says susun.
DeleteShinta bisa menuliskan kodingnya di sini, supaya saya bisa cek letak kesalahannya?
Selamat siang pak
ReplyDeleteapakah perintah vba dapat juga digunakan untuk access project?
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