Applies ToAccess cho Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Một hành động đơn lẻ, chẳng hạn như di chuyển từ một điều khiển trên một đối tượng đến một điều khiển khác, có thể kích hoạt một số sự kiện khác nhau xảy ra theo một trình tự cụ thể. Việc biết rõ thời điểm và trình tự xảy ra sự kiện là rất quan trọng vì điều đó có thể ảnh hưởng đến cách thức và thời điểm macro của bạn hoặc quy trình sự kiện hoạt động. Ví dụ: nếu có hai quy trình sự kiện chạy theo một trình tự nhất định, bạn muốn đảm bảo rằng các sự kiện liên kết sẽ xảy ra theo cùng một trình tự đó.

Trong bài viết này

Trình tự của sự kiện đối với các điều khiển trên biểu mẫu

Sự kiện xảy ra đối với các điều khiển trên biểu mẫu khi bạn di chuyển tiêu điểm tới điều khiển và khi bạn thay đổi, cũng như cập nhật dữ liệu trong điều khiển.

Lưu ý: Microsoft Office Access hiển thị tên sự kiện trong Trình soạn thảo Visual Basic hơi khác so với trong trang thuộc tính và Bộ dựng Macro. Ví dụ: sự kiện có tên là On Got Focus trong trang thuộc tính của biểu mẫu và trong Bộ dựng Macro có tên là GotFocus trong Trình soạn thảo Visual Basic. Các ví dụ trong bài viết này sử dụng định dạng Visual Basic for Applications (VBA) cho tên sự kiện.

Di chuyển tiêu điểm đến một điều khiển

Khi bạn di chuyển tiêu điểm đến một điều khiển trên biểu mẫu (ví dụ: bằng cách mở biểu mẫu có chứa một hoặc nhiều điều khiển hiện hoạt hoặc bằng cách di chuyển tiêu điểm đến một điều khiển khác trên cùng một biểu mẫu), các sự kiện EnterGotFocus diễn ra theo trình tự này:

Nhập mũi tên GotFocus

Khi bạn mở một biểu mẫu, các sự kiện EnterGotFocus sẽ xảy ra sau các sự kiện liên kết với việc mở biểu mẫu (chẳng hạn như Open, ActivateCurrent), như sau:

Open (biểu mẫu) mũi tênActivate (biểu mẫu) mũi tênCurrent (biểu mẫu) mũi tênEnter (điều khiển) mũi tênGotFocus (điều khiển)

Khi tiêu điểm rời khỏi một điều khiển trên biểu mẫu (ví dụ: khi bạn đóng biểu mẫu có chứa một hoặc nhiều điều khiển hiện hoạt hoặc khi bạn di chuyển đến một điều khiển khác trên cùng một biểu mẫu), các sự kiện ExitLostFocus diễn ra theo trình tự này:

Thoát khỏi mũi tên LostFocus

Khi bạn đóng một biểu mẫu, các sự kiện ExitLostFocus sẽ xảy ra trước các sự kiện liên kết với việc đóng biểu mẫu (chẳng hạn như Unload, DeactivateClose), như sau:

Exit (điều khiển) mũi tênLostFocus (điều khiển) mũi tênUnload (biểu mẫu) mũi têndeactivate (biểu mẫu) mũi tênClose (biểu mẫu)

Thay đổi và cập nhật dữ liệu trong điều khiển

Khi bạn nhập hoặc thay đổi dữ liệu trong điều khiển trên biểu mẫu, rồi di chuyển tiêu điểm đến một điều khiển khác, sự kiện BeforeUpdateAfterUpdate sẽ xảy ra:

BeforeUpdate mũi tên Afte rUpdate

Các sự kiện ExitLostFocus cho một điều khiển có giá trị thay đổi xảy ra sau sự kiện BeforeUpdateAfterUpdate:

BeforeUpdate mũi tên AfterUpdate mũi tên Exit mũi tên LostFocus

Khi bạn thay đổi văn bản trong hộp văn bản hoặc trong phần hộp văn bản của hộp tổ hợp, sự kiện Change sẽ xảy ra. Sự kiện này xảy ra mỗi khi nội dung của điều khiển thay đổi nhưng trước khi bạn di chuyển tiêu điểm đến một điều khiển hoặc bản ghi khác (và do đó, trước khi các sự kiện BeforeUpdateAfterUpdate xảy ra). Chuỗi sự kiện sau đây sẽ xảy ra đối với từng khóa được bạn nhấn trong hộp văn bản hoặc trong phần hộp văn bản của hộp tổ hợp là như sau:

KeyDown mũi tên KeyPress mũi tên Dirty mũi tên change mũi tên KeyUp

Sự kiện NotInList sẽ xảy ra sau khi bạn nhập giá trị vào hộp tổ hợp không tìm thấy trong danh sách hộp tổ hợp, rồi cố gắng di chuyển tiêu điểm đến điều khiển hoặc bản ghi khác. Sự kiện NotInList xảy ra sau các sự kiện của bàn phím và sự kiện Change cho hộp tổ hợp nhưng trước các sự kiện cho mọi điều khiển hoặc biểu mẫu khác. Nếu thuộc tính LimitToList của hộp tổ hợp được đặt thành Có thì sự kiện Error cho biểu mẫu sẽ xảy ra ngay lập tức sau sự kiện NotInList:

KeyDown mũi tên KeyPress mũi tên Dirty mũi tên change mũi tên KeyUp mũi tên NotInList 0 Error

Đầu Trang

Trình tự của sự kiện cho các bản ghi trên biểu mẫu

Sự kiện xảy ra đối với các bản ghi trên biểu mẫu khi bạn di chuyển tiêu điểm vào bản ghi khác, cập nhật dữ liệu trong một bản ghi, xóa bản ghi hoặc các bản ghi hiện có hay tạo một bản ghi mới.

Di chuyển tiêu điểm đến bản ghi và cập nhật dữ liệu trong bản ghi

Khi bạn di chuyển tiêu điểm đến một bản ghi hiện có trên biểu mẫu, nhập hoặc thay đổi dữ liệu trong bản ghi, rồi di chuyển tiêu điểm đến một bản ghi khác, chuỗi sự kiện sau đây sẽ xảy ra đối với biểu mẫu:

Current (biểu mẫu) mũi tênBeforeUpdate (biểu mẫu) mũi tênAfterUpdate (biểu mẫu) mũi tênCurrent (biểu mẫu)

Khi bạn rời khỏi bản ghi đã thay đổi dữ liệu nhưng trước khi bạn nhập bản ghi kế tiếp, các sự kiện ExitLostFocus xảy ra đối với điều khiển có tiêu điểm. Những sự kiện này xảy ra sau các sự kiện BeforeUpdateAfterUpdate đối với biểu mẫu, như sau:

BeforeUpdate (biểu mẫu) mũi tênAfterUpdate (biểu mẫu) mũi tênExit (điều khiển) mũi tênLostFocus (điều khiển) mũi tênCurrent (biểu mẫu)

Khi bạn di chuyển tiêu điểm giữa các điều khiển trên biểu mẫu, các sự kiện sẽ xảy ra đối với từng điều khiển. Ví dụ: chuỗi sự kiện sau đây sẽ xảy ra khi bạn thao tác như sau:

  • Mở biểu mẫu và thay đổi dữ liệu trong điều khiển:

    Current (biểu mẫu) mũi tênEnter (điều khiển) mũi tênGotFocus (điều khiển) mũi tênBeforeUpdate (điều khiển) mũi tênAfterUpdate (điều khiển)

  • Di chuyển tiêu điểm đến điều khiển khác:

    Exit (điều khiển 1) mũi tênLostFocus (điều khiển 1) mũi tênEnter (điều khiển 2) mũi tênGotFocus (điều khiển 2)

  • Di chuyển tiêu điểm đến bản ghi khác:

    BeforeUpdate (biểu mẫu) mũi tênAfterUpdate (biểu mẫu) mũi tênExit (điều khiển 2) mũi tênLostFocus (điều khiển 2) mũi tênCurrent (biểu mẫu)

Xóa bản ghi

Khi bạn xóa bản ghi, các sự kiện sau đây sẽ xảy ra đối với biểu mẫu và Microsoft Office Access sẽ hiển thị hộp thoại yêu cầu bạn xác nhận xóa:

Xóa mũi tên BeforeDelConfirm mũi tên AfterDelConfirm

Nếu bạn hủy bỏ sự kiện Delete, các sự kiện BeforeDelConfirmAfterDelConfirm sẽ xảy ra và hộp thoại sẽ không hiển thị.

Tạo bản ghi mới

Khi bạn di chuyển tiêu điểm đến một bản ghi (trống) mới trên biểu mẫu, rồi tạo một bản ghi mới bằng cách nhập dữ liệu vào điều khiển, chuỗi sự kiện sau đây sẽ xảy ra:

Current (biểu mẫu) mũi tênEnter (điều khiển) mũi tênGotFocus (điều khiển) mũi tênBeforeInsert (biểu mẫu) mũi tênAfterInsert (biểu mẫu)

Sự kiện BeforeInsert (biểu mẫu) sẽ kích hoạt ngay khi bạn bắt đầu nhập vào điều khiển. Sự kiện AfterInsert (biểu mẫu) kích hoạt sau khi bạn rời khỏi bản ghi.

Các sự kiện BeforeUpdateAfterUpdate cho các điều khiển trên biểu mẫu và cho bản ghi mới sẽ xảy ra sau sự kiện BeforeInsert và trước sự kiện AfterInsert.

Đầu Trang

Trình tự của sự kiện cho các biểu mẫu và biểu mẫu con

Sự kiện sẽ xảy ra đối với các biểu mẫu khi bạn mở hoặc đóng biểu mẫu, di chuyển giữa các biểu mẫu hoặc làm việc với dữ liệu trên biểu mẫu hay biểu mẫu con.

Mở và đóng một biểu mẫu

Khi bạn mở biểu mẫu, trình sự kiện sau đây sẽ xảy ra đối với biểu mẫu:

Mở mũi tên Đổi kích mũi tênkích mũi tênhiện mũi tênhiện tại

Nếu không có điều khiển hiện hoạt trên biểu mẫu, sự kiện GotFocus sẽ xảy ra đối với biểu mẫu sau sự kiện Activate nhưng trước sự kiện Current.

Khi bạn đóng biểu mẫu, chuỗi sự kiện sau đây sẽ xảy ra đối với biểu mẫu:

Bỏ tải mũi tên kích hoạt mũi tên Đóng

Nếu không có điều khiển hiện hoạt trên biểu mẫu, sự kiện LostFocus sẽ xảy ra đối với biểu mẫu sau sự kiện Unload nhưng trước sự kiện Deactivate.

Di chuyển giữa các biểu mẫu

Khi bạn chuyển đổi giữa hai biểu mẫu đang mở, sự kiện Deactivate sẽ xảy ra đối với biểu mẫu đầu tiên và sự kiện Activate xảy ra đối với biểu mẫu thứ hai:

Hủy kích hoạt (biểu mẫu 1) mũi tênActivate (biểu mẫu 2)

Sự kiện Deactivate đối với biểu mẫu cũng sẽ xảy ra khi bạn chuyển đổi từ biểu mẫu sang một tab đối tượng khác trong Access. Tuy nhiên, sự kiện Deactivate sẽ xảy ra khi bạn chuyển sang một hộp thoại, sang biểu mẫu có thuộc tính PopUp được đặt thành hoặc sang một cửa sổ trong chương trình khác.

Lưu ý:  Sự kiện Open sẽ không xảy ra nếu bạn di chuyển tiêu điểm đến một biểu mẫu đã mở, ngay cả khi bạn đã di chuyển tiêu điểm đến biểu mẫu đó bằng cách thực hiện hành động OpenForm.

Làm việc với dữ liệu trên biểu mẫu

Sự kiện đối với biểu mẫu và điều khiển sẽ xảy ra khi bạn di chuyển giữa các bản ghi trong biểu mẫu và thay đổi dữ liệu. Ví dụ: Khi bạn mở biểu mẫu lần đầu tiên, chuỗi sự kiện sau đây sẽ xảy ra:

Open (biểu mẫu) mũi tênLoad (biểu mẫu) mũi tênĐổi kích cỡ (biểu mẫu) mũi tênActivate (biểu mẫu) mũi tênCurrent (biểu mẫu) mũi tênEnter (điều khiển)0 GotFocus (điều khiển)

Tương tự, khi bạn đóng biểu mẫu, chuỗi sự kiện sau sẽ xảy ra:

Exit (điều khiển) mũi tênLostFocus (điều khiển) mũi tênUnload (biểu mẫu) mũi têndeactivate (biểu mẫu) mũi tênClose (biểu mẫu)

Nếu bạn đã thay đổi dữ liệu trong điều khiển, các sự kiện BeforeUpdateAfterUpdate cho điều khiển và biểu mẫu sẽ xảy ra trước sự kiện Exit đối với điều khiển.

Làm việc với biểu mẫu con

Khi bạn mở biểu mẫu có chứa biểu mẫu con, biểu mẫu con và các bản ghi sẽ được tải trước biểu mẫu chính. Do đó, các sự kiện đối với biểu mẫu con và điều khiển của biểu mẫu con (chẳng hạn như Open, Current, EnterGotFocus) sẽ xảy ra trước các sự kiện đối với biểu mẫu. Tuy nhiên, sự kiện Activate sẽ không xảy ra đối với biểu mẫu con. Do đó, việc mở một biểu mẫu chính sẽ chỉ kích hoạt sự kiện Activate đối với biểu mẫu chính.

Tương tự, khi bạn đóng biểu mẫu có chứa biểu mẫu con, biểu mẫu con và các bản ghi của biểu mẫu con sẽ bỏ tải sau biểu mẫu. Sự kiện Deactivate sẽ không xảy ra đối với biểu mẫu con. Do đó, việc đóng một biểu mẫu chính sẽ chỉ kích hoạt sự kiện Deactivate đối với biểu mẫu chính. Các sự kiện đối với điều khiển, biểu mẫu và biểu mẫu con xảy ra theo trình tự sau:

  1. Các sự kiện đối với điều khiển của biểu mẫu con (chẳng hạn như ExitLostFocus)

  2. Các sự kiện cho điều khiển biểu mẫu (bao gồm điều khiển biểu mẫu con)

  3. Các sự kiện đối với biểu mẫu (chẳng hạn như DeactivateClose)

  4. Các sự kiện đối với biểu mẫu con

Lưu ý: Vì các sự kiện đối với biểu mẫu con xảy ra sau khi đóng biểu mẫu chính, những sự kiện nhất định, chẳng hạn như hủy đóng biểu mẫu chính từ một sự kiện trong biểu mẫu con, sẽ không xảy ra. Bạn có thể cần phải di chuyển các kiểu kiểm tra xác thực vào một sự kiện trên biểu mẫu chính.

Đầu Trang

Trình tự của sự kiện đối với các lần nhấn phím và bấm chuột

Các sự kiện về bàn phím xảy ra đối với biểu mẫu và điều khiển khi bạn nhấn phím hoặc gửi tổ hợp phím trong khi biểu mẫu hoặc điều khiển có tiêu điểm. Sự kiện về chuột xảy ra đối với biểu mẫu, các mục biểu mẫu và điều khiển trên biểu mẫu khi bạn bấm nút chuột trong khi con trỏ chuột nằm trên biểu mẫu, mục hoặc điều khiển. Sự kiện về chuột cũng xảy ra khi bạn di chuyển con trỏ chuột trên biểu mẫu, mục hoặc điều khiển.

Sự kiện về bàn phím

Khi bạn nhấn và thả một phím trong khi điều khiển trên biểu mẫu có tiêu điểm (hoặc sử dụng hành động SendKeys hoặc câu lệnh để gửi tổ hợp phím), chuỗi sự kiện sau sẽ xảy ra:

KeyDown mũi tên KeyPress mũi tên KeyUp

Khi bạn nhấn và thả một phím hoặc gửi tổ hợp phím trong Tập ký tự ANSI, tất cả các sự kiện KeyDown, KeyPressKeyUp sẽ xảy ra. Nếu bạn nhấn và giữ phím ANSI, các sự kiện KeyDownKeyPress sẽ thay nhau lặp đi lặp lại (KeyDown, KeyPress, KeyDown, KeyPress, v.v.) cho đến khi bạn thả phím; sau đó sự kiện KeyUp sẽ xảy ra.

Nếu bạn nhấn và thả phím không phải ANSI, các sự kiện KeyDownKeyUp sẽ xảy ra. Nếu bạn nhấn và giữ phím không phải ANSI, sự kiện KeyDown sẽ xảy ra lặp đi lặp lại cho đến khi bạn thả phím, sau đó, sự kiện KeyUp sẽ xảy ra.

Nếu việc nhấn phím kích hoạt một sự kiện khác đối với điều khiển, sự kiện đó sẽ xảy ra sau sự kiện KeyPress nhưng trước sự kiện KeyUp. Ví dụ: nếu tổ hợp phím làm thay đổi văn bản trong văn bản hộp, mà việc này làm kích hoạt sự kiện Change, chuỗi sự kiện sau đây sẽ xảy ra:

KeyDown mũi tên KeyPress mũi tên Change mũi tên KeyUp

Nếu tổ hợp phím khiến tiêu điểm di chuyển từ một điều khiển tới điều khiển khác, sự kiện KeyDown sẽ xảy ra đối với điều khiển đầu tiên, còn sự kiện KeyPressKeyUp sẽ xảy ra đối với điều khiển thứ hai. Ví dụ: nếu bạn thay đổi dữ liệu trong điều khiển, rồi nhấn phím TAB để di chuyển tới điều khiển tiếp theo, chuỗi sự kiện sau sẽ xảy ra:

  • Điều khiển thứ nhất:

    KeyDown mũi tên BeforeUpdate mũi tên AfterUpdate mũi tên Exit mũi tên LostFocus

  • Điều khiển thứ hai:

    Nhập mũi tên GotFocus mũi tên KeyPress mũi tên KeyUp

Sự kiện về chuột

Khi bạn bấm và thả nút chuột trong khi con trỏ nằm trên điều khiển ở biểu mẫu, chuỗi sự kiện sau đây sẽ xảy ra đối với điều khiển:

Di chuột mũi tên chuột lên mũi tên bấm chuột

Nếu điều khiển có tiêu điểm và bạn bấm điều khiển khác để di chuyển tiêu điểm đến điều khiển thứ hai này, chuỗi sự kiện sau đây sẽ xảy ra:

  • Điều khiển thứ nhất:

    Thoát khỏi mũi tên LostFocus

  • Điều khiển thứ hai:

    Nhập mũi tên GotFocus mũi tên MouseDown mũi tên MouseUp và bấm mũi tên chuột

Nếu bạn di chuyển đến một bản ghi khác, rồi bấm điều khiển, sự kiện Current đối với biểu mẫu cũng sẽ xảy ra trước sự kiện Enter đối với điều khiển.

Việc bấm đúp vào điều khiển sẽ khiến cho cả hai sự kiện ClickDblClick xảy ra. Ví dụ: khi bạn bấm đúp vào điều khiển không phải là nút lệnh, chuỗi sự kiện sau đây sẽ xảy ra đối với điều khiển:

MouseD của riêng mũi tên MouseUp mũi tên bấm mũi tên vào DblClick mũi tên MouseUp

Khi bạn bấm đúp vào nút lệnh, chuỗi sự kiện trước đó sẽ xảy ra, theo sau bởi sự kiện Click thứ hai.

Sự kiện MouseMove đối với biểu mẫu, mục hoặc điều khiển sẽ xảy ra khi bạn di chuyển con trỏ chuột trên biểu mẫu, mục hoặc điều khiển. Sự kiện này độc lập với các sự kiện về chuột khác.

Đầu Trang

Trình tự của sự kiện đối với báo cáo và các mục báo cáo

Các sự kiện sẽ xảy ra đối với báo cáo và mục báo cáo khi bạn mở báo cáo để in hoặc xem trước hoặc đóng báo cáo.

Các sự kiện đối với báo cáo

Khi bạn mở báo cáo để in hoặc xem trước, rồi đóng báo cáo hoặc di chuyển đến tab đối tượng khác trong Access, chuỗi sự kiện sau đây sẽ xảy ra đối với báo cáo:

Mở mũi tên Kích mũi tên Đóng mũi tên kích hoạt

Khi bạn chuyển đổi giữa hai báo cáo đang mở, sự kiện Deactivate sẽ xảy ra đối với báo cáo đầu tiên và sự kiện Activate xảy ra đối với báo cáo thứ hai:

Hủy kích hoạt (báo cáo 1) mũi tênKích hoạt (báo cáo 2)

Sự kiện Deactivate đối với báo cáo cũng sẽ xảy ra khi bạn chuyển đổi từ báo cáo sang một tab đối tượng khác trong Access. Tuy nhiên, sự kiện Deactivate sẽ xảy ra khi bạn chuyển sang một hộp thoại, sang biểu mẫu có thuộc tính PopUp được đặt thành hoặc sang một cửa sổ trong chương trình khác.

Khi bạn mở báo cáo dựa trên truy vấn, Access sẽ kích hoạt sự kiện Open đối với báo cáo trước khi chạy truy vấn cơ sở. Do đó, bạn có thể đặt các tiêu chí cho báo cáo bằng macro hoặc quy trình sự kiện phản hồi sự kiện Open. Ví dụ: macro hoặc quy trình sự kiện có thể mở hộp thoại tùy chỉnh mà bạn nhập tiêu chí báo cáo.

Các sự kiện đối với mục báo cáo

Khi bạn in hoặc xem trước báo cáo, sự kiện FormatPrint sẽ xảy ra đối với các mục báo cáo sau sự kiện OpenActivate đối với báo cáo và trước các sự kiện Close hoặc Deactivate của báo cáo:

Open (report) mũi tênActivate (report) mũi tênFormat (report section) mũi tênPrint (report section) mũi tênClose (report) mũi tênDeactivate (report)

Bảo mật    Bạn có thể sử dụng Dạng xem Báo cáo để cho phép người dùng lọc báo cáo. Nhưng không giống như Xem trước khi In, các sựkiện Định dạng và In trong bất kỳ mục nào không xảy ra ở Dạng xem Báo cáo. Điều này cũng áp dụng cho kết quả hàm VBA và quy trình do người dùng xác định hiển thị trong điều khiển (chẳng hạn như chú thích nhãn, trạng thái hiển thị, định dạng có điều kiện, đổi kích cỡ điều khiển, v.v.) trong các sự kiện đó. Do đó, không sử dụng mã trong trường hợp này để định dạng, ẩn hoặc in dữ liệu bí mật, có thể bị lộ. Chúng tôi khuyên bạn nên lọc trước dữ liệu hoặc tắt Xem trước Báo cáo bằng cách đặt thuộc tính AllowReportView thành No.

Ngoài ra, các sự kiện sau đây có thể xảy ra trong hoặc sau khi định dạng nhưng trước sự kiện Print:

  • Sự kiện Retreat xảy ra khi Access quay lại mục trước đó trong quá trình định dạng báo cáo.

  • Sự kiện NoData xảy ra nếu không có bản ghi nào hiển thị theo báo cáo.

  • Sự kiện Page xảy ra sau khi định dạng nhưng trước khi in. Bạn có thể sử dụng sự kiện này để tùy chỉnh giao diện của báo cáo được in.

Đầu Trang

Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.

Cộng đồng giúp bạn đặt và trả lời các câu hỏi, cung cấp phản hồi và lắng nghe ý kiến từ các chuyên gia có kiến thức phong phú.