Skip to main content

Mengoptimalkan Penggunaan ControlTip Text pada Access VBA

ControlTip Text adalah properti pada sebuah control yang ada di form, berguna untuk memberikan informasi ringkas dari control itu. Panjang maksimal ControlTip Text adalah 255 karakter. Kita dapat menggunakan properti ControlTipText untuk menentukan teks yang muncul di screen tip ketika memegang penunjuk mouse di atas sebuah kontrol.
Berbeda dengan properti Status Bar Text yang memerlukan fokus pada sebuah control, ControlTip Text hanya memerlukan penempatan penunjuk mouse di atas sebuah control. Kita tidak harus meletakkan kursor pada sebuah control untuk menampilkan screen tip. Kursor mungkin berada ditempat lain, tetapi screen tip tetap muncul. Namun demikian, kita juga bisa menempatkan kursor di dalam sebuah control untuk memicu event GotFocus agar menampilkan screen tip berupa informasi yang berkaitan dengan nilai dari control itu. Beberapa contoh di bawah ini mungkin bisa memberikan gambaran cara mengaplikasikan ControlTip Text pada sebuah form control.

Contoh 1: Membuat ControlTip Text sederhana

Lihat contoh pada Gambar 1 di bawah. Posisi kursor berada di field/control Nama Pengguna, di mana Anne Von Benvotte diblok warna hitam, pada bagian Status Bar Text tertulis petunjuk "Masukkan nama pengguna", yang membantu pengguna untuk memasukkan nama. Di tempat lain, penunjuk mouse berada di tombol perintah "Menuju ke record berikutnya" di mana di situ muncul tip text yang diatur melalui properti ControlTip Text dari tombol itu.
Gambar 1
Gambar 2

ControlTip Text di atas adalah contoh yang paling sederhana. Yang kita lakukan hanyalah membuka properti dari tombol perintah itu dan mengisikan properti ControlTip Text dari tombol perintah itu, seperti pada Gambar 2 di atas.


Contoh 2: Menampilkan ControlTip Text yang berisi properti field sebuah tabel.

Pada contoh ini, kita menarik properti field sebuah tabel dan menampilkannya dalam bentuk tip text. Tabel dan field pada kode VBA di bawah ini bersifat dinamis sehingga bisa diaplikasikan ke form apapun. Syarat yang utama, tabel harus menjadi Record Source sebuah form. Setelah itu, pada Control Source sebuah form, kita harus mengisikan nama field yang ada dalam Record Source, bukan calculated control/formula.
Function TampilkanTeks(strNamaTabel, strControlSource As String) As String
'------------------------------------------------------------
' Fungsi yang digunakan untuk menampilkan Control Tip Text
' pada control sebuah record source dalam suatu form:
' record source: berisi tabel, bukan query melalui strNamaTabel
' control source: berisi field sebuah tabel, bukan calculated formula,
' melalui strControlSource.
'------------------------------------------------------------
  Dim tdf As DAO.TableDef
  Dim fld As DAO.Field2
  Dim i As Integer
  Dim strTipText As String
On Error GoTo Err_Msg
  Set dbs = CurrentDb()
  Set tdf = dbs.TableDefs(strNamaTabel)
  i = 0
  For Each fld In tdf.Fields
      If fld.Name = strControlSource Then
          strTipText = "Judul/Caption: " & fld.Properties("Caption") & vbCrLf _
                      & "Nama Field: " & fld.Name & vbCrLf _
                      & "Deskripsi: " & fld.Properties("Description")
          Exit For
      End If
  Next fld
  TampilkanTeks = strTipText
Exit_Function:
  Exit Function
Err_Msg:
  MsgBox "Error # " & str(Err.Number) & ", source: " & Err.Source & Chr(13) & Err.Description
  Resume Exit_Function
End Function
Private Sub Form_Open(Cancel As Integer)
  Dim ctl As Control
  For Each ctl In Me.Controls
      Controls(ctl.Name).ControlTipText = TampilkanTeks(Me.RecordSource, ctl.Name)
  Next ctl
End Sub
Pada saat dibuka untuk pertama kalinya, form akan membaca event procedure form On Open melalui Private Sub Form_Open. Prosedur itu digunakan untuk mengatur properti ControlTip Text dari setiap control yang sesuai dengan nilai Record Source dan Control Source melalui fungsi TampilkanTeks. Dengan demikian, pada saat form dibuka, maka properti ControlTip Text sudah mempunyai nilai. Saat kita mengarahkan penunjuk mouse ke sebuah control, maka ControlTip Text akan muncul, seperti Gambar 3 di bawah ini.
Gambar 3

Jika properti Status Bar Text sebuah control juga mempunya nilai, kita bisa saja mengatur agar properti ControlTip Text juga mempunyai nilai yang sama dengan Status Bar Text. Dengan demikian, saat penunjuk mouse berada di atas sebuah control, maka ControlTip Text akan mempunyai nilai yang sama dengan Status Bar Text. Caranya, gantilah nilai dari Controls(ctl.Name).ControlTipText pada sub Form_Open, sehingga secara keseluruhan, sub Form_Open menjadi sebagai berikut:
Private Sub Form_Open(Cancel As Integer)
  Dim ctl As Control
  For Each ctl In Me.Controls
    Select Case ctl.ControlType
      Case acTextBox, acComboBox, acListBox, acOptionButton, acCommandButton
        Controls(ctl.Name).ControlTipText = Controls(ctl.Name).StatusBarText 
    End Select
  Next ctl
End Sub

Dengan sub form Form_Open pen di atas, berarti fungsi TampilkanTeks tidak diperlukan lagi.

Contoh 3: Menampilkan ControlTip Text secara dinamis

Bila pada contoh 1 dan 2, ControlTip Text diatus secara statis pada saat form pertama kali dibuka, pada contoh 3, kita membuat ControlTip Text yang dapat berubah sesuai dengan nilai pada sebuah control yang sedang menerima fokus (On Got Focus). Pada Gambar 4 di bawah, kursor dan penunjuk mouse menjadi satu dan menerima fokus pada kode rekening 165 di mana ControlTip Text tertulis Asuransi Dibayar Di Muka, yang merupakan nama rekening dari kode 165. ControlTip Text itu ditampilkan dengan menggunakan kode VBA sebagai berikut:
Private Sub KodeRek_GotFocus()
    Me.KodeRek.ControlTipText = DLookup("[NamaRek]", "tblRekUtama", "[KodeRek]='" & Me.KodeRek & "'") & vbCrLf & vbCrLf & _
    "Double click untuk melihat detaiil buku besar"
End Sub
Dengan cara ini, setiap kali fokus berpindah ke atas atau bawah pada kolom Kode Rek, maka controlTip Text juga akan berubah. Pembahasan fungsi itu ada di posting yang berjudul Menggunakan Event Procedure GotFocus Pada Access VBA
Gambar 4

Kelemahan ControlTip Text

Kelemahan mendasar dari ControlTip Text adalah ketidakmampuannya muncul di form yang properti Default Viewnya sama dengan Datasheet View. ControlTip Text hanya akan berfungsi bila Default View = Continous Form atau Single Form. Selain itu, pada controltip text yang dinamis seperti contoh 3, dibutuhkan waktu yang cukup lama untuk menampilkan tip text.

Comments

Posting Terpopuler

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

Normalisasi, Denormalisasi, dan Anomali Database

Membuat Fungsi Untuk Menghitung Pajak Penghasilan PPh 21 di MS Access