Tindakan tunggal, seperti berpindah dari satu kontrol pada objek ke kontrol lain, dapat memicu beberapa kejadian berbeda, yang terjadi dalam urutan tertentu. Mengetahui kapan kejadian terjadi dan dalam urutan apa kejadian itu penting, karena dapat memengaruhi bagaimana dan kapan prosedur kejadian atau makro Anda berjalan. Misalnya, jika ada dua prosedur kejadian yang akan dijalankan dalam urutan tertentu, Anda ingin memastikan bahwa kejadian yang terkait dengannya terjadi dalam urutan yang sama.
Di artikel ini
- Urutan acara untuk kontrol pada formulir
- Urutan acara untuk rekaman pada formulir
- Urutan acara untuk formulir dan subformulir
- Urutan kejadian untuk penekanan tombol dan klik mouse
- Urutan acara untuk bagian laporan dan laporan
Urutan acara untuk kontrol pada formulir
Kejadian terjadi untuk kontrol pada formulir saat Anda memindahkan fokus ke kontrol, dan saat Anda mengubah dan memperbarui data dalam kontrol.
Catatan
Microsoft Office Access menampilkan nama acara sedikit berbeda di Editor Visual Basic daripada yang ada di lembar properti dan Penyusun Makro. Misalnya, acara yang dinamai On Got Focus dalam lembar properti formulir dan di Penyusun Makro dinamai GotFocus dalam Visual Basic Editor. Contoh dalam artikel ini menggunakan format Visual Basic for Applications (VBA) untuk nama acara.
Memindahkan fokus ke kontrol
Saat Anda memindahkan fokus ke kontrol pada formulir (misalnya, dengan membuka formulir yang berisi satu atau beberapa kontrol aktif, atau dengan memindahkan fokus ke kontrol lain pada formulir yang sama), kejadian Enter dan GotFocus terjadi dalam urutan ini:
Masukkan
GotFocus
Saat Anda membuka formulir, kejadian Enter dan GotFocus terjadi setelah kejadian yang terkait dengan pembukaan formulir (seperti Buka, Aktifkan, dan Saat Ini), sebagai berikut:
Panah Buka (
Aktifkan (formulir)
Saat ini (formulir)
Enter (
GotFocus (kontrol)
Ketika fokus meninggalkan kontrol pada formulir (misalnya, saat Anda menutup formulir yang berisi satu atau beberapa kontrol aktif, atau ketika Anda berpindah ke kontrol lain pada formulir yang sama), kejadian Exit dan LostFocus terjadi dalam urutan ini:
Panah keluar
LostFocus
Saat Anda menutup formulir, kejadian Keluar dan HilangFokus terjadi sebelum kejadian yang terkait dengan penutupan formulir (seperti Bongkar, Nonaktifkan, dan Tutup), sebagai berikut:
Panah Keluar (
Panah LostFocus (kontrol)
Bongkar (
Nonaktifkan (formulir)
Tutup (formulir)
Mengubah dan memperbarui data dalam kontrol
Saat Anda memasukkan atau mengubah data dalam kontrol pada formulir lalu memindahkan fokus ke kontrol lain, kejadian BeforeUpdate dan AfterUpdate terjadi:
Panah BeforeUpdate
AfterUpdate
Kejadian Exit dan LostFocus untuk kontrol yang perubahan nilainya terjadi setelah kejadian BeforeUpdate dan AfterUpdate :
Panah BeforeUpdate
AfterUpdate
Keluar panah
LostFocus
Saat Anda mengubah teks dalam kotak teks atau di bagian kotak teks dari kotak kombo, acara Ubah terjadi. Kejadian ini terjadi setiap kali konten kontrol berubah, tetapi sebelum Anda memindahkan fokus ke kontrol atau rekaman lain (dan oleh karena itu, sebelum kejadian BeforeUpdate dan AfterUpdate terjadi). Urutan kejadian berikut ini terjadi untuk setiap tombol yang Anda tekan dalam kotak teks atau di bagian kotak teks dari kotak kombo:
Panah KeyDown
TombolPress
Kotor
Ubah
panah KeyUp
Kejadian NotInList terjadi setelah Anda memasukkan nilai dalam kotak kombo yang tidak ditemukan dalam daftar kotak kombo lalu mencoba memindahkan fokus ke kontrol atau rekaman lain. Kejadian NotInList terjadi setelah kejadian keyboard dan kotak Ubah acara untuk kombo, tetapi sebelum acara untuk kontrol atau formulir lainnya. Jika properti LimitToList kotak kombo diatur ke Ya, kejadian Kesalahan untuk formulir terjadi segera setelah kejadian NotInList :
Panah KeyDown
TombolPress
Kotor
Ubah
TombolUp
NotInList
Kesalahan
Urutan acara untuk rekaman pada formulir
Kejadian terjadi untuk rekaman pada formulir saat Anda memindahkan fokus ke rekaman lain, memperbarui data dalam rekaman, menghapus rekaman atau rekaman yang sudah ada, atau membuat catatan baru.
Memindahkan fokus ke rekaman dan memperbarui data dalam rekaman
Saat Anda memindahkan fokus ke rekaman yang sudah ada pada formulir, masukkan atau ubah data dalam catatan, lalu pindahkan fokus ke catatan lain, urutan kejadian berikut ini terjadi untuk formulir:
Panah Saat Ini (
SebelumDiupdate (formulir)
AfterUpdate (
Saat ini (formulir)
Saat Anda meninggalkan rekaman yang datanya telah berubah, tetapi sebelum Anda memasukkan catatan berikutnya, kejadian Keluar dan HilangFokus terjadi untuk kontrol yang memiliki fokus. Kejadian ini terjadi setelah kejadian BeforeUpdate dan AfterUpdate untuk formulir, sebagai berikut:
Panah BeforeUpdate (
AfterUpdate (formulir)
Keluar (
Panah LostFocus (
Saat ini (formulir)
Saat Anda memindahkan fokus di antara kontrol pada formulir, kejadian terjadi untuk setiap kontrol. Misalnya, urutan kejadian berikut ini terjadi ketika Anda melakukan hal berikut:
- Buka formulir dan ubah data dalam kontrol:
Panah saat ini (
Masukkan (kontrol)
GotFocus (kontrol)
BeforeUpdate (
AfterUpdate (kontrol) - Memindahkan fokus ke kontrol lain:
Panah Keluar (kontrol1
Panah LostFocus (control1
Panah Enter (control2
GotFocus (control2) - Memindahkan fokus ke catatan lain:
Panah BeforeUpdate (
AfterUpdate (formulir)
Keluar (control2)
LostFocus (control2
Arus (formulir)
Menghapus rekaman
Saat Anda menghapus catatan, kejadian berikut ini terjadi untuk formulir, dan Microsoft Office Access menampilkan kotak dialog yang meminta Anda untuk mengonfirmasi penghapusan:
Panah Hapus
BeforeDelKonfirmasi
AfterDelConfirm
Jika Anda membatalkan acara Hapus , kejadian BeforeDelConfirm dan AfterDelConfirm tidak terjadi, dan kotak dialog tidak ditampilkan.
Membuat catatan baru
Saat Anda memindahkan fokus ke rekaman baru (kosong) pada formulir lalu membuat catatan baru dengan mengetik data dalam kontrol, urutan kejadian berikut ini terjadi:
Panah saat ini (
Enter (kontrol)
GotFocus (kontrol)
BeforeInsert (
AfterInsert (formulir)
Kejadian BeforeInsert (formulir) akan memicu segera setelah Anda mulai mengetik di kontrol. Pemicu kejadian AfterInsert (formulir) setelah Anda meninggalkan catatan.
Kejadian BeforeUpdate dan AfterUpdate untuk kontrol pada formulir dan untuk rekaman baru terjadi setelah kejadian BeforeInsert dan sebelum kejadian AfterInsert .
Urutan acara untuk formulir dan subformulir
Kejadian terjadi pada formulir saat Anda membuka atau menutup formulir, berpindah antar formulir, atau bekerja dengan data pada formulir atau subformulir.
Membuka dan menutup formulir
Saat Anda membuka formulir, urutan kejadian berikut ini terjadi untuk formulir:
Buka
Muat
Ubah Ukuran
Aktifkan
Saat Ini
Jika tidak ada kontrol aktif pada formulir, kejadian GotFocus terjadi untuk formulir setelah acara Aktifkan tetapi sebelum acara Saat Ini .
Saat Anda menutup formulir, urutan kejadian berikut ini terjadi untuk formulir:
Panah Bongkar
Nonaktifkan
Jika tidak ada kontrol aktif pada formulir, kejadian LostFocus terjadi untuk formulir setelah acara Bongkar tetapi sebelum acara Nonaktifkan .
Berpindah antar formulir
Saat Anda beralih antara dua formulir yang terbuka, acara Nonaktifkan terjadi untuk formulir pertama, dan kejadian Aktifkan terjadi untuk formulir kedua:
Panah Nonaktifkan (formulir1
Aktifkan (formulir2)
Acara Nonaktifkan untuk formulir juga terjadi ketika Anda beralih dari formulir ke tab objek lain di Access. Namun, kejadian Nonaktifkan tidak terjadi saat Anda beralih ke kotak dialog, ke formulir yang properti PopUpnya diatur ke Ya, atau ke jendela di program lain.
Catatan
Acara Buka tidak terjadi jika Anda memindahkan fokus ke formulir yang sudah terbuka, bahkan jika Anda telah memindahkan fokus ke formulir tersebut dengan melakukan tindakan OpenForm .
Bekerja dengan data pada formulir
Formulir dan kontrol kejadian terjadi saat Anda berpindah antar rekaman dalam formulir dan mengubah data. Misalnya, ketika Anda pertama kali membuka formulir, urutan kejadian berikut ini terjadi:
Panah Buka (
Muat (formulir)
Ubah Ukuran (formulir)
Aktifkan (formulir)
Saat ini (
Enter (kontrol)
GotFocus (kontrol)
Demikian pula, ketika Anda menutup formulir, urutan kejadian berikut ini terjadi:
Panah Keluar (
Panah LostFocus (kontrol)
Bongkar (
Nonaktifkan (formulir)
Tutup (formulir)
Jika Anda telah mengubah data dalam kontrol, kejadian BeforeUpdate dan AfterUpdate untuk kontrol dan formulir terjadi sebelum kejadian Keluar untuk kontrol.
Bekerja dengan subformulir
Saat Anda membuka formulir yang berisi subformulir, subformulir dan rekamannya dimuat sebelum formulir utama. Jadi, kejadian untuk subformulir dan kontrolnya (seperti Buka, Saat Ini, Enter, dan GotFocus) terjadi sebelum kejadian untuk formulir. Namun, kejadian Aktifkan tidak terjadi untuk subformulir. Oleh karena itu, membuka formulir utama akan memicu acara Aktifkan hanya untuk formulir utama.
Demikian pula, ketika Anda menutup formulir yang berisi subformulir, subformulir dan rekamannya akan dibongkar setelah formulir. Kejadian Nonaktifkan tidak terjadi untuk subformulir. Oleh karena itu, menutup formulir utama memicu acara Nonaktifkan hanya untuk formulir utama. Kejadian untuk kontrol, formulir, dan subformulir terjadi dalam urutan berikut:
- Kejadian untuk kontrol subformulir (seperti Exit dan LostFocus)
- Kejadian untuk kontrol formulir (termasuk kontrol subformulir)
- Acara untuk formulir (seperti Nonaktifkan dan Tutup)
- Acara untuk subformulir
Catatan
Karena kejadian untuk subformulir terjadi setelah formulir utama ditutup, kejadian tertentu, seperti membatalkan penutupan formulir utama dari acara dalam subformulir, tidak akan terjadi. Anda mungkin perlu memindahkan jenis uji validasi ini ke acara pada formulir utama.
Urutan kejadian untuk penekanan tombol dan klik mouse
Kejadian keyboard terjadi untuk formulir dan kontrol saat Anda menekan tombol atau mengirim penekanan tombol saat formulir atau kontrol menjadi fokus. Kejadian mouse terjadi untuk formulir, bagian formulir, dan kontrol pada formulir saat Anda mengklik tombol mouse saat penunjuk mouse berada di formulir, bagian, atau kontrol. Kejadian mouse juga terjadi saat Anda menggerakkan penunjuk mouse di atas formulir, bagian, atau kontrol.
Acara keyboard
Saat Anda menekan dan melepaskan tombol saat kontrol pada formulir memiliki fokus (atau gunakan tindakan atau pernyataan SendKeys untuk mengirim penekanan tombol), urutan kejadian berikut terjadi:
KeyDown
KeyPress
KeyUp
Ketika Anda menekan dan melepaskan tombol atau mengirim penekanan tombol dalam rangkaian karakter ANSI, kejadian KeyDown, KeyPress, dan KeyUp semuanya terjadi. Jika Anda menekan dan menahan tombol ANSI, kejadian KeyDown dan KeyPress bergantian berulang kali (KeyDown, KeyPress, KeyDown, KeyPress, dan seterusnya) hingga Anda melepaskan kunci; lalu kejadian KeyUp terjadi.
Jika Anda menekan dan merilis tombol non-ANSI, kejadian KeyDown dan KeyUp terjadi. Jika Anda menekan dan menahan tombol non-ANSI, kejadian KeyDown terjadi berulang kali hingga Anda melepaskan tombol, lalu kejadian KeyUp terjadi.
Jika menekan tombol memicu kejadian lain untuk kontrol, kejadian tersebut terjadi setelah kejadian KeyPress tetapi sebelum acara KeyUp . Misalnya, jika penekanan tombol mengubah teks dalam kotak teks, yang memicu kejadian Ubah , urutan kejadian berikut ini terjadi:
Panah KeyDownTombolPress
UbahTombolUp
Jika penekanan tombol menyebabkan fokus berpindah dari satu kontrol ke kontrol lain, kejadian KeyDown terjadi untuk kontrol pertama, sedangkan kejadian KeyPress dan KeyUp terjadi untuk kontrol kedua. Misalnya, jika Anda mengubah data dalam kontrol lalu menekan tombol TAB untuk berpindah ke kontrol berikutnya, urutan kejadian berikut ini terjadi:
- Kontrol pertama:
Panah KeyDown
BeforeUpdate
AfterUpdate
panah Keluar
LostFocus - Kontrol kedua:
Masukkan
GotFocus
KeyPress
Acara mouse
Saat Anda mengklik dan melepaskan tombol mouse saat penunjuk mouse berada di kontrol pada formulir, urutan kejadian berikut ini terjadi untuk kontrol:
Panah Bawah Mouse
Panah Atas
Klik
Jika kontrol memiliki fokus dan Anda mengklik kontrol lain untuk memindahkan fokus ke kontrol kedua ini, urutan kejadian berikut ini terjadi:
- Kontrol pertama:
Panah keluar
LostFocus - Kontrol kedua:
Masukkan
GotFocus
MouseDown
MouseUp
Klik
Jika Anda berpindah ke rekaman lain lalu mengklik kontrol, acara Saat ini untuk formulir juga terjadi sebelum acara Enter untuk kontrol.
Mengklik ganda kontrol menyebabkan kejadian Klik dan DblClick terjadi. Misalnya, ketika Anda mengklik ganda kontrol selain tombol perintah, urutan kejadian berikut ini terjadi untuk kontrol:
Panah Panah Bawah MouseUp
Klik
DblClick
MouseUp
Saat Anda mengklik ganda tombol perintah, urutan kejadian sebelumnya terjadi, diikuti dengan acara Klik kedua.
Kejadian MouseMove untuk formulir, bagian, atau kontrol terjadi saat Anda menggerakkan penunjuk mouse di atas formulir, bagian, atau kontrol. Kejadian ini terpisah dari kejadian mouse lainnya.
Urutan acara untuk bagian laporan dan laporan
Kejadian terjadi untuk bagian laporan dan laporan saat Anda membuka laporan untuk mencetak atau mempratinjaunya, atau menutup laporan.
Acara untuk laporan
Saat Anda membuka laporan untuk mencetak atau mempratinjaunya lalu menutup laporan atau berpindah ke tab objek lain di Access, urutan kejadian berikut ini terjadi untuk laporan:
Panah Buka
Muat
Aktifkan
Tutup
Nonaktifkan
Saat Anda beralih antara dua laporan yang terbuka, acara Nonaktifkan terjadi untuk laporan pertama, dan kejadian Aktifkan terjadi untuk laporan kedua:
Panah Nonaktifkan (laporan1
Aktifkan (laporan2)
Acara Nonaktifkan untuk laporan juga terjadi saat Anda beralih dari laporan ke tab objek lain di Access. Namun, kejadian Nonaktifkan tidak terjadi saat Anda beralih ke kotak dialog, ke formulir yang properti PopUpnya diatur ke Ya, atau ke jendela di program lain.
Saat Anda membuka laporan yang didasarkan pada kueri, Access memicu acara Buka untuk laporan sebelum menjalankan kueri yang mendasarinya. Sebagai hasilnya, Anda bisa mengatur kriteria untuk laporan dengan menggunakan prosedur kejadian atau makro yang merespons acara Buka . Misalnya, prosedur makro atau kejadian bisa membuka kotak dialog kustom tempat Anda memasukkan kriteria laporan.
Acara untuk bagian laporan
Saat Anda mencetak atau mempratinjau laporan, acara Format dan Cetak terjadi untuk bagian laporan setelah acara Buka dan Aktifkan untuk laporan dan sebelum acara Tutup atau Nonaktifkan laporan:
Panah Buka (
Muat (laporan)
Aktifkan (laporan)
Format (bagian laporan)
Cetak (bagian
Tutup (laporan)
Nonaktifkan (laporan)
Keamanan Anda bisa menggunakan Tampilan Laporan untuk mengaktifkan pemfilteran laporan pengguna. Namun tidak seperti Pratinjau Cetak, kejadian Format dan Cetak di bagian apa pun tidak terjadi dalam Tampilan Laporan. Hal ini juga berlaku untuk hasil fungsi VBA dan prosedur yang ditentukan pengguna yang ditampilkan dalam kontrol (seperti keterangan label, status tampilan, pemformatan bersyarat, pengubahan ukuran kontrol dan seterusnya) dalam kejadian tersebut. Oleh karena itu, jangan gunakan kode dalam kejadian ini untuk memformat, menyembunyikan, atau mencetak data rahasia, yang mungkin akan terekspos. Kami menyarankan Anda untuk memfilter data terlebih dahulu atau menonaktifkan Pratinjau Laporan dengan mengatur properti AllowReportView ke Tidak.
Selain itu, kejadian berikut ini bisa terjadi selama atau setelah pemformatan tapi sebelum kejadian Cetak :
- Kejadian Retreat terjadi ketika Access kembali ke bagian sebelumnya selama pemformatan laporan.
- Kejadian NoData terjadi jika tidak ada rekaman yang ditampilkan oleh laporan.
- Kejadian Halaman terjadi setelah pemformatan tapi sebelum pencetakan. Anda bisa menggunakan acara ini untuk mengkustomisasi tampilan laporan yang dicetak.