Skip to main content

Memuat Properti Field Tabel ke Dalam Properti Control di Form di Access

Pada lingkungan local computer atau komputer yang berdiri sendiri, pengaturan properti control di form yang berkaitan dengan sebuah field di tabel di Access mungkin tidak menimbulkan masalah yang berarti. Hal ini terjadi karena programmer Access akan dengan mudah menyusun kode VBA tanpa mempertimbangkan aspek yang berkaitan dengan database back-end.
Pada local komputer, programmer Access tidak perlu menyusun kode VBA yang digunakan untuk mengatur pemasukkan data dari sebuah form ke dalam tabel, karena Access telah menyediakan berbagai macam fitur yang mudah digunakan seperti penggunaan properti control yang berkaitan dengan data (ada di tab Data pada properti control di form), pesan kesalahan yang ditampilkan secara otomatis oleh Access, dan lain sebagainya.

Pada situasi di atas, karena di simpan di komputer lokal, lambatnya Access memuat dan menyimpan data mungkin tidak terlalu dirasakan. Namun, sejalan dengan bertambahnya data dan pengguna, kita mesti mempertimbangkan untuk menaruh database di sebuah server (sebagai database back-end) dan aplikasi di setiap komputer client (sebagai database front-end). Pada kondisi database back-end dan front-end, pengaturan properti control yang ada di form (di database front-end) akan menjadi semakin kompleks. Kode VBA yang digunakan untuk mengatur pemasukkan data dari sebuah form ke dalam tabel harus disesuaikan dengan pengaturan field properti pada tabel. Tujuan utamanya adalah untuk menyaring data yang ingin dimasukkan sudah sesuai dengan karkateristik data itu. Dengan cara ini, proses penyaringan data dilakukan di front-end. Begitu sudah sesuai dengan karakteristik yang diinginkan, data dilempar ke back-end untuk disimpan. Keuntungannya, trafik jaringan juga tidak akan padat.

Pada bagian ini, kita akan membuat fungsi yang digunakan untuk memuat properti field di sebuah tabel ke dalam properti control yang ada di form. Berikut ini adalah caranya.

Gunakan database back-end yang ada di Download Database. Jika tidak bisa dibuka, berarti pembaca belum terdaftar di grup AccessTerapan. Silakan ikuti petunjuk pendaftaran di sini.

Setelah di-download, simpan ke folder dan nama file tersendiri. Misalnya: D:\AccessTerapan\Database_be.accdb.

Buatlah sebuah database yang berfungsi sebagai front-end, misalnya nama database itu adalah AccessTerapan.accdb. Pada contoh ini, kita bisa menyimpan dalam satu folder yang sama dengan di atas (D:\AccessTerapan), seperti terlihat pada Gambar 1 di bawah ini.
Gambar 1. Folder untuk menyimpan database back-end dan front-end sekaligus

Dalam database AccessTerapan.accdb, buatlah modul standard dan namai modul itu AccessTerapan. Berikut ini adalah kode VBA yang ada di modul standard AccessTerapan:
Function sinkronFieldFormDanTabel(strForm As String, strSql As String)
  Dim frm As Form
  Dim rst As DAO.Recordset
  Dim fld As DAO.Field
  Dim ctl As Control
  Set frm = Forms(strForm)
  membukaDbs
  Set rst = membukaRecordset(strSql)
  For Each ctl In frm
    For Each fld In rst.Fields
      If fld.name = ctl.name Then
        frm.Controls(ctl.name).Properties("ControlTipText") = arrayTampilkanPropertiField(fld.name, strSql, prpDescription)
        frm.Controls(ctl.name).Properties("DefaultValue") = arrayTampilkanPropertiField(fld.name, strSql, prpDefaultValue)
        frm.Controls(ctl.name).Properties("ValidationText") = arrayTampilkanPropertiField(fld.name, strSql, prpValidationText)
        frm.Controls(ctl.name).Properties("ValidationRule") = arrayTampilkanPropertiField(fld.name, strSql, prpValidationRule)
        Debug.Print arrayTampilkanPropertiField(fld.name, strSql, prpDefaultValue)
      End If
    Next fld
  Next ctl
  rst.Close
  Set rst = Nothing
  Set frm = Nothing
End Function

Untuk dapat menjalankan fungsi di atas, maka fungsi lain yang terdapat di halaman Database Front-end dan Back-end harus disertakan. Jadi silakan kopi semua fungsi yang ada di halaman itu.

Selanjutnya, dalam database AccessTerapan.accdb, buatlah form dari tabel tblRekUtama namai form itu frmRekUtama. Cara membuatnya seperti berikut ini.
Gambar 2. Form frmRekUtama dibuka dengan Access 2016
Catatan: Cara di bawah ini dilakukan di Access 2007. Untuk Access 2010 ke atas, prosesnya kurang lebih sama dengan Access 2007.
  1. Karena ingin mengambil properti field yang ada di tabel, maka kita harus membuat link database agar properti tabel 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. Cara membuat link table:
    1. Klik External Data > Import > Access, maka akan muncul kotak dialog Get Externel Data - Access Database.
    2. Pada bagian text box File name, isikan nama lokasi folder beserta file yang bernama Database_be.accdb. Lalu pilih Link to the data source by creating a linked table. Lihat gambar di bawah. Klik OK.
    3. Kotak dialog Link Tables selanjutnya akan ditampilkan, seperti pada gamber di bawah. Kita bisa memilih satu tabel atau semua tabel yang ada di dalam list box. Tekan tombol Select All untuk memilih semua tabel yang ada di list box. Bila sudah yakin, tekan tombol OK untuk mengakhiri.
    4. Link table sudah dimuat di bagian Tables dari Access Navigation Pane, dengan tanda panah ke kanan. Seperti terlihat di bawah.
    5. Dari daftar link table seperti di atas, kita bisa membuat aplikasi front-end seperti yang dibahas di awal.
  2. Selanjutnya, kita akan membuat form kasar dari link table yang tersedia itu. Misalnya pilih tabel tblRekUtama seperti di atas.
  3. Setelah memilih tabel, lalu buatlah sebuah form sederhana dengan menggunakan cara Membuat Form Menggunakan Form Wizard. Namailah form yang baru dibuat itu: frmRekUtama. 
  4. Bukalah frmRekUtama dalam format Design View, seperti telihat di gambar bawah.
  5. Atur properti form Navigation Buttons=No, dan Record Selectors=No
  6. Kosongkanlah properti Record Source dari form frmRekUtama (unbound record source)
  7. Kosongkanlah Control Source dari form control yang ada di dalam form frmRekUtama (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.
  8. Hasil akhir terlihat di gambar bawah:
  9. Tampilan frmRekUtama, dalam format Form View akan seperti gambar di bawah.
  10. Kini, form yang kosong (unbound) dengan sebagian properti yang berasal dari tabel tblRekUtama sudah terpasang di form frmRekUtama.
  11. Pada Access Navigation Pane, hapuslah semua Linked Table yang ada di Object Tables. Tujuannya, untuk memaksimalkan fungsi database fornt-end AccessTerapan.accdb. Dengan demikian, file AccessTerapan.accdb hanya ada satu buah form frmRekUtama.
Masukkan kode VBA yang sangat sederhana di bawah ini ke dalam modul form frmRekUtama:
Private Sub Form_Open()
  sinkronFieldFormDanTabel Me.name, "tblRekUtama"
End Sub
Untuk melihat cara kerjanya, maka perhatikan dan ikuti video berikut penjelasannya di bawah ini:


Dalam video itu, kita bisa melihat bahwa setiap kali properti tabel di datababse back-end Database_be.accdb diedit, maka hasil editan akan dimuat di database front-end AccessTerapan.accdb.

Comments

Posting Terpopuler

Normalisasi, Denormalisasi, dan Anomali Database

Membuat Fungsi Untuk Menghitung Pajak Penghasilan PPh 21 di MS Access

Format Untuk Field Dengan Tipe Data Number dan Currency di MS Access