Skip to main content

Mengisi Control Tip Text Pada Control Dalam Form di Access Secara Otomatis

Seperti kita ketahui, saat membuat sebuah control yang ada dalam sebuah form di Access, nilai properti Description yang ada di field tabel akan diletakkan dalam properti Status Bar Text. Namun demikian, kita bisa saja menaruh nilai properti Description pada properti Control Tip Text. Dengan demikian, saat mouse digeser ke atas sebuah control, Access akan menampilkan semacam tips berisi deskripsi yang memudahkan pengguna dalam memahami control itu.
Control Tip Text, menampilkan keterangan ringkas saat kursor berada di atas sebuah kontrol
Persoalannya, setiap kali kita membuta form dengan cara apapun (form wizard, blank form, dan sebagainya), properti Control Tip Text yang ada pada sebuah kontrol di form dan terikat (bound) ke field sebuah tabel selalu kosong alias tidak terisi dengan nilai Description dari field tabel yang menjadi record source/control source. Nilai Description dari field tabel akan ditampilkan di properti Status Bar Text, sehingga tidak terlihat langsung saat mouse bergerak ke atas sebuah kontrol. Nah, atas dasar alasan inilah, kita membuat fungsi untuk menampilkan Control Tip Text.

Untuk menampilkan Control Tip Text sesuai dengan deskripsi field, kita dapat membuat fungsi seperti berikut ini.
Function memuatControlTipText(frm As Form, strSql As String)
  Dim rs As dao.Recordset
  Dim fld As dao.Field
  Dim ctl As Control
  Dim strDescription As String
  Dim prp As Property
  
On Error GoTo Err_Msg
  
  Set rs = membukaRecordset(strSql, True)
  With frm
    For Each ctl In .Controls
      If ctl.ControlType <> acLabel Then
        If ctl.Controls.Count > 0 Then strDescription = ctl.Controls.Item(0).Caption Else strDescription = ""
      End If
      For Each fld In rs.Fields
        If fld.Name = ctl.Name And fld.Type <> DB_OLE Then
            strDescription = arrayTampilkanPropertiField(fld.Name, fld.SourceTable, prpDescription)
        End If
      Next fld
    ctl.ControlTipText = strDescription
    Next ctl
  End With
Exit_Function:
  rs.Close
  Set rs = Nothing
  Exit Function
Err_Msg:
  MsgBox "Function memuatControlTipText, Error # " & str(Err.Number) & ", source: " & Err.Source & _
  Chr(13) & Err.description
  Resume Exit_Function
End Function
Fungsi memuatControlTipText  disimpan dalam sebuah modul standar, misalnya disimpan di mdlCore seperti pada penjelasan di Database Front-end dan Back-end atau di modul yang terkait dengan form secara global, terserah mana yang paling pas.

Fungsi memuatControlTipText akan memuat penjelasan ringkas dari setiap control yang ada dalam sebuah form. Contoh aplikasinya dapat kita lihat di gambar atas. Setiap kali kursor bergerak ke atas sebuah control, tips berupa penjelasan ringkas dari control ini akan ditampilkan. Bila berkaitan dengan field sebuah tabel, maka penjelasan diambil dengan menggunakan deskripsi field yang ada di tabel. Bila berkaitan dengan form, maka penjelasan diambil dari nama label yang melekat pada control.

Ada dua parameter yang wajib diisi:
  1. frm, digunakan untuk mengidentifikasi Form yang dibuka
  2. strSql, digunakan untuk mengidentifikasi tabel atau query yang menjadi record source.
Ada beberapa fungsi buatan sendiri yang terlibat di dalamnya. Jadi, untuk menjalankannya, kita  harus mempunyai fungsi:
  1. membukaDbs
  2. membukRecordset
  3. arrayTampilkanPropertiField
Karena berkaitan dengan sebuah form, maka untuk menjalankannya, kita harus menempatkan fungsi memuatControlTipText dalam sebuah event procedure yang ada di form, yaitu pada event on open, seperti berikut ini:
Option Compare Database
Private Const strNamaTabel = "tblPengguna_Pengguna"

Private Sub Form_Open(Cancel As Integer)
  memuatControlTipText Me, strNamaTabel
End Sub
Pada memuatControlTipText yang ada dalam sub Form_Open di atas, Me adalah nama form dari parameter frm yang sedang terbuka. Pada gambar di atas, nama formnya adalah frmPengguna_Pengguna (abaikan judul/Caption form tblPengguna_Pengguna), sedangkan strNamaTabel adalah nama tabel yang menjadi record source atau sumber recordset dari parameter strSql. Dalam hal ini strNamaTabel merupakan konstanta yang bernama tblPengguna_Pengguna seperti dinyatakan pada Private Const strNamaTabel = "tblPengguna_Pengguna".
Untuk mengaplikasikan fungsi memuatControlTipTex ke dalam form yang anda buat, copy event procedur di atas, mulai dari Private Const... sampai dengan End Sub. Setelah itu, gantilah nama tabel pada const strNamaTabel sesuai dengan tabel yang ada  di record source dari form.

Comments

Posting Terpopuler

Normalisasi, Denormalisasi, dan Anomali Database

Membuat Relasi Database

Menampilkan Data MySQL dalam Form di Access