Hi u ng đ c bi

t trong các bi u Access

ệ ứ

TH&ĐS

ng trình h th ng qu n lý thi ệ ố ế ị ả ằ ươ c nhi u n t t b cho công ty b ng Microsoft Access, tôi th y ấ i có ng. M c dù tôi thiên v văn b n k thu t in n mà Access l ả t ch ượ ề ậ ấ ạ ỹ Trong khi vi ế Access gây đ khuy t đi m trong lĩnh v c này, tôi v n th y thích Access. ề ấ ượ ự ặ ẫ ế ể ấ

ạ ụ ộ ấ ể ạ ứ ộ ệ ứ ậ ư ặ ể ạ ể ọ ữ ẳ ả ụ ụ ệ ứ ứ ụ ả ỉ ệ Tôi t o m t c s d li u ch a m t bi u (form) có tên là About. Bi u này t n d ng m t vài tính ộ ơ ở ữ ệ c nh ng hi u ng g n nh hi u qu . Ch ng h n nh l p màu, phông ch và ch t đ t o ra đ ẹ ệ ữ ượ x lý hình nh. Nh ng hi u ng này không ph c v m c đích ng d ng rõ ràng. Nó ch làm cho ụ ữ ử ơ bi u phong phú h n, trông chuyên nghi p h n. ơ ể

ầ ở ể ạ ầ ữ ệ ấ ộ c nh ng càng lúc càng l n ra cho t i khi ph đ y h p thông báo. K đó ỏ ượ ư ớ ế ộ ờ ử c t o ra nh x lý ượ ạ ể ọ ộ ề Lúc đ u m bi u About, thông báo xu t hi n trong h p nhãn (label box). Tho t đ u, ch quá nh không th đ c đ ủ ầ màu n n c a h p thông báo b t đ u xoay vòng. C hai hi u ng này đ ắ ầ ủ nh ng giá tr thu c tính c a nhãn t ươ ộ ị ớ ệ ứ ả ng ng v i s ki n Timer. ớ ự ệ ủ ữ ứ

ứ ẽ ể ể ấ ch ể ở ộ ướ ệ ở ế ấ ỏ ấ t ngang qua nút Not OK, nút này bi n m t và xu t hi n ả ử ụ ỉ ầ ố ấ ả ấ ấ ớ ự ệ ứ ể ơ Bi u nàycungx ch a hai nút nh n (button). Nh n OK s đóng bi u. Không th nh n nút Not OK ấ ỗ b i vì ch c n con tr chu t l khác. Mu n nh n nút này, tôi ph i s d ng thu c tính Visible (nhìn th y) trên c hai nút nh n ấ ộ ộ tu ng ng v i s ki n MouseMove (di chuy n chu t).

ể ứ ả ể ả ỏ ộ ứ ả ề ớ ầ ự ệ ả ậ ổ ở Trong bi u có hình nh tôi khi còn bè. Khi tôi chuy n con tr chu t qua b c nh thì b c nh thay đ i. Hình nh tr thành tôi hi n nay v i đ y đ kính c n và ria mép. Tôi đã th c hi n đi u này ủ ệ cũng b ng cách x lý thu c tính Visible nh trên đã nêu. ử ư ằ ộ

ự ữ ử ệ ẽ ẫ ổ ị ế ng trình About. K t qu đ t ả ạ ng t ng. Tôi đã th c hi n nh ng m u trên v i ý đ nh tô v cho c a s ch ớ c là nh vào đ c tính linh ho t c a Access và m t chút xíu t đ ạ ủ ượ ặ ộ ờ ươ ưở ượ

ơ ộ ự ấ ộ ự ệ ề đây b n đã nêu ra hai cách s d ng nh ng đ c đi m c a Access ử ụ ữ ủ ể ạ ặ ự ở ấ ể ở ấ ệ ả ặ ờ ộ ờ ố ộ ự ệ ể ỡ ộ ộ ố ệ ứ ấ Nh ng s ki n (Event) và thu c tính (Property) trong Access cung c p nhi u c h i cho s ữ sáng t o. c p đ Form: s ạ ở ộ ộ ề c p đ đi u ki n Timer (th i gian) và thu c tính Timer Interval (th i kho ng) và b n đ c đi m khi n: m t s ki n MouseMove và ba thu c tính FontSize (kích c phông), Backcolor (màu n n) ề ị và Visible (nhìn th y) đ t o m t s hi u ng thú v . ể ạ

ạ ỡ ủ ề ệ ứ ờ ặ ạ ạ ữ ữ ề ỡ ớ Hi u ng đ u tiên làm tăng kích c c a đo n văn b n trên nhãn, ho t hình hóa đo n văn và ạ ệ ứ t o ra o t ạ c hi u ng này nh đ t nh ng đo n ạ ạ mã trong m t quá trình nh ng s ki n g n li n v i thu c tính On - kích c phông ch . Quá trình này s đ ả ưở ộ c th c hi n b t c khi nào x y ra m t s ki n Timer. ả ầ ng đo n văn đang ti n v phía b n. Đ t đ ạ ượ ế ộ ự ệ ộ ự ệ ữ ấ ứ ẽ ượ ắ ả ự ệ

s ki n Timer b ng cách đ t thu c tính Timer Interval c a bi u. T m tr ạ ể ặ ả ự ệ ủ ầ ộ ị ộ ặ ớ ừ ế ố ể 0 đ n 2.147.483.674 chính ằ ằ ộ ố ờ ữ ể ữ ẫ ể t l p nó b ng cách dùng trang ế ậ ể ỗ ồ ủ ả ộ ầ ặ ỗ ồ ớ ằ ỏ ơ ộ ế ạ ằ ằ ộ ố B n có th đ c t c a thu c tính Timer Interval là m t s nguyên l n (Long Integer) t ủ là s mili giây gi a nh ng s ki n th i gian. B n có th thi ạ ự ệ Property c a m u bi u, dùng macro hay Visual Basic. Vì m i giây b ng 1.000 mili giây đ cho s ki n x y ra m i giây m t l n, hãy đ t thu c tính TimerInterval b ng 1.000. Nh r ng đ ng h ự ệ h th ng 55 mili giây nh y m t l n, vì th b n không nên gõ vào m t con s nh h n 55. N u ế ệ ố không mu n x y ra s ki n, đ t Timer Interval b ng 0. ả ự ệ ộ ầ ặ ả ằ ố

ự ệ ơ ộ ể ự ệ ộ ờ ữ ề ặ c dùng đ h tr ho t hình và các hi u ng đ c bi t nh chúng ta th o lu n ả S ki n Interval và thu c tính Timer Interval cho ta c h i đ th c hi n nh ng hành đ ng x y ra trong nh ng kho ng th i gian đ u đ n. Thu c tính Timer Interval và s ki n Timer th ộ đ ệ ứ ộ ng ườ ạ đây. Đ ho t ể ữ ự ệ ả ả ể ỗ ợ ậ ở ượ ư ệ ặ ạ

ạ ữ ạ ỡ ủ ủ ụ ạ ự ệ ủ ụ ạ i khi đ t t ữ ấ hóa đo n ch b n đ t mã trong th t c s ki n OnTimer đ gia tăng kích c c a đo n ch y ặ ể ự ệ ch d ng l ạ c kích c đích. V i đo n mã sau (trong th t c s ki n OnTimer) đo n i khi đ t đ ớ ạ ạ ượ ỉ ừ i c 11. ch s gia tăng kích c t ữ ẽ ỡ ạ ớ ỡ ỡ ớ

If [Mylabel].Fontsize<11 Then [Mylabel].Fontsize = [Mylabel].Fontsize +1

ứ ớ ặ ươ ữ ể ạ ạ ủ ậ ở ộ ẹ ạ ủ ầ ủ ở ộ ỏ ườ ộ ị ặ ạ ợ ặ ị c đ t b ng 1. B n cũng nên ng h p này, nên ch n 100 ặ ằ ợ ặ ị ạ ượ ườ ơ ứ ợ ị ố ượ ẽ ỏ ơ ế ạ ạ ạ ọ ặ Mylabel là tên c a nhãn ch a ch . Đ ch ng trình ch y đ p b n nh đ t FontSize m c nhiên c a nhãn th t nh . Trong trang thu c tính c a nhãn, b n nên đ t tr kh i đ ng th p r i ấ ồ ng h p này, giá tr kh i đ ng m c nhiên đ tăng d n lên. Trong tr đ t tr TimerInterval thích h p đ cho ho t hình m t mà. Trong tr ọ ể ế ơ mili giây. N u b n ch n tr s nh h n, ho t hình s ch y nhanh h n t c là mau h t h n.

ơ ở ữ ệ ạ ậ ỹ ứ v i đ nh kích c ch . B n đ t mã trong th t c s ki n g n li n v i thu c tính ng t ệ ứ ươ ự ớ ị ẫ ặ ề ắ ề ộ ự ệ ng h p này là thu c tính ợ ữ ạ ộ ớ ộ ườ ủ Hi u ng th hai trong c s d li u m u c a b n là l p vòng màu n n nhãn. K thu t dùng ủ ặ cũng t ủ ụ ỡ OnTimer và thêm mã vào trong thu c tính c a nhãn, trong tr BackColor.

ộ ủ ứ ể ố ươ ể ặ ứ ề ứ ộ ộ ể ủ ấ ng ng v i màu đ ượ ớ ằ ệ ả ộ ẽ ể ạ ộ ể ạ ấ ầ ạ ầ c gán cho n n c a ph n Thu c tính BackColor ch a m t bi u th c s t ề ở bên trong hay c a các ô đi u khi n. B n có th đ t thu c tính này b ng cách nh n nút Build bên ph i h p thu c tính trong trang thu c tính. Color Build s xu t hi n, b n có th ch n màu ọ s n có hay t o màu riêng cho các ô đi u khi n hay các thành ph n khác. Đ t o màu s c l p ắ ậ ẵ vòng bi n o b n ph i tr c ti p thay đ i thu c tính trong mã. ế ạ ộ ề ổ ả ự ế ả ể ộ ạ

i thích cũng khá đ n gi n: m i l n s ki n Timer x y ra, đo n mã trong th t c làm tăng ỗ ầ ả ả ạ ơ c giá tr ủ ụ ạ ượ ự ệ ủ ế ộ ị Gi ả giá tr gán cho thu c tính gán cho BackColor c a nhãn lên 1000 cho đ n khi đ t đ ị đích.

c đ t l i b ng 0, quá trình c th l p l i. B ng cách này ị ượ ặ ạ ằ ứ ế ặ ạ ằ Khi đ t t ạ ớ màu n n s xoay vòng. ẽ ề i giá tr đích, BackColor đ

ạ ệ ứ ự ử ằ ộ ể ư ạ ể ạ ẵ ể ữ ư ộ ụ B n có th t o vài hi u ng lý thú khác b ng cách ki m tra s di chuy n chu t và x lý thu c ộ tính Visible s n có trên nh ng bi u đi u khi n và nh ng báo cáo. Nh b n đã đ a ra m t ví d ể làm cho nút Not OK bi n m t r i l ữ ấ ồ ạ ề ấ ể ệ ế ạ ấ ằ ố ộ i xu t hi n đâu đó khi b n c nh n nó b ng chu t.

ề ạ ộ ề ỉ ể ộ ặ ự ệ ể ủ ụ ị ộ ượ ế ớ ị ự ệ ể ủ ng di chuy n bên d ộ ứ ả

ượ ạ ạ ả ứ ườ ạ ề c s ể c cho nh ng đi u khi n ng đ u nh n d ng đ ậ ữ ượ ề ạ ủ Đ ki m tra khi nào ch đi m chu t đi ngang qua vùng đi u khi n b n đ t mã vào trong th ể ể t c s ki n liên k t v i thu c tính đi u khi n On MouseMove. Th t c s ki n MouseMove x y ả ự ệ ụ ng x y ra. c đ nh v trong vùng biên c a đi u khi n. S ki n MouseMove r t th ra và chu t đ ể ấ ườ ả ề M t khác, cũng x y ra lúc chu t đ ng yên nh ng đ i t ẳ i chu t. Ch ng ể ướ ố ượ ộ ặ ư i ch đi m chu t đ ng yên, s ki n MouseMove h n, b n kéo m t đ i t ng (nh bi u) bên d ự ệ ộ ứ ộ ố ượ ỉ ể ạ ư ể ướ ng biên c a ng mà mi n trong đ ủ c nh n d ng b i nh ng đ i t v n x y ra. Nh ng s ki n đ ề ở ự ệ ữ ữ ẫ ố ượ ậ nó ch a ch đi m chu t. Chú ý r ng không ph i t ự t c nh ng đ i t ố ượ ằ ộ ượ ữ ả ấ ả ỉ ể ki n MouseMove. Ch ng h n s ki n MouseMove không áp d ng đ ụ ự ệ ẳ ệ v báo cáo. ề

ự ệ ng ch a Mouse. Vi c làm cho nh ng ữ ệ ng. ữ ố ượ c g i t ượ ả ứ ự ệ ở ớ ặ ố ượ ỉ ơ ủ ấ Nh ng s ki n MouseMove đ đ i t ế Mã này đ t thu c tính Visible sang tr False nh sau: i nh ng đ i t ữ ng này bi n m t ch đ n gi n đ t mã trong th t c s ki n MouseMove c a đ i t ư ặ ộ ị ố ượ ủ ụ

Me!]Button].Visible = False.

ạ ể ề ấ ộ ể B n dùng thu c tính Visible đ th hi n hay n d u m t m u bi u, báo cáo hay đi u khi n. ẩ ể ể ệ Đ t thu c tính Visible b ng True cho đ i t ẫ ng đ nhìn th y, False s d u đi. ố ượ ộ ấ ẽ ấ ể ặ ằ ộ

ư ạ ỉ ấ ơ ở ữ ệ ụ ủ ộ ằ ữ ượ ứ ấ ử ấ i kia bi n m t r i tái xu t hi n đâu đó. c nh ng nh o: ch m t nút t n t t mã trong th t c này làm cho nút khác Nh trong c s d li u m u ch ra b n có th vi ể ế ủ ụ ẫ c t o ra, m i nút n m m t phía nhìn th y. Trong ví d c a b n có hai nút Not OK gi ng nhau d ượ ạ ố ộ ỗ ạ c x lý tu ng ng v i nh ng s ki n c a nút OK. Nh ng thu c tính nhìn th y trên hai nút y đ ự ệ ớ ơ ử ấ ủ MouseMove đ m t nút là nhìn th y và nút kia không nhìn th y. Vi c x lý thu c tính nhìn th y ấ ộ ấ cũng t o ra đ ệ ồ ạ ạ ữ ể ộ ượ ệ ấ ồ ỉ ộ ữ ế ấ ả ả

ng là phím ự ệ ủ ụ ủ ộ ườ Ch ng h n, mã trong th t c s ki n MouseMove c a phím chu t 1 (thông th ạ ẳ trái) nh sau: ư

Me![button1].Visible = False

Me![button2].Visible = True

Mã trong th t c s ki n MouseMove c a phím chu t 2 nh sau: ự ệ ủ ụ ủ ư ộ

Me![button1].Visible = True

Me![button2].Visible = False

B o đ m r ng b n s đu i theo nh ng nút n h t bu i t ổ ữ ẽ ế ả ả ằ ạ ấ ổ ố i.

ố ụ ạ ộ ơ ở ữ ệ ủ ụ ế ạ ặ ả ỡ ấ ể ử ử ả ồ ộ Ví d cu i cùng trong c s d li u cho b n là cách dùng thu c tính Visible, s ki n ự ệ MouseMove và áp d ng c a chúng cho hình nh. N u b n đ t hai nh cùng c lên trên m u ẫ ả bi u, nh này ch ng khít lên nh kia, b n có th x lý t ng thu c tính nhìn th y. Cách x lý này ạ ể ả t o ra nh ng chuy n đ i hình nh khi ch đi m chu t đ t trong vùng c a chúng. ạ ừ ộ ặ ỉ ể ữ ủ ể ả ổ