Sự kiện và các thủ tục sự kiện
lượt xem 41
download
Sự 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ác lệnh (statement) hoặc các phương thức (method) để thực thi một hành động hoặc tính toán một giá trị. ...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Sự kiện và các thủ tục sự kiện
- CÁC KHÁI NI M S 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 id 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ác l nh (statement) ho c các phương th c (method) th c thi m t hành ng ho c tính toán m t giá tr . Th t cs 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ương trì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 Sub M TS S KI N THƯ NG G P VÀ CÁCH ĐI U KHI N S KI N Cá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 y ra 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 n nà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 --> Current Thu 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 ng thu c tính b t u b ng On có nghĩa là s ki n ó ang di n ti n,Before là trư c khi 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ên là 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ưng khô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 Then DoCmd.OpenForm "form B" Else Cancel = True End If End Sub Ghi 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 t macro ho c m t phương th c c a DoCmd thì n u hoãn m t s ki n, s có m t error 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 DoCmd trong 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 um 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ùy thu 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 n cho 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 khi form 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 Control For Each ctl In Detail.Controls ' or FormHeader.Controls, FormFooter.Controls If TypeOf ctl Is Label Then x = ctl.Caption ctl.Caption = ctl.Tag ctl.Tag = x End If Next End Sub 3. 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àn hình còn ang treo ho c nh ng tính toán chưa th c hi n xong trên các control b ng phương th c Repaint. Private Sub Form_Resize() Me.Repaint End Sub 4. 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ông dá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ó tham s . VD: Bây gi b n có thi t k m t cái toolbar ch dành riêng cho form A. Như v y n u form A ư c kích ho t thì m i hi n toolbar này (ví d toolbar này có tên là FormA_Toolbar). Private Sub Form_Activate() DoCmd.ShowToolbar "FormA_Toolbar", acToolbarYes End Sub 5. S ki n Current: S ki n x y ra khi m t focus ư c di chuy n n m t record, làm cho nó tr thành record hi n hành, ho c khi form ư c "làm tươi mát" (refresh) ho c ư c gán l i source (requery). Thu c tính s ki n tương ng có tên là OnCurrent. Th t c s ki n tương ng có tên là Form_Current. Th t c này không có tham s .
- VD: B n có m t form hi n th m t s thông tin c a m t table, trong ó có 3 textbox ng v i 3 field(t m là text1, text2, text3) và m t checkbox cũng ng v i m t field Yes/No(check1). Yêu c u t ra là n u check1 b ng True thì không cho thay i n i dung trong 3 textbox. Private Sub Form_Current () text1.Locked = check1 text3.Locked = check1 text3.Locked = check1 End Sub 6. S ki n UnLoad: S ki n Unload x y ra khi: - Ngư i s d ng nh n nút Close trên c a s Form. - Ngư i s d ng g i menu File - Close. - G i m t macro Close m t c a s có thu c tính Form. - G i m t l nh DoCmd.Close v i ki u c a s là acForm. - Đóng Windows trong khi ng d ng Access ang ch y. Unload là s ki n u tiên c a chu i s ki n sau: Unload --> DeActivate --> Close Thu c tính s ki n tương ng là OnUnload. Th t c s ki n tương ng là Form_Unload. Th t c này có m t thu c tính Cancel. Như bài trư c, b n ã bi t n u Cancel = True thì có nghĩa gì r i ph i không? VD: Gi s trong Form b n có m t bi n tên là danglam ki u Boolean. N u bi n là True thì có nghĩa b n ang nh p li u và ang có thay id li u. B n mu n r ng khi óng form, nó s h i lưu thay i không, n u có thì trư c khi óng, b n cho lưu. (Code dư i ây ch là dàn ý, b n ph i tùy bi n cho phù h p v i ng d ng mà b n thi t k ). Private Sub Form_Unload (Cancel As Integer) If danglam Then If MsgBox ("Du lieu da co thay doi. Co muon luu truoc khi dong khong?",
- vbYesNo) = vbYes then DoCmd.SaveRecord Else DoCmd.Undo End If End Sub 7. S ki n DeActivate: S ki n x y ra khi b n r i focus ra kh i form (ho c report). Nó cũng x y ra sau khi form (report) ư c Unload. Thu c tính s ki n tương ng có tên OnDeactivate. Th t c s ki n tương ng có tên Form_Deactivate. Không có tham s . VD: Ti p theo ví d c a m c 4 phía trên (bài trư c), khi chuy n focus ra kh i form A, b n cho n tool box i. Private Sub Form_Deactivate() DoCmd.ShowToolbar "FormA_Toolbar", acToolbarNo End Sub 8. S ki n Close: S ki n x y ra khi form ã th c s ư c óng l i nhưng chưa r i h i màn hình. V cơ b n xem như nó ã ư c óng l i, nhưng n u b n có "lưu luy n" gì v i ngư i dùng, b n có th g i m t thông i p gì ó ây i lo i như ... xem ví d bên dư i. Tên thu c tính s ki n tương ng là OnClose. Tên th t c s ki n là Form_Close. Không có tham s . VD: G i m t thông i p "lưu luy n" Private Sub Form_Close ()
- MsgBox "See you soon." End Sub 9. S ki n BeforeInsert: S ki n này x y ra khi ngư i s d ng gõ vào ký t u tiên trong record m i, nhưng trư c khi record y th c s ư c t o. S ki n này b t u m t dãy s ki n sau ây: BeforeInsert --> BeforeUpdate --> AfterUpdate --> AfterInsert Thu c tính s ki n có tên là BeforeInsert. Th t c s ki n có tên là Form_BeforeInsert. Có m t tham s quen thu c là Cancel. VD: Gi s b n là ngư i r t c n th n. B n mu n r ng khi m t ngư i s d ng gõ m t ký t b t kỳ vào record m i, b n s lưu ý h li n, s r ng h vô tình nh n phím mà thôi. B n có th code nh nhàng như sau: Private Sub Form_BeforeInsert(Cancel As Integer) If MsgBox("Them record moi ha ban?", vbOKCancel) = vbCancel Then MsgBox "Lan sau nho can than khi su dung ban phim nghen !!!" Cancel = True End If End Sub 10. S ki n BeforeUpdate: S ki n x y ra khi có m t s thay id li u trong m t control thu c form ho c khi record ư c c p nh t (update). Đúng ra ây ang li t kê các s ki n c a Form, nhưng s ki n này cũng nh hư ng n m t control, v y có nên nói luôn ây không ta? Thôi chơi luôn há? Đ i v i form, s ki n này s x y ra khi b n d i focus t record hi n hành sang m t record khác nhưng chưa d i th t s , ho c b n ã g i l nh Save Record trong menu Records, ho c b n g i macro SaveRecord ho c b n dùng l nh DoCmd.RunCommand acCmdSaveRecord. Đ i v i control, s ki n này s x y ra khi b n d i focus t control ó sang m t
- control khác mà control hi n hành b n có thay id li u. S ki n BeforeUpdate c a form x y ra sau s ki n BeforeUpdate c a control. B n nên chú ý i u này vi c i u khi n b ng th t c s ki n cho phù h p. Thu c tính s ki n có tên là BeforeUpdate. Th t c s ki n có tên là: Form_BeforeUpdate i v i form controlname_BeforeUpdate i v i m t control C hai u có tham s quen thu c Cancel. V i form, khi Cancel = True, nó s không cho b n r i kh i record ó, tr khi b n nh n ESC h y thay i (ho c m t macro hay l nh tương ng) hay nh p li u cho chính xác v i yêu c u. Đ i v i control, khi Cancel = True, nó s không cho b n r i kh i control ó tr khi b n cũng nh n ESC h y b thay i (ho c nh p d li u phù h p). VD: Gi s b n nh p d li u i m thi 3 môn h c A, B, C cho các thí sinh. Trong ó n u kh i c a thí sinh là 1 thì môn A nhân h s 3, kh i c a thí sinh là 2 thì môn B nhân h s 3, kh i c a thí sinh là 3 thì môn C nhân h s 3. Đi m trung bình là t ng i m 3 môn sau khi ã nhân v i h s chia cho 5. Các i m ch ư ct 0 n 10. Đi m trung bình s tính ngay sau khi 3 môn ư c nh p. Đi m t ng môn s ki m sau khi nh p xong i m môn ó. Gi s các control c a b n là: mahs, hotenhs, khoi, monA, monB, monC, dtb Bây gi b n s "ch " 2 cái th t c BeforeUpdate cho form và cho các control i m như sau: Làm m t cái cho i m môn A, i m môn B và môn C tương t : Private Sub monA_BeforeUpdate (Cancel As Integer) If monA < 0 Or monA > 10 Then MsgBox "Diem mon chi tu 0 den 10 thoi." Cancel = True End If End Sub Làm cho form: Private Sub Form_BeforeUpdate (Cancel As Integer)
- dim diem as double ' Lay theo kieu chuan, dung Single cung duoc tuy ban diem = IIf(khoi = 1, monA*3, IIf(khoi = 2, monB*3, monC*3))/5 dtb=diem End Sub
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Giáo trình nghiệp vụ văn thư - Chương I NHỮNG VẤN ĐỀ CHUNG VỀ CÔNG TÁC VĂN THƯ
8 p | 1724 | 378
-
Chương 3: CÁC PHƯƠNG PHÁP BIỂU DIỄN TRI THỨC VÀ XỬ LÝ TRI THỨC
49 p | 499 | 106
-
Sự ra đời tờ tiền giấy đầu tiên của nước Việt Nam Dân Chủ Cộng Hòa Thứ
7 p | 199 | 26
-
Khái quát hệ thống pháp luật Hoa Kỳ - CHƯƠNG 5: THỦ TỤC TỐ TỤNG HÌNH SỰ
22 p | 135 | 19
-
Kinh nghiệm thu hút FDI của các nước và vận dụng vào Việt Nam - 8
10 p | 124 | 17
-
SỰ KIỆN EVENT VÀ CÁC THỦ TỤC SỰ KIỆN
8 p | 114 | 16
-
Tập tính và cảm xúc part 8
7 p | 78 | 15
-
Giáo trình Quản lý và sử dụng con dấu (Nghề: Văn thư hành chính - Cao đẳng) - Trường Cao đẳng Cơ điện Xây dựng Việt Xô
43 p | 33 | 11
-
27 Án oan trong các triều đại Trung Quốc - 8
11 p | 86 | 10
-
Tập tục cưới hỏi thời Vua Hùng
10 p | 91 | 8
-
Khái quát hệ thống pháp luật Hoa Kỳ - CHƯƠNG 4: CÁC LUẬT SƯ, NGUYÊN ĐƠN VÀ NHÓM LỢI ÍCH TRONG THỦ TỤC TỐ TỤNG
13 p | 106 | 6
-
Bảo tồn và phát huy các giá trị văn hóa qua hôn nhân của người Mường
8 p | 84 | 6
-
Tập tục sinh đẻ của người Thái ở miền Tây hai tỉnh Thanh Hóa và Nghệ An
10 p | 70 | 5
-
Thế chiến thứ nhì tại Ả Rập 2
6 p | 64 | 4
-
Những thương nhân Hà Lan đầu tiên đến Đàng Ngoài và Kẻ chợ năm 1637 (Tiếp theo và hết)
10 p | 52 | 2
-
Ebook Lịch sử Đảng bộ huyện Núi Thành (1975-2020): Phần 2
286 p | 11 | 2
-
Hội đền Đồng Bằng và tục hát văn
3 p | 2 | 1
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn