Anda bisa menggunakan tindakan CancelEvent untuk membatalkan acara yang menyebabkan Access menjalankan makro yang berisi tindakan ini. Nama makro adalah pengaturan acara properti seperti BeforeUpdate, OnOpen, OnUnload, atau OnPrint.
Catatan: Tindakan makro CancelEvent tidak tersedia di aplikasi web Access.
Pengaturan
Tindakan CancelEvent tidak memiliki argumen apa pun.
Keterangan
Di formulir, Anda biasanya menggunakan tindakan CancelEvent dalam makro validasi dengan properti acara BeforeUpdate. Ketika pengguna memasukkan data dalam kontrol atau rekaman, Access menjalankan makro sebelum menambahkan data ke database. Jika data gagal melewati kondisi validasi di dalam makro, tindakan CancelEvent membatalkan proses perbarui sebelum dimulai.
Sering kali, Anda menggunakan tindakan ini dengan tindakan MsgBox untuk menunjukkan bahwa data telah gagal melewati kondisi validasi dan untuk menyediakan informasi yang bermanfaat tentang jenis data yang harus dimasukkan.
Kejadian berikut ini dapat dibatalkan oleh tindakan CancelEvent.
ApplyFilter |
Dirty |
MouseDown |
BeforeDelConfirm |
Keluar |
NoData |
BeforeInsert |
Filter |
Buka |
BeforeUpdate |
Format |
Cetak |
DblClick |
KeyPress |
Bongkar |
Hapus |
Catatan: Anda bisa menggunakan tindakan CancelEvent dengan acara MouseDown hanya untuk membatalkan kejadian yang terjadi ketika Anda mengklik kanan sebuah objek.
Jika pengeturan properti acara OnDblClick kontrol menentukan makro berisi tindakan CancelEvent, tindakan tersebut membatalkan kejadian DblClick.
Untuk acara yang dapat dibatalkan, perilaku default untuk acara (yaitu, apa yang biasanya dilakukan Access saat terjadi kejadian) terjadi setelah makro untuk acara berjalan. Ini memungkinkan Anda untuk membatalkan perilaku default. Misalnya, ketika Anda mengklik ganda sebuah kata yang titik penyisipannya berada di kotak teks, Access biasanya memilih kata itu. Anda bisa membatalkan perilaku default ini di dalam makro untuk acara DblClick dan menjalankan beberapa tindakan lainnya, seperti membuka formulir yang berisi informasi tentang data di dalam kotak teks. Untuk peristiwa yang tidak dapat dibatalkan, perilaku default muncul sebelum makro berjalan.
Catatan: Jika pengaturan properti acara OnUnload formulir menentukan sebuah makro yang melakukan tindakan CancelEvent, Anda tidak akan bisa menutup formulir itu. Anda harus mengoreksi kondisi yang menyebabkan tindakan CancelEvent dilakukan atau buka makro dan hapus tindakan CancelEvent. Jika formulir adalah formulir modal, Anda tidak akan bisa membuka makro.
Untuk menjalankan tindakan CancelEvent dalam modul Visual Basic for Applications (VBA), gunakan metode CancelEvent dari objek DoCmd.
Contoh
Memvalidasi data dengan menggunakan makro
Makro validasi berikut ini memeriksa kode pos yang dimasukkan dalam formulir Pemasok. Ini memperlihatkan penggunaan tindakan StopMacro, MsgBox, CancelEvent, dan GoToControl. Ekspresi bersyarat memeriksa negara/kawasan dan kode pos yang dimasukkan dalam catatan pada formulir. Jika kode pos tidak berada dalam format yang benar untuk negara/kawasan, makro menampilkan kotak pesan dan membatalkan penyimpanan catatan tersebut. Lalu mengembalikan Anda ke kontrol Kode Pos, di mana Anda bisa mengoreksi kesalahan. Makro ini harus terhubung ke properti BeforeUpdate formulir Pemasok.
Kondisi |
Tindakan |
Argumen: Pengaturan |
Komentar |
IsNull( [CountryRegion]) |
StopMacro |
Jika CountryRegion adalah Null, kode pos tidak bisa divalidasi. |
|
[CountryRegion] In ("France","Italy","Spain") And Len([Postal Code]) <> 5 |
MsgBox |
Pesan: Kode pos harus 5 karakter. Beep: Ya Tipe: Informasi Judul: Kesalahan Kode Pos |
Jika kode pos tidak 5 karakter, akan menampilkan pesan. |
... |
CancelEvent |
Membatalkan acara. |
|
GoToControl |
Nama Kontrol: PostalCode |
||
[CountryRegion] In ("Australia","Singapore") And Len([Postal Code]) <> 4 |
MsgBox |
Pesan: Kode pos harus 4 karakter. Beep: Ya Tipe: Informasi Judul: Kesalahan Kode Pos |
Jika kode pos tidak 4 karakter, tampilkan pesan. |
... |
CancelEvent |
Membatalkan acara. |
|
GoToControl |
Nama Kontrol: PostalCode |
||
([CountryRegion] = "Canada") And ([Postal Code] Not Like"[A-Z][0-9][A-Z] [0-9][A-Z][0-9]") |
MsgBox |
Pesan: Kode pos tidak valid. Contoh kode Kanada: H1J 1C3 Beep: Ya Tipe: Informasi Judul: Kesalahan Kode Pos |
Jika kode pos tidak benar untuk Kanada, akan menampilkan pesan. (Contoh kode Kanada: H1J 1C3) |
... |
CancelEvent |
Membatalkan acara. |