Dalam sebuah aplikasi database yang disusun dengan menggunakan VBA dan menggunakan database back-end yang tidak selalu terbuka, kita harus memastikan terlebih dahulu, apakah database back-end itu dalam posisi sudah dibuka atau tidak. Untuk memastikannya, kita dapat membuat fungsi yang digunakan untuk mengecek sebuah database yang terbuka.
Kita dapat mengecek database yang terbuka dengan membuat fungsi yang diberi nama cekDbsTerbuka seperti berikut ini:
Pada fungsi di atas, daoDbs adalah variabel global yang merupakan nama object database yang ditetapkan melalui fungsi membukaDbs. Jadi, fungsi cekDbsTerbuka bernilai True hanya jika kita menjalankan fungsi membukaDbs.
Jika daoDbs sudah terbuka, maka kita bisa menggunakan database untuk operasi lebih jauh, seperti membuka tabel, menjalankan query, dan lain-lain.
Implementasi
Kita dapat mengimplementasikan fungsi cekDbsTerbuka di Immediate Window sebagai berikut:
Gambar 1 Animasi fungsi cekDbsTerbuka |
Function cekDbsTerbuka() As Boolean On Error GoTo Err_Msg cekDbsTerbuka = False If Not (daoDbs Is Nothing) Then cekDbsTerbuka = True Exit_Function: Exit Function Err_Msg: MsgBox "Function cekDbsTerbuka, Error # " & str(Err.Number) & ", source: " & Err.Source & _ Chr(13) & Err.description Resume Exit_Function End FunctionHasil dari fungsi cekDbsTerbuka itu adalah ekspresi Boolean yang dapat bernilai True (atau Yes) atau False (atau No). Bila database dalam posisi terbuka, maka cekDbsTerbuka bernilai True, di luar itu, cekDbsTerbuka bernilai False.
Pada fungsi di atas, daoDbs adalah variabel global yang merupakan nama object database yang ditetapkan melalui fungsi membukaDbs. Jadi, fungsi cekDbsTerbuka bernilai True hanya jika kita menjalankan fungsi membukaDbs.
Jika daoDbs sudah terbuka, maka kita bisa menggunakan database untuk operasi lebih jauh, seperti membuka tabel, menjalankan query, dan lain-lain.
Implementasi
Kita dapat mengimplementasikan fungsi cekDbsTerbuka di Immediate Window sebagai berikut:
?cekDbsTerbuka False ?membukaDbs ?cekDbsTerbuka False ?menutupDbs ?cekDbsTerbuka FalseSimulasi fungsi cekDbsTerbuka dapat dilihat di gambar animasi di awal posting ini. Fungsi cekDbsTerbuka bisa juga digabungkan dengan pernyataan If ... then ... else ... Misalnya: If cekDbsTerbuka then daoDbs.Exceute "sebuah query". Contoh lainnya, If not cekDbsTerbuka then MsgBox daoDbs.Name & " belum dibuka" untuk menyatakan bahwa database yang dinyatakan dalam varibel daoDbs belum dibuka.
Comments
Post a Comment