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.
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:
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.
Label yang tidak terikat pada kontrol, biasa digunakan sebagai judul form. Sedangkan untuk label yang terikat pada kontrol digunakan sebagai penjelasan atas kontrol |
[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 SubPada 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
Post a Comment