Events: S ki n tác đ ng lên đ i t ộố ượ ng đ th c thi macro Tùy thu c vào đ i t ộố ượ ng khác nhau s có nh ng ữ event khác nhau.

Một phần của tài liệu Giáo trình Hệ quản trị cơ sở dữ liệu Access (Trang 107 - 112)

event khác nhau.

− Mouse và Keyboard event

Event Ý nghĩa

Click click chu t trên đ i tộ ố ượng. DblClick Double click trên đ i tố ượng.

MouseDown Nh n phím c a chu t trên m t đ i tấ ủ ộ ộ ố ượng. MouseMove Di chuy n chu t ngang đ i tể ộ ố ượng.

MouseUp Th  phím c a chu t khi đang tr  đ n đ i tả ủ ộ ỏ ế ố ượng KeyDown Nh n phím c a bàn phímấ ủ

KeyUp Th  phímả

− Form Event

Event Ý nghĩa

Open Khi form được m , nh ng record đ u tiên ch a hi n thở ư ầ ư ể ị

Load Khi form được load vào b  nh  nh ng ch a mộ ớ ư ư ở

Resize Khi kích thướ ủc c a form thay đ iổ

Unload Khi   đóng   form   và   record   unload,   và   trước   khi   form   di  chuy n kh i màn hìnhể ỏ

Close Khi đóng form

Activate Khi form nh n focus, tr  thành c a s  activeậ ở ử ổ

GotFocus Khi form không active LostFocus Khi form m t focusấ

− Form Data Events

Current Khi di chuy n m t record khác đ n record hi n hànhể ộ ế ệ

BeforeInsert Sau khi d  li u  đ u tiên đữ ệ ầ ược nh p vào new record vàậ   trước khi record th c s  đự ự ượ ạc t o

AfterInsert After the new record được thêm vào b ngả

BeforeUpdate Trước khi d  li u thay đ i đữ ệ ổ ượ ậc c p nh t vào record.ậ

AfterUpdate Sau khi d  li u thay đ i đữ ệ ổ ượ ậc c p nh t vào record.ậ

Filter Khi filter được ch  đ nh nh ng trỉ ị ư ước khi nó được áp d ng.ụ

ApplyFilter Sau khi filter được áp d ng vào form.ụ

− Control Event

Event Ý nghĩa

BeforeUpdate Trước khi d  li u trong control thay đ i thì c p nh t vào recordset.ữ ệ ổ ậ ậ

AfterUpdate Sau khi s  thay đ i d  li u đự ổ ữ ệ ượ ậc c p nh t vào recordset c a form.ậ ủ

Change Khi n i dung trong text box thay đ i.ộ ổ

GotFocus Khi m t control nh n focusộ ậ

LostFocus Khi m t control m t focusộ ấ

Click Khi click chu tộ

DblClick Khi double click

6.3. T o Data Macro

Data macro là lo i macro đạ ượ ưc l u tr  nh  m t ph n c a m t table, macro nàyữ ư ộ ầ ủ ộ   không xu t hi n trong ph n macro c a Navigation pane.ấ ệ ầ ủ

6.3.1. Cách t o

M  b ng   ch  đ  Design view b ng cách click ph i tr n tên c a Table trongở ả ở ế ộ ằ ả ẹ ủ   Navigation Pane và ch n Design view.ọ

Click nút Create Data Macros trong nhóm l nh Field, Record & Table Event.ệ

 Xu t hi n danh sách các s  ki n (Event) c a data macro:ấ ệ ự ệ ủ

After Insert After: Sau khi m t record m i độ ớ ược thêm vào b ng.ả

After Delete: Sau khi m t record trong b ng b  xóaộ ả ị

Before Delete: Khi m t record trong b ng b  xóa.ộ ả ị

Before Change: Khi m t record trong b ng độ ả ược uppdate. Ch n m t event trong danh sách.ọ ộ

Xu t hi n c a s  thi t k  macro, ch n action cho macro theo yêu c u.ấ ệ ử ổ ế ế ọ ầ

Đóng c a s  thi t k  macro, tr  l i c a s  thi t k  b ng.ử ổ ế ế ở ạ ử ổ ế ế ả

Đóng c a s  thi t k  và l u sau đó m  b ng l i   ch  đ  datasheet view.ử ổ ế ế ư ở ả ạ ở ế ộ

Ví d: t o m t data macro đ  ngăn không cho ngạ ộ ể ười nh p li u đ  tr ng ô đ n vậ ệ ể ố ơ ị  tính

.

Khi nh p d  li u ho c ch nh s a d  li u trong b ng n u đ  tr ng ô đ n v  tính thìậ ữ ệ ặ ỉ ử ữ ệ ả ế ể ố ơ ị   xu t hi n thông báo nh  hình trên.ấ ệ ư

6.3.2. Các Action c a data macro

DeleteRecord: Nh  tên g i c a nó, DeleteRecord xóa m t record trong m t b ngư ọ ủ ộ ộ ả   (không có xác nh n c a ngậ ủ ười dùng). Rõ ràng, DeleteRecord ph i đả ượ ẩc c n th n s  d ngậ ử ụ   đ  ngăn ch n vi c xóa d  li u quý giá t   ng d ngể ặ ệ ữ ệ ừ ứ ụ

CancelRecordChange: H y b  các thay đ i đủ ỏ ổ ược th cự   hi n b i EditRecord và CreateRecord..ệ ở

ExitForEachRecord: ForEachRecord duy t qua m tệ ộ

Recordset   mà   nó   được   tr   v   t   m t   Table   ho cả ề ừ ộ ặ   Query, cho phép macro thay đ i d  li u c a recordset. Cóổ ữ ệ ủ   nhi u tình hu ng mà data macro c n ph i thoát kh i m tề ố ầ ả ỏ ộ   vòng   l p   ForEachRecord   trặ ước   khi   duy t   đ n   cu iệ ế ố  recordset.

Ví d  m t data macro tìm ki m m t giá tr  trong m tụ ộ ế ộ ị ộ  b ng, và hai giá tr  đả ị ược tìm th y, không có c n ph i ti pấ ầ ả ế   t c vòng l p thì ExitForEachRecord đụ ặ ược th c hi n theoự ệ   m t đi u ki n.ộ ề ệ

LogEvent: T t c  các  ng d ng c a Access bao g m m t b ng UsysApplicationLogấ ả ứ ụ ủ ồ ộ ả   đượ ử ục s  d ng đ  ghi l i các l i data macro và có th  để ạ ỗ ể ượ ử ục s  d ng truy c p các thông tinậ   khác. LogEvent đ  thêm m t record vào Usys Application Log b t c  lúc nào b n mu nể ộ ấ ứ ạ ố   t  m t data macro.ừ ộ

SendEmail: g i m t e­mail b ng cách s  d ng Microsoft Office Outlook.ử ộ ằ ử ụ

SetField:  c p  nh t giá  tr  c a m t field  trong  m t b ng. Nh ng  argument c aậ ậ ị ủ ộ ộ ả ữ ủ   SetField bao g m tên b ng và tên field, và giá tr  m i đ  gán cho field này.ồ ả ị ớ ể

SetLocalVar: Macro trong Access có th  s  d ng các bi n c c b  đ  thông qua cácể ử ụ ế ụ ộ ể   giá tr  t  m t ph n c a m t macro khác.ị ừ ộ ầ ủ ộ

StopMacro: đ  ch m d t và thoát kh i macro. H u h t thể ấ ứ ỏ ầ ế ường được s  d ng k tử ụ ế   h p v i m t kh i l nh IFợ ớ ộ ố ệ

StopAllMacros: K t thúc các Action th c hi n song song.ế ự ệ

RunDataMacro: đ i s  duy nh t c a nó là tên c a m t s  data macro khác, đ n gi nố ố ấ ủ ủ ộ ố ơ ả   ch  đ  g i macro và cho phép nó th c hi n các Action c a nó nh  là m t ho t đ ng đ nỉ ể ọ ự ệ ủ ư ộ ạ ộ ơ   l .ẻ

OnError: Action chính trong Access v  x  lý l i macro. OnError ch  th  cho Accessề ử ỗ ỉ ị   ph i làm gì khi l i x y ra trong quá trình th c hi n macro.ả ỗ ả ự ệ

RaiseError: thông qua m t l i chuy n đ n các l p giao di nộ ỗ ể ế ớ ệ

người dùng. Ví d  s  d ng RaiseError cho s  ki n BeforeChange đ  xác nh n dụ ử ụ ự ệ ể ậ ữ  li u trệ ước khi có s  thay đ i trong c  s  d  li u.ự ổ ơ ở ữ ệ

ClearMacroError:   Action   này   th c   thi   khi   m t   l i   đã   đự ộ ỗ ược   x   lý   b ng   actionử ằ   RaiseError.

6.3.3. Xóa data macro

Đ  xóa data macro, ta m  b ng   ch  đ  Design view.ể ở ả ở ế ộ

Click nút Rename/Delete macro.

6.4. Embeddedmacros

Khi t o m t nút l nh trên form b ng ch c năng wizard thì m t macro đạ ộ ệ ằ ứ ộ ược g n li nắ ề   v i form gi ng nh  data macro đớ ố ư ược g n li n v i b ng. Macro này không xu t hi nắ ề ớ ả ấ ệ   trong ph n macro c a Navigation pane.ầ ủ

Đ  xem ho c hi u ch nh n i dung c a Embedded macro ta m  form ho c report ể ặ ệ ỉ ộ ủ ở ặ ở  ch  đ  design view, ch n nút l nh và m  properties sheet c a nút l nh, t i event, clickế ộ ọ ệ ở ủ ệ ạ   nút  , xu t hi n c a s  thi t k  macro, sau đó th c hi n hi u ch nh.ấ ệ ử ổ ế ế ự ệ ệ ỉ

6.5. Hi u ch nh macro

6.5.1. Thay đ i action arguments.

Click ch n m t actionọ ộ

Xu t   hi n   các   text   box   cho   phép   nh pấ ệ ậ   ho c hi u ch nh argument c a action.ặ ệ ỉ ủ

L u l i k t qu  sau khi thay đ i.ư ạ ế ả ổ

6.5.2. S p x p các actions ế

Click vào b t k  ph n nào c a action, ngo i tr  bên trong các text box.ấ ỳ ầ ủ ạ ừ

Drag chu t kéo action đ n v  trí m i.ộ ế ị ớ

Ho c click vào nó, và sau đó s  d ng lên và xu ng các phímặ ử ụ ố   mũi tên trên bàn phím ho c mũi tên màu xanh trong c a s  thi tặ ử ổ ế  k .ế

6.5.3. Thêm m t action m i.

Bên dướ ủi c a m i macro luôn có m t ô Add New Action chỗ ộ ờ  đ  b n l a ch n m t action. Tuy nhiên, có m t cách khác đ  tìmể ạ ự ọ ộ ộ ể   th y nh ng action là d a vào khung Action categories, b ng cáchấ ữ ự ằ   double click vào action mà b n mu n thêm vào macro.ạ ố

6.5.4. Xóa m t action.

Ch n action c n xóaọ ầ

Click nút delete bên ph i ho c nh n phím Deleteả ặ ấ

6.6. Các hàm thường dùng trong bi u th c đi u ki n

Hàm có tác d ng cho xu t hi n h p thông báo, trên h p thông báo có các nút yes, no,ụ ấ ệ ộ ộ   ok, …đ  cho ngể ười dùng ch n l a. Giá tr  tr  v  c a hàm chính là s  ch n l a click vàoọ ự ị ả ề ủ ự ọ ự   nút l nh nào trên h p thông báo.ệ ộ

a. Các tham s  c a hàmố ủ

Message: N i dung c a chu i thông báo.ộ ủ ỗ

Type: giá tr  s  bi u di n các nút l nh và bi u tị ố ể ễ ệ ể ượng trên h p thông báo.ộ

Title: tiêu đ  c a h p thông báo.ề ủ ộ

b. Giá tr  s  c a các bi u tị ố ủ ể ượng và nút l nh trên h p thông báoệ

Giá tr  sị ố Bi u t ượng và nút l nh trên h p thông báo

16 Bi u tể ượng d u c m. (Stop)ấ ấ32 Bi u tể ượng d u h i. (Question)ấ ỏ

Một phần của tài liệu Giáo trình Hệ quản trị cơ sở dữ liệu Access (Trang 107 - 112)