Tindakan tunggal, seperti berpindah dari satu kontrol pada objek ke kontrol lain, bisa 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
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 dalam Editor Visual Basic daripada nama acara di lembar properti dan Pembuat Makro. Misalnya, acara yang dinamai On Got Focus dalam lembar properti formulir dan di Pembuat Makro dinamai GotFocus dalam Editor Visual Basic. 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:
Buka (formulir) Aktifkan (formulir) Saat Ini (formulir) Enter (kontrol) 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:
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:
Keluar (kontrol) LostFocus (kontrol) Bongkar (formulir) 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:
SebelumDiupdate Afte rUpdate
Kejadian Exit dan LostFocus untuk kontrol yang perubahan nilainya terjadi setelah kejadian BeforeUpdate dan AfterUpdate :
SebelumUpdate AfterUpdate Exit 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:
KeyDown KeyPress Dirty Ubah 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 dari kotak kombo diatur ke Yes, kejadian Kesalahan untuk formulir terjadi segera setelah kejadian NotInList :
KeyDown KeyPress Dirty Ubah KeyUp #x8 NotInList0 Error
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:
Saat ini (formulir) BeforeUpdate (formulir) AfterUpdate (formulir) Current (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:
BeforeUpdate (formulir) AfterUpdate (formulir) Keluar (kontrol) LostFocus (kontrol) Current (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:
Saat ini (formulir) Enter (kontrol) GotFocus (kontrol) BeforeUpdate (kontrol) AfterUpdate (kontrol)
-
Memindahkan fokus ke kontrol lain:
Keluar (kontrol1) LostFocus (control1) Enter (control2) GotFocus (control2)
-
Memindahkan fokus ke catatan lain:
BeforeUpdate (form) AfterUpdate (form) Exit (control2) LostFocus (control2) Current (form)
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:
Hapus BeforeDelConfirm 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:
Saat ini (formulir) Enter (kontrol) GotFocus (kontrol) BeforeInsert (formulir) 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:
Bongkar Nonaktifkan Tutup
Jika tidak ada kontrol aktif pada formulir, kejadian LostFockami terjadi untuk formulir setelah kejadian 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:
Menonaktifkan (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:
Buka (formulir) Muat (formulir) Ubah Ukuran (formulir) Aktifkan (formulir) Saat Ini (formulir) Enter (kontrol)0 GotFocus (kontrol)
Demikian pula, ketika Anda menutup formulir, urutan kejadian berikut ini terjadi:
Keluar (kontrol) LostFocus (kontrol) Bongkar (formulir) 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 memiliki 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 SendKeys atau pernyataan untuk mengirim penekanan tombol), urutan kejadian berikut terjadi:
KeyDown KeyPress KeyUp
Saat Anda menekan dan melepaskan tombol atau mengirim penekanan tombol di 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:
KeyDown KeyPress Ubah KeyUp
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:
KeyDown BeforeUpdate AfterUpdate Exit LostFocus
-
Kontrol kedua:
Masukkan GotFocus KeyPress KeyUp
Acara mouse
Saat Anda mengklik dan melepaskan tombol mouse saat penunjuk mouse berada di kontrol pada formulir, urutan kejadian berikut ini terjadi untuk kontrol:
MouseDown MouseUp Klik
Jika kontrol memiliki fokus dan Anda mengklik kontrol lain untuk memindahkan fokus ke kontrol kedua ini, urutan kejadian berikut ini terjadi:
-
Kontrol pertama:
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:
MouseD sendiri 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:
Buka Aktifkan Tutup Nonaktifkan
Saat Anda beralih antara dua laporan yang terbuka, acara Nonaktifkan terjadi untuk laporan pertama, dan kejadian Aktifkan terjadi untuk laporan kedua:
Menonaktifkan (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:
Buka (laporan) Aktifkan (laporan) Format (bagian laporan) Cetak (bagian laporan) 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.