Skip to main content

Back-end dan Front-end Menggunakan Bound Control

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.
  1. 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.
  2. 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.
  3. 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.
  4. 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. 
  5. Bukalah frmRekUtama dalam format Design View, seperti telihat di gambar bawah.
  6. Atur properti form Record Selectors=No
  7. Kosongkanlah properti Record Source dari form frmRekUtama (menjadi unbound record source)
  8. 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.
  9. Hasil akhir terlihat di gambar bawah:
  10. Tampilan frmRekUtama, dalam format Form View akan seperti gambar di bawah.
  11. Kini, form yang kosong (unbound) dengan sebagian properti yang berasal dari tabel tblRekUtama sudah terpasang di form frmRekUtama.
  12. Selanjutanya, isikanlah kode VBA pada class module Frm_frmRekUtama seperti di bawah/tab sebelah kanan, setelah itu simpanlah form frmRekUtama
  13.  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.
  14. Tampilan frmRekUtama, dalam format Datasheet View akan tampak seperti gambar di bawah (atur properti form: Default View=Datasheet dan Allow Datasheet View=Yes).
Dengan membuat front-end secara bound control di form seperti ini, kita bisa melakukan pemutakhiran (updating) data seperti saat objek tabel dan query menyatu (tidak dipesahkan) dengan objek lain di Access. Saat form dibuka, database front-end akan melakukan koneksi ke back-end dan kemudian menarik data yang dibutuhkan untuk kemudian ditampilkan di layar komputer. Saat form ditutup, database front-end akan memutus koneksi ke back-end sehingga trafik jaringan menjadi lebih lega.
Berikut ini adalah kode VBA yang ada di class module Frm_frmRekUtama
  1. Option Compare Database  
  2. Private dbs As DAO.Database  
  3. Private Const constNamaTabel As String = "tblRekUtama"  
  4. Private strSQL As String  
  5. Private Function bukaRecordset(strSQL As StringOptional boolForEdit As BooleanAs DAO.Recordset  
  6.   Dim rstRecordset As DAO.Recordset  
  7. On Error GoTo Err_Msg  
  8.   If boolForEdit Then  
  9.     Set rstRecordset = dbs.OpenRecordset(strSQL, dbOpenDynaset)  
  10.   Else  
  11.     Set rstRecordset = dbs.OpenRecordset(strSQL, dbOpenSnapshot)  
  12.   End If  
  13.   Set bukaRecordset = rstRecordset  
  14.     
  15. Exit_Function:  
  16.   Exit Function  
  17. Err_Msg:  
  18.   MsgBox "Function bukaRecordset, Error # " & Str(Err.Number) & ", source: " & Err.Source & _  
  19.   Chr(13) & Err.Description  
  20.   Resume Exit_Function  
  21. End Function  
  22. Private Function bukaDatabaseBE()  
  23.   Dim strFolderName As String  
  24.   Dim strDbsName, strFileName As String  
  25.   Dim strProvider As String  
  26.   Dim strPassword As String  
  27.   Dim strConnection As String  
  28.     
  29.   Const cnFolderSeparator As String = "\"  
  30.   
  31. On Error GoTo Err_Msg  
  32.   
  33. 'Gantilah nilai "D:\SoftwareAkuntansi" yang ada pada variabel strFolderName sesuai dengan lokasi database back-end.  
  34.   strFolderName = "D:\SoftwareAkuntansi" & cnFolderSeparator  
  35. 'Bila nama file database back-end berbeda, gantilah nilai "Database_be.accdb" yang ada pada variabel strFileName  
  36.   strFileName = "Database_be.accdb"  
  37.   strProvider = "MS ACCESS"  
  38. 'Isikan password bila file database yang ada di strFileName diproteksi dengan password  
  39.   strPassword = ""  
  40.     
  41.   If strPassword <> vbNullString Then strPassword = ";PWD=" & strPassword  
  42.     
  43.   strConnection = strProvider & strPassword  
  44.   strDbsName = strFolderName & strFileName  
  45.   Set dbs = OpenDatabase(strDbsName, FalseFalse, strConnection)  
  46. Exit_Function:  
  47.   Exit Function  
  48. Err_Msg:  
  49.   MsgBox "Function bukaDatabaseBE, Error # " & Str(Err.Number) & ", source: " & Err.Source & _  
  50.   Chr(13) & Err.Description  
  51.   Resume Exit_Function  
  52. End Function  
  53. Private Function tutupDatabaseBE()  
  54. On Error GoTo Err_Msg  
  55.   dbs.Close  
  56.   Set dbs = Nothing  
  57. Exit_Function:  
  58.   Exit Function  
  59. Err_Msg:  
  60.   MsgBox "Function tutupDatabaseBE, Error # " & Str(Err.Number) & ", source: " & Err.Source & _  
  61.   Chr(13) & Err.Description  
  62.   Resume Exit_Function  
  63. End Function  
  64. Private Sub Form_Close()  
  65.   tutupDatabaseBE  
  66. End Sub  
  67. Private Sub Form_Open(Cancel As Integer)  
  68.   Dim rs As DAO.Recordset  
  69.   Dim fld As DAO.Field  
  70.   bukaDatabaseBE  
  71.   strSQL = "SELECT * FROM " & constNamaTabel & " ORDER BY KodeRek"  
  72.   
  73.   getDbsOpen  
  74.   Set rs = bukaRecordset(strSQL, True)  
  75.   For Each fld In rs.Fields  
  76.     Controls(fld.Name).ControlSource = rs.Fields(fld.Name).Name  
  77.   Next fld  
  78.   Set Me.Recordset = rs  
  79.   If rs.RecordCount > 0 Then rs.MoveFirst  
  80.   Set rs = Nothing  
  81. End Sub  
Pembaca dapat memperoleh sample file database back-end dan front-end dengan cara sbb:

  1. 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.
  2. Kirim email ke admin yanto.e.subroto@gmail.com untuk diikutsertakan menjadi anggota grup Access Terapan. 
  3. Sebagai tanda bukti keanggotaan, admin grup Access Terapan akan mengirimkan email ke alamat yang dituju. 
  4. Selanjutnya, silakan download dengan mengklik link berikut ini:
    1. Database_be.zip yang merupakan Access Database back-end (nama file Database_be.accdb), dapat diinstall di server, PC desktop, dsb.
    2. DatabaseBC_fe.zip yang merupakan Access Database front-end (nama file DatabaseBC_be.accdb), dapat diinstall di client, PC desktop, dsb.
  5. 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.
  6. Bukalah form frmRekUtama dalam format Form View.
  7. Sebagai uji coba lakukan updating pada salah satu item seperti contoh gambar terakhir di atas. Data yang di-update akan langsung tersimpan.

Comments

Posting Terpopuler

Cara Mengatur dan Menggunakan ODBC untuk Mengakses Data Eksternal

Cara Sederhana Membuat Fungsi Terbilang di MS Acess VBA

Fungsi Untuk Membuka Database di Access VBA