Hàm DoEvents

Áp dụng cho
Access cho Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Lưu ý

Hàm, phương pháp, đối tượng hoặc thuộc tính được mô tả trong chủ đề này bị tắt nếu Dịch vụ Biểu thức Microsoft Jet đang chạy ở chế độ hộp cát, điều này ngăn chặn việc đánh giá các biểu thức không an toàn tiềm ẩn. Để biết thêm thông tin về chế độ hộp cát, hãy tìm kiếm "chế độ hộp cát" trong Trợ giúp.

Cho phép thực thi để hệ điều hành có thể xử lý các sự kiện khác.

Cú pháp

DoEvents( )

Chú thích

Hàm DoEvents trả về một Số nguyên đại diện cho số lượng biểu mẫu mở trong các phiên bản độc lập của Microsoft Visual Basic, như Visual Basic, Professional Edition. DoEvents trả về số không trong tất cả các ứng dụng khác.

DoEvents chuyển quyền điều khiển cho hệ điều hành. Điều khiển được trả về sau khi hệ điều hành xử lý xong các sự kiện trong hàng đợi và tất cả các khóa trong hàng đợi SendKeys đã được gửi.

DoEvents hữu ích nhất cho những việc đơn giản như cho phép người dùng hủy quy trình sau khi bắt đầu, chẳng hạn như tìm kiếm tệp. Đối với các quy trình chạy lâu, việc nhường bộ xử lý được thực hiện tốt hơn bằng cách sử dụng Bộ hẹn giờ hoặc ủy nhiệm tác vụ cho một thành phần ActiveX EXE. Trong trường hợp sau, tác vụ có thể tiếp tục hoàn toàn độc lập với ứng dụng của bạn và hệ điều hành sẽ đảm nhiệm đa nhiệm và cắt thời gian.

Bất cứ khi nào bạn tạm thời nhượng bộ xử lý trong một thủ tục sự kiện, hãy đảm bảo rằng thủ tục không được thực thi lại từ một phần khác trong mã của bạn trước khi cuộc gọi đầu tiên trả về; Điều này có thể dẫn đến những kết quả không dự đoán. Ngoài ra, đừng dùng DoEvents nếu các ứng dụng khác có thể tương tác với quy trình của bạn theo những cách không lường trước được trong thời gian bạn đã nhường quyền điều khiển.

Ví dụ

Lưu ý

Các ví dụ sau thể hiện cách sử dụng hàm này trong mô-đun Visual Basic for Applications (VBA). Để biết thêm thông tin về cách làm việc với VBA, chọn Tham khảo dành cho Nhà phát triển trong danh sách thả xuống cạnh Tìm kiếm, rồi nhập một hoặc nhiều từ vào hộp tìm kiếm.

Ví dụ này sử dụng hàm DoEvents để khiến việc thực thi chuyển cho hệ điều hành cứ sau 1000 lần lặp của vòng lặp. DoEvents trả về số lượng biểu mẫu Visual Basic đang mở, nhưng chỉ khi ứng dụng lưu trữ là Visual Basic.

' Create a variable to hold number of 
' Visual Basic forms loaded and visible.
Dim I, OpenForms
For I = 1 To 150000    ' Start loop.
    If I Mod 1000 = 0 Then  ' If loop has repeated
                            ' 1000 times.
        OpenForms = DoEvents  ' Yield to operating system.
    End If
Next I    ' Increment loop counter.