Skip to main content

Menggunakan Event Procedure GotFocus Pada Access VBA

Got focus terjadi bila sebuah form atau control menerima fokus. Event pada properti On Got Focus bisa dijalankan bila pengguna memindahkan fokus kursor ke sebuah objek dengan cara menekan tombol Tab, mengklik sebuah objek, atau menggunakan metode SetFocus atau perintah SelectObject, GoToRecord, GoToControl, atau GoToPage yang ada dalam VBA. Objek dalam sebuah form bisa bermacam-macam seperti label, text box, combo box, command button, tab, record, atau form itu sendiri. Intinya adalah, bila posisi kursor berada dalam objek seperti tersebut di atas, maka objek itu menerima fokus (got focus). Dan bila objek itu menerima fokus, maka kita dapat menjalankan event procedure atau macro yang diinginkan.
Sebuah objek yang berupa control dapat menerima fokus bila properti Visible and Enabled dari control itu sama dengan Yes. Sedangkan sebuah objek yang berupa form dapat menerima fokus bila tidak ada control apapun di dalamnya, atau bila properti Visible dari semua control yang ada dalam form itu sama dengan No. Event procedure GotFocus hanya bisa diterapkan pada form atau control yang ada dalam form itu, bukan control yang ada dalam report.

Kita dapat mengarahkan form atau control yang menerima fokus untuk menjalankan sebuah macro atau event procedure pada properti On Got Focus dari form atau control yang bersangkutan. Sebagai contoh, kita dapat memerintahkan Access VBA untuk menampilkan semacam penjelasan dari field/control pada sebuah text box, subform, dan sebagainya. Contoh lainnya, mengatur properti Enabled yang ada pada control lain, dari Yes menjadi No, atau sebaliknya.

Yang perlu diperhatikan dalam menjalankan event procedure GotFocus adalah perpindahan Tab Order (urut-urutan control yang ada di form sebuah form) harus urut, jangan bergerak secara acak. Perpindahan Tab Order yang berurutan akan membantu pengguna untuk mem-fokuskan penglihatannya pada satu objek tertentu. Bila Tab Order bergerak secara acak, maka pengguna, secara manusiawi, dapat kehilangan fokus.

Contoh penggunaan event procedure GotFocus pada form dengan menampilkan tip text

Pada posting yang membahas pembuatan neraca lajur di form, di bagian detail.subform dari neraca lajur itu (nama form: frmNeracaLajurLengkap), kita telah mengaplikasikan event procedure GotFocus, seperti tampak pada gambar di bawah ini.
Pada gambar itu,kita dapat membaca sebuah tip text untuk kode rekening 165. Dalam tabel Kode Rekening Utama, nama rekening untuk kode 165 merujuk pada Asuransi Dibayar Di Muka. Cara menampilkannya adalah dengan menggunakan event procedure untuk control yang bernama KodeRek pada saat menerima fokus seperti berikut ini:
Private Sub KodeRek_GotFocus()
  Me.KodeRek.ControlTipText = DLookup("[NamaRek]", "tblRekUtama", "[KodeRek]='" & Me.KodeRek & "'") & vbCrLf & vbCrLf & _
  "Double click untuk melihat detaiil buku besar"
End Sub
Kode VBA di atas berarti: jika text box control KodeRek menerima fokus (ditandai dengan kursor yang berada di control itu), maka properti ControlTip Text dari KodeRek itu akan diisi dengan Nama Rekening dari kode rekening yang sedang menerima fokus, yaitu dengan mengeksekusi fungsi Dlookup.
Bila kursor digerakan ke atas atau ke bawah, maka tip text akan berubah secara dinamis mengikuti prosedur di atas.

Contoh penggunaan event procedure GotFocus pada form dengan menampilkan isi dari sebuah text box lain

Pada contoh ini, kita akan menampilkan isi text box secara dinamis dari sebuah tombol perintah yang ada di Menu. Contohnya seperti pada gambar di bawah ini.

Pada gambar di atas, bila kursor dari tombol perintah dinaikan atau diturunkan (dari A sampai ke X, dan sebaliknya), maka text box di sebelah kanan akan berubah mengikuti tombol perintah yang menerima fokus. Text box di sebelah kanan digunakan untuk memberi penjelasan ringkas dari masing-masing tombol perintah. Bila properti text box itu Name=DeskripsiMenu, maka kode VBA-nya akan seperti ini:
Private Sub MenuItem_GotFocus()
  Me.DeskripsiMenu= DLookup("[DeskripsiMenu]", "tblMenus", "[MenuId]='" & Me.MenuId & "'")
End Sub
Pada prinsipnya, cara menampilkan text box itu sama dengan contoh GotFocus untuk menampilkan tip text. Perbedaannya, bila control MenuItem sedang menerima fokus, maka ada text box control yang bernama DeskripsiMenu yang akan menjelaskan MenuItem yang sedang menerima fokus.

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