Danh mục

Sự kiện (Event) và các thủ tục sự kiện ( event procedure)

Số trang: 6      Loại file: doc      Dung lượng: 45.50 KB      Lượt xem: 8      Lượt tải: 0    
Hoai.2512

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

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.
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 ( event procedure) CÁCKHÁINIỆMSựkiệnlàgì?Sựkiện(event)làmộthànhđộngxácđịnhxảyratrênhoặcvớimộtđốitượngnàođó.MSAccesscóthểđáplạinhiềusựkiện:nhấnchuột,thayđổidữliệu,mởhoặcđóngform,...Sựkiệnthườnglàkếtquảtạorabởimộthànhđộngcủangườisửdụng.Thủtụclàgì?Thủtục(procedure)làmộtđơnvịcodecủaVB.Mộtthủtụcbaogồmmộtdãycáclệnh(statement)hoặccácphươngthức(method)đểthựcthimộthànhđộnghoặctínhtoánmộtgiátrị.Thủtụcsựkiệnlàgì?Thủtụcsựkiện(eventprocedure)làmộtthủtụctựđộngthựcthiđểđáplạimộtsựkiệnđượckhởixướngtừmộthànhđộngcủangườidùnghoặctừcodecủachươ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àokhi form được mở ra:Private Sub Form_Load()MsgBox Xin chào các bạn.End SubMỘTSỐSỰKIỆNTHƯỜNGGẶPVÀCÁCHĐIỀUKHIỂNSỰKIỆNCácsựkiệnxảyravớiđốitượngForm:1.SựkiệnOpen:Sựkiệnxảyrakhiformđượcmở,nhưngtrướckhirecordđầutiênđượchiểnthị.(Ghichú:ởđốitượngReportcũngcósựkiệnOpen,trongreportsựkệnOpenxảyratrướckhi reportđượcpreviewhoặcđượcin)Từkhigọiformchođếnkhiformxuấthiệnlầnđầutrênmànhình,mộtloạtcácsựkiệnxảyra,trongđósựkiệnOpenlàsựkiệnđượcxảyrađầutiên.Cácsựkiệnnàyvàthờiđiểmxảyracủanóđượcthểhiệnbằngchuỗisau:Open>Load>Resize>Activate>CurrentThuộctínhgắnvớisựkiệnOpencótênlàOnOpen.(Cácbạnlưuý:vớinhữngthuộctínhbắtđầu bằngOncónghĩalàsựkiệnđóđangdiễntiến,Beforelàtrướckhisựkiệnxảyra,Afterlàsaukhi sựkiệnxảyra).ThủtụcsựkiệngắnvớisựkiệnnàylàForm_Open.SựkiệncómộtthamsốcótênlàCancelkiểuInteger(thựcchấtnóchỉnhậnhaigiátrịTruevàFalse).Thamsốnàycácbạncóthểđịnhlạigiátrịchonó.NếuđịnhlàTrue,sựkiệnsẽbịhoãn,nghĩalàsựkiệnsẽkhônghoàntất,nhưngkhôngxảyralỗi.MặcnhiênlàFalse.VD:BạnmuốnrằngkhiformAmởrathìformBsẽmởranếungườisửdụngđồngý,bạncóthểcodechothủtụcsựkiệnnhư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ườnghợp bạn sử dụng một macro hoặc một phương thức của DoCmd thì nếu hoãnmột sự kiện, sẽ có một error trả về. Để tránh xuất hiện lỗi thì nế dùngmacro, bạn có thể đặt trước macro đó một macro SetWarnings và gán chothuộc tính WarningOn là No, dùng DoCmd trong code thì trước đó bạn đặtcâu On Error Resume Next.2.SựkiệnLoad:SựkiệnLoadxảyrabởitácđộngcủangườidùngnhư:Bắtđầumộtứngdụng.MởmộtformbằngcáchnhắpvàoOpentrêncửasổDatabase.ThựcthimộthànhđộngOpenFormtrongmacro.GọiformbằngDoCmd.OpenFormtrongthủtục.ThuộctínhsựkiệntươngứngcótênlàOnLoad.ThủtụcsựkiệntươngứngcótênlàForm_Load,khôngcóthamsố.Khiđiềukhiểnsựkiệnnày,bạncóthểthựchiệnnhữngcôngviệcsau:Thiếtlậpcácgiátrịmặcđịnhchocáccontrolhoặcthểhiệncácgiátrịtínhtoántùythuộcvàodữliệucótrênform.VD:Trongpublicmodulebạncómộtbiếnlanguage.NếubiếnnàylàVthìbạnchohiểnthịcáccaptioncủacácLabellàtiếngViệt,EthìhiểnthịlàtiếngAnh.Biếnnàysẽtùythuộcvàoviệcngườitachọntrongmộtthủtụcnàođótrướckhiformbạnđượcgọivào.Trướctiên,khithiếtkếform,ởcáclabel,bạnđặtcáctừínhlịttươngứngởpropertyTagcủanó.SauđóbạnthiếtkếthủtụcForm_Loadnhư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ệnResize:Sựkiệnxảyrakhiformđượcgọivàbấtcứkhinàokíchthướccủaformthayđổi.ThuộctínhsựkiệntươngứngcótênlàOnResize.ThủtụcsựkiệntươngứngcótênlàForm_Resize.Thủtụcnàykhôngcóthamsố.Khiđiềukhiểnsựkiệnnày,bạncóthể:Dichuyểnhoặcđịnhlạikíchthướccủamộtcontrol.Tínhtoánlạicácbiến.Resetlạicácthuộctínhcóliênquanđếnkíchthướccủaform.VD:KhicósựthayđổikíchthướccủaformsẽchohoàntấtnhữngcậpnhậtmànhìnhcònđangtreohoặcnhữngtínhtoánchưathựchiệnxongtrêncáccontrolbằngphươngthứcRepaint.Private Sub Form_Resize()Me.RepaintEnd Sub4.SựkiệnActivate:Sựkiệnxảyrakhimộtform(cũngđúngvớireport)nhậnmộtfocus(cáinàykhôngdámdịchra tiếngviệt,bởidịchrathìhổngaihiểu,cònđểnguyênthìaicũnghiểu!!! )vàtrởthànhcửasổhoạtđộng.ThuộctínhsựkiệntươngứngcótênlàOnActivate.Thủtụcsựkiệntươngứngcó ...

Tài liệu được xem nhiều: