Thông tin tài liệu:
Tham khảo tài liệu sự kiện event và các thủ tục sự kiện, văn hoá - nghệ thuật, báo chí - truyền thông phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Nội dung trích xuất từ tài liệu:
SỰ KIỆN EVENT VÀ CÁC THỦ TỤC SỰ KIỆN SỰ KIỆN EVENT VÀ CÁC THỦ TỤC SỰ KIỆNSự kiện là gì?Sự kiện (event) là một hành động xác định xảy ra trên hoặc với một đối tượng nàođó. MS Access có thể đáp lại nhiều sự kiện: nhấn chuột, thay đổi dữ liệu, mở hoặcđóng form, ... Sự kiện thường là kết quả tạo ra bởi một hành động của người sửdụng.Thủ tục là gì?Thủ tục (procedure) là một đơn vị code của VB. Một thủ tục bao gồm một dãy cáclệnh (statement) hoặc các phương thức (method) để thực thi một hành động hoặctính toán một giá trị.Thủ tục sự kiện là gì?Thủ tục sự kiện (event procedure) là một thủ tục tự động thực thi để đáp lại một sựkiện được khởi xướng từ một hành động của người dùng hoặc từ code của chươngtrình.VD: Thủ tục sự kiện sau đây sẽ thực thi một lệnh mở câu thông báo chào khi formđược mở ra:Private Sub Form_Load()MsgBox Xin chào các bạn.End SubMỘT SỐ SỰ KIỆN THƯỜNG GẶP VÀ CÁCH ĐIỀU KHIỂN SỰ KIỆNCác sự kiện xảy ra với đối tượng Form:1. Sự kiện Open:Sự kiện xảy ra khi form được mở, nhưng trước khi record đầu tiên được hiển thị.(Ghi chú: ở đối tượng Report cũng có sự kiện Open, trong report sự kện Open xảyra trước khi report được preview hoặc được in)Từ khi gọi form cho đến khi form xuất hiện lần đầu trên màn hình, một loạt các sựkiện xảy ra, trong đó sự kiện Open là sự kiện được xảy ra đầu tiên. Các sự kiệnnày và thời điểm xảy ra của nó được thể hiện bằng chuỗi sau:Open --> Load --> Resize --> Activate --> CurrentThuộc tính gắn với sự kiện Open có tên là OnOpen. (Các bạn lưu ý: với nhữngthuộc tính bắt đầu bằng On có nghĩa là sự kiện đó đang diễn tiến,Before là trướckhi sự kiện xảy ra, After là sau khi sự kiện xảy ra).Thủ tục sự kiện gắn với sự kiện này là Form_Open. Sự kiện có một tham số có tênlà Cancel kiểu Integer (thực chất nó chỉ nhận hai giá trị True và False). Tham sốnày các bạn có thể định lại giá trị cho nó.Nếu định là True, sự kiện sẽ bị hoãn, nghĩa là sự kiện sẽ không hoàn tất, nhưngkhông xảy ra lỗi. Mặc nhiên là False.VD: Bạn muốn rằng khi form A mở ra thì form B sẽ mở ra nếu người sử dụngđồng ý, bạn có thể code cho thủ tục sự kiện như sau:Private Sub Form_Open(Cancel As Integer)If MsgBox(Ban co muon form B mo ra dong th oi luon khong?, vbYesNo) =vbYes ThenDoCmd.OpenForm form BElseCancel = TrueEnd IfEnd SubGhi chú: Bất kỳ một thủ tục sự kiện nào nó thông số là Cancel, thì sự kiện tươngứng đều có thể cho ngưng không cho hoàn tất. Trong trường hợp bạn sử dụng mộtmacro hoặc một phương thức của DoCmd thì nếu hoãn một sự kiện, sẽ có mộterror trả về. Để tránh xuất hiện lỗi thì nế dùng macro, bạn có thể đặt trước macrođó một macro SetWarnings và gán cho thuộc tính WarningOn là No, dùng DoCmdtrong code thì trước đó bạn đặt câu On Error Resume Next.2. Sự kiện Load:Sự kiện Load xảy ra bởi tác động của người dùng như:- Bắt đầu một ứng dụng.- Mở một form bằng cách nhắp vào Open trên cửa sổ Database.- Thực thi một hành động OpenForm trong macro.- Gọi form bằng DoCmd.OpenForm trong thủ tục.Thuộc tính sự kiện tương ứng có tên là OnLoad.Thủ tục sự kiện tương ứng có tên là Form_Load, không có tham số.Khi điều khiển sự kiện này, bạn có thể thực hiện những công việc sau:Thiết lập các giá trị mặc định cho các control hoặc thể hiện các giá trị tính toán tùythuộc vào dữ liệu có trên form.VD: Trong public module bạn có một biến language. Nếu biến này là V thì bạncho hiển thị các caption của các Label là tiếng Việt, E thì hiển thị là tiếng Anh.Biến này sẽ tùy thuộc vào việc người ta chọn trong một thủ tục nào đó trước khiform bạn được gọi vào.Trước tiên, khi thiết kế form, ở các label, bạn đặt các từ ính lịt tương ứng ởproperty Tag của nó.Sau đó bạn thiết kế thủ tục Form_Load như sau:Private Sub Form_Load ()Dim ctl As ControlFor Each ctl In Detail.Controls or FormHeader.Controls, FormFooter.ControlsIf TypeOf ctl Is Label Thenx = ctl.Captionctl.Caption = ctl.Tagctl.Tag = xEnd IfNextEnd Sub3. Sự kiện Resize:Sự kiện xảy ra khi form được gọi và bất cứ khi nào kích thước của form thay đổi.Thuộc tính sự kiện tương ứng có tên là OnResize.Thủ tục sự kiện tương ứng có tên là Form_Resize. Thủ tục này không có tham số.Khi điều khiển sự kiện này, bạn có thể:- Di chuyển hoặc định lại kích thước của một control.- Tính toán lại các biến.- Reset lại các thuộc tính có liên quan đến kích thước của form.VD: Khi có sự thay đổi kích thước của form sẽ cho hoàn tất những cập nhật mànhình còn đang treo hoặc những tính toán chưa thực hiện xong trên các controlbằng phương thức Repaint.Private Sub Form_Resize()Me.RepaintEnd Sub4. Sự kiện Activate:Sự kiện xảy ra khi một form (cũng đúng với report) nhận một focus (cái này khôngdám dịch ra tiếng việt, bởi dịch ra thì hổng ai hiểu, còn để nguyên thì ai cũng hiểu!!! ) và trở thành cửa sổ hoạt động.Thuộc tính sự kiện tương ứng có tên là OnActivate.Thủ tục sự kiện tương ứng có tên là Form_Activate. Thủ tục không có tha ...