Pada posting yang berkaitan dengan front-end database kali ini, kita akan membuat program sederhana yang digunakan untuk mengakses sebuah tabel di back-end database untuk kemudian data pada tabel itu dimuat seluruhnya ke sebuah form. Ikuti penjelasan lengkap berikut ini.
Pemrogram Access yang masih awam biasanya akan menempatkan tabel dan query dalam satu database yang sama. Sebagai contoh, bonus CD yang ada di Buku Membuat Program Akuntansi dengan MS Access VBA menempatkan tabel, query, form, report, macro, dan modul pada satu database yang sama. Dengan demikian, penanganan data dalam hal menambahkan, mengedit, dan menghapus sebuah record dalam sebuah form menjadi user friendly. Programmer Access hanya perlu mengaitkan tabel yang ingin diupdate ke record-source sebuah user interface berupa form. Istilah di MS Access, dengan membuat bound control di form.
Hal seperti di ataas bisa juga dilakukan pada sebuah front-end database, di mana tabel hanya tersimpan di back-end database, tidak ada tabel sama sekali di dalam front-end database, juga tidak ada sebuah linked table di dalamnya.
Berikut ini adalah contoh penerapan back-end dan front-end database Access dengan bound control.
Pemrogram Access yang masih awam biasanya akan menempatkan tabel dan query dalam satu database yang sama. Sebagai contoh, bonus CD yang ada di Buku Membuat Program Akuntansi dengan MS Access VBA menempatkan tabel, query, form, report, macro, dan modul pada satu database yang sama. Dengan demikian, penanganan data dalam hal menambahkan, mengedit, dan menghapus sebuah record dalam sebuah form menjadi user friendly. Programmer Access hanya perlu mengaitkan tabel yang ingin diupdate ke record-source sebuah user interface berupa form. Istilah di MS Access, dengan membuat bound control di form.
Hal seperti di ataas bisa juga dilakukan pada sebuah front-end database, di mana tabel hanya tersimpan di back-end database, tidak ada tabel sama sekali di dalam front-end database, juga tidak ada sebuah linked table di dalamnya.
Berikut ini adalah contoh penerapan back-end dan front-end database Access dengan bound control.
- Gunakan file Access Database_be.accdb yang ada di posting Contoh Sederhana Aplikasi Back-End dan Front-End Database di MS Access Dengan Menggunakan DAO. File Database_be.accdb ini berfungsi sebagai back-end database.
- Buatlah file database Access dengan nama DatabaseBC_fe.accdb. File DatabaseBC_fe.accdb ini merupakan database front-end yang mempunyai bound control pada form dan tidak ada tabel apa pun di dalam database ini.
- Karena ingin mengambil properti field yang ada di tabel, maka kita harus membuat link table ke Database_be.accdb agar properti tabel di database itu bisa diaplikasikan di mana pun kita ingin membuat object selain table (misalnya, form dan report). Untuk itu, buatlah link table dari satu tabel, misalnya: tabel tblRekUtama, atau seluruh tabel yang ada di file Database_be.accdb. Ikuti cara membuat link table pada link posting tersebut di atas.
- Setelah link table berhasil dibuat, kita akan membuat form kasar dari link table yang tersedia itu. Misalnya pilih tabel tblRekUtama seperti di atas. Sorotlah tabel tblRekUtama, lalu buatlah sebuah form sederhana dengan menggunakan cara Membuat Form Menggunakan Form Wizard. Namailah form yang baru dibuat itu: frmRekUtama.
- Bukalah frmRekUtama dalam format Design View, seperti telihat di gambar bawah.
- Atur properti form Record Selectors=No
- Kosongkanlah properti Record Source dari form frmRekUtama (menjadi unbound record source)
- Kosongkanlah Control Source dari form control yang ada di dalam form frmRekUtama (menjadi unbound control source). Hal yang perlu diperhatikan di sini adalah: Nama control source harus sama dengan nama field tabel yang ada di tblRekUtama. Ini penting, karena akan digunakan dalam proses retrieving data yang sesuai dengan nama field tabel. Jadi, jangan mengubah nama control source yang menunjukkan nama field tabel.
- Hasil akhir terlihat di gambar bawah:
- Tampilan frmRekUtama, dalam format Form View akan seperti gambar di bawah.
- Kini, form yang kosong (unbound) dengan sebagian properti yang berasal dari tabel tblRekUtama sudah terpasang di form frmRekUtama.
- Selanjutanya, isikanlah kode VBA pada class module Frm_frmRekUtama seperti di bawah/tab sebelah kanan, setelah itu simpanlah form frmRekUtama
- Pada Access Navigation Pane, hapuslah semua Linked Table yang ada di Object Tables. Tujuannya, untuk memaksimalkan fungsi database front-end. Dengan demikian, file DatabaseBC_fe.accdb hanya ada satu buah form frmRekUtama, seperti tampak pada gambar di bawah.
- Tampilan frmRekUtama, dalam format Datasheet View akan tampak seperti gambar di bawah (atur properti form: Default View=Datasheet dan Allow Datasheet View=Yes).
Berikut ini adalah kode VBA yang ada di class module Frm_frmRekUtama
Option Compare Database Private dbs As DAO.Database Private Const constNamaTabel As String = "tblRekUtama" Private strSQL As String Private Function bukaRecordset(strSQL As String, Optional boolForEdit As Boolean) As DAO.Recordset Dim rstRecordset As DAO.Recordset On Error GoTo Err_Msg If boolForEdit Then Set rstRecordset = dbs.OpenRecordset(strSQL, dbOpenDynaset) Else Set rstRecordset = dbs.OpenRecordset(strSQL, dbOpenSnapshot) End If Set bukaRecordset = rstRecordset Exit_Function: Exit Function Err_Msg: MsgBox "Function bukaRecordset, Error # " & Str(Err.Number) & ", source: " & Err.Source & _ Chr(13) & Err.Description Resume Exit_Function End Function Private Function bukaDatabaseBE() Dim strFolderName As String Dim strDbsName, strFileName As String Dim strProvider As String Dim strPassword As String Dim strConnection As String Const cnFolderSeparator As String = "\" On Error GoTo Err_Msg 'Gantilah nilai "D:\SoftwareAkuntansi" yang ada pada variabel strFolderName sesuai dengan lokasi database back-end. strFolderName = "D:\SoftwareAkuntansi" & cnFolderSeparator 'Bila nama file database back-end berbeda, gantilah nilai "Database_be.accdb" yang ada pada variabel strFileName strFileName = "Database_be.accdb" strProvider = "MS ACCESS" 'Isikan password bila file database yang ada di strFileName diproteksi dengan password strPassword = "" If strPassword <> vbNullString Then strPassword = ";PWD=" & strPassword strConnection = strProvider & strPassword strDbsName = strFolderName & strFileName Set dbs = OpenDatabase(strDbsName, False, False, strConnection) Exit_Function: Exit Function Err_Msg: MsgBox "Function bukaDatabaseBE, Error # " & Str(Err.Number) & ", source: " & Err.Source & _ Chr(13) & Err.Description Resume Exit_Function End Function Private Function tutupDatabaseBE() On Error GoTo Err_Msg dbs.Close Set dbs = Nothing Exit_Function: Exit Function Err_Msg: MsgBox "Function tutupDatabaseBE, Error # " & Str(Err.Number) & ", source: " & Err.Source & _ Chr(13) & Err.Description Resume Exit_Function End Function Private Sub Form_Close() tutupDatabaseBE End Sub Private Sub Form_Open(Cancel As Integer) Dim rs As DAO.Recordset Dim fld As DAO.Field bukaDatabaseBE strSQL = "SELECT * FROM " & constNamaTabel & " ORDER BY KodeRek" getDbsOpen Set rs = bukaRecordset(strSQL, True) For Each fld In rs.Fields Controls(fld.Name).ControlSource = rs.Fields(fld.Name).Name Next fld Set Me.Recordset = rs If rs.RecordCount > 0 Then rs.MoveFirst Set rs = Nothing End Sub
Pembaca dapat memperoleh sample file database back-end dan front-end dengan cara sbb:
- Ikuti blog Access Terapan di Facebook dengan mem-follow atau me-like FB page di https://www.facebook.com/AccessTerapan atau follow Google Blog Follower. Bagi yang tidak memfollow, permintaan (request) akan diabaikan.
- Kirim email ke admin yanto.e.subroto@gmail.com untuk diikutsertakan menjadi anggota grup Access Terapan.
- Sebagai tanda bukti keanggotaan, admin grup Access Terapan akan mengirimkan email ke alamat yang dituju.
- Selanjutnya, silakan download
dengan mengklik link berikut ini:
- Database_be.zip yang merupakan Access Database back-end (nama file Database_be.accdb), dapat diinstall di server, PC desktop, dsb.
- DatabaseBC_fe.zip yang merupakan Access Database front-end (nama file DatabaseBC_be.accdb), dapat diinstall di client, PC desktop, dsb.
- Ikuti perintah yang ada dalam kode VBA di atas, pada baris komentar 'Gantilah nilai "D:\SoftwareAkuntansi" yang ada pada variabel strFolderName sesuai dengan lokasi database back-end.
- Bukalah form frmRekUtama dalam format Form View.
- Sebagai uji coba lakukan updating pada salah satu item seperti contoh gambar terakhir di atas. Data yang di-update akan langsung tersimpan.
Comments
Post a Comment