Skip to main content

Membuat Judul (Caption) Label yang Terikat pada Control Secara Dinamis

Pada Access, terutama di objek form, sebuah kontrol berupa label sering sekali terikat pada sebuah kontrol lainnya, seperti combobox, textbox, listbox, checkbox, option box, dan lain sebagainya. Label dalam sebuah form selain berfungsi sebagai judul form juga digunakan untuk menjelaskan tempat pemasukkan data, dalam hal ini label menjadi judul bagi textbox, listbox, checkbox dan tempat pemasukkan data lainnya.

Label yang tidak terikat pada kontrol, biasa digunakan sebagai judul form.
Sedangkan untuk label yang terikat pada kontrol digunakan sebagai penjelasan atas kontrol
Secara umum, metode VBA yang digunakan untuk mengetahui label yang terikat pada kontrol adalah sebagai berikut:

[nama kontrol].Controls.Item(0).Caption

[nama kontrol] dapat berupa textbox, combobox, listbox, dan control lain yang jumlahnya hanya terdiri dari satu control. Sebagai contoh, ada sebuah textbox dengan nama vouchDate seperti terlihat pada gambar di atas. Pada textbox vouchDate, melekat sebuah label dengan nama vouchDate pada properti Caption label itu, seperti terlihat pada gambar di atas.

Untuk mengetahui Caption label yang melekat pada vouchDate, maka kita dapat menuliskan metode di atas, sebagai berikut.

Me.vouchDate.Controls.Item(1).Caption

Contoh lainnya, ada sebuah combobox dengan nama vouchType. Pada combobox vouchType, melekat sebuah label yang mempunyai properti Caption=vouchType. Dengan metode yang sama, kita dapat menuliskan metode di atas, sebagai berikut:

Me.vouchType.Controls.Item(1).Caption

Dengan mengetahui label yang melekat pada sebuah control, kita dapat mengubah properti Caption pada label sesuai dengan properti Caption yang ada pada sebuah field tabel. Dengan demikian, caption label yang melekat pada sebuah control menjadi dinamis.

Berikut ini adalah kode VBA yang digunakan pada form frmVoucher yang ada di gambar:
Private Sub Form_Open(Cancel As Integer)
  Dim dbs As dao.Database
  Dim rs As dao.Recordset
  Dim fld As dao.Field
  Dim ctl As Control
  Dim prp As Property
  Dim strNamaTabel As String
  
  Set dbs = CurrentDb
  strNamaTabel = "tblVoucher"
  Set rs = dbs.OpenRecordset(strNamaTabel, dbOpenDynaset)
  
  For Each ctl In Me.Controls
    For Each fld In rs.Fields
      For Each prp In fld.Properties
        If prp.Name = "Caption" Then
          If fld.Name = ctl.Name Then
            Controls(fld.Name).Controls.Item(0).Caption = fld.Properties("Caption").Value
          End If
        End If
      Next prp
    Next fld
  Next ctl
  
  rs.Close
  Set rs = Nothing
  
  dbs.Close
  Set dbs = Nothing
End Sub
Pada kode VBA di atas, saat frmVoucher dibuka, evennt procedure On Open dijalankan. Access akan melakukan pembacaan secara satu per satu, setiap control yang ada di form. Pada saat yang sama, field yang ada pada tabel tblVoucher juga dibaca satu persatu. Bila ada nilai pada properti Caption dari field yang ada di tabel, maka Caption pada label yang melekat di control dan nama control sama dengan nama field akan berubah sesuai dengan nilai Caption pada field. Gampangnya begini. Buka saja contoh database LabelDinamis.accdb, lalu bukan design view tabel tblVoucher. Silakan ubah nilai Caption pada setiap field di situ, kemudian simpan dan tutup design tabel tblVoucher.

Selanjutnya, buka form frmVoucher, dan perhatikan bahwa label yang melekat pada setiap kontrol akan berubah sesuai dengan Caption yang ada di field tabel.

Untuk apa membuat caption label secara dinamis seperti ini? Jawabannya, saat file accdb dikonversi menjadi accde, maka kita dapat memanipulasi label dengan mudah, yaitu melalui field tabel. Seperti diketahui, file accde hanya melindungi bagian form, report, dan kode macro/VBA yang ada di Access, tetapi tidak untuk table dan querynya, jadi kita bisa mengedit design tabel. Jika tidak percaya, silakan download filenya di sini. Pembaca harus follow Google + page. Ikuti petunjuknya di Download File.

File yang didownload bernama LabelDinamis.zip. Ada dua macam file, LabelDinamis.accdb dan LabelDinamis.accde. File accde sudah dikonversi menjadi semacam exceutable file yang tidak bisa diedit formnya. Untuk mengubah caption label yang ada di form, kita hanya perlu membuka design view tabel tblVoucher, lalu isikan properti Caption pada setiap field yang ada dalam tabel itu. Setelah itu simpan dan tutup tabel tblVoucher, lalu buka form frmVoucher dan perhatikan caption label setiap control yang ada labelnya. Hasilnya, Caption label sudah berubah sesuai dengan Caption pada field tabel.

Comments

Posting Terpopuler

Normalisasi, Denormalisasi, dan Anomali Database

Membuat Relasi Database

Menampilkan Data MySQL dalam Form di Access