1. Trang chủ
  2. » Cao đẳng - Đại học

CHƯƠNG IX: NGÔN NGỮ VISUAL BASIC

10 775 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 118,7 KB

Nội dung

Microsoft Access 2000 CH Ch NG IX: NGÔN NG ng 9: Ng n ng Visual Basic VISUAL BASIC Ch ng gi i thi u n b n nh ng khái ni m c b n c a ngôn ng l p trình Visual Basic, cách s d ng ngôn ng Visual Basic u n bi n c bi u m u/báo cáo cách t o m t hàm riêng 9.1 Visual Basic (VB) ? VISUAL BASIC ngôn ng l p trình cho MISCROSOFT ACCESS B n s ng y nh cách s d ng t p l nh (macro) có th liên k t i t ng ng d ng c a b n l i v i nh m t o thành m t h th ng ch ng trình m ch l c m khác bi t visual basic cung c p nhi u s c m nh m m d o h n t p nh T ng t nh t p l nh, visual basic c g n v i i t ng CSDL Trong MICROSOFT ACCESS, b n có th th c hi n nhi u công vi c khác ng t p l nh ho c VB Do ó v n t ch n công c s d ng? S ch n l a tùy thu c vào công vi c c a s mu n làm Visual basic m t ngôn ng th o ch ng hoàn thi n theo ki u u n i s ki n (event driven programming language) nh ng l i r t gi ng ngôn ng th o ch ng có c u trúc thông th ng N u b n ã t ng vi t ch ng trình b ng ngôn ng Pascal ho c C b n s th y l i VB t t c nh ng c u trúc u n mà n ã t ng s d ng ch ng h n nh : C u trúc l p (Loops) C u trúc r nhánh IF … THEN … ELSE C u trúc ch n l a SELECT CASE Hàm (function) th t c (procedure) 9.2 u m c a VB cho ng d ng c a b n d dàng b o trì h n: b i t p l nh m t i ng hoàn toàn tách riêng l v i bi u m u báo cáo s d ng nó, m t ng d ng ch a m t s l n t p l nh bi n c c a bi u m u báo cáo s gây cho b n khó kh n b o trì Ng c l i s d ng VB lý bi n c ó, n u ph i di chuy n bi u m u ho c báo cáo sang m t CSDL khác n l nh c ng s mang i theo T o hàm c a riêng mình: S d ng Visual Basic ta c ng có th t o hàm riêng c a dùng th c hi n phép tính v t kh n ng c a t bi u th c ho c thay th m t bi u th c ph c t p mà b n vi t bên ng d ng c a Ví d hàm chuy n i c s chuy n thành ch ,… Che i thông báo l i: Khi có m t s c ý mu n xãy ng ng c a b n ang v n hành Microsoft Access hi n th thông báo l i, thông báo s làm cho ng i s d ng khó hi u c bi t h ch a quen s d ng Microsoft Access S d ng Visual basic, b n có th phát hi n l i y s hi n th thông báo l i c a riêng tu thu c vào ng d ng T o ho c s a i i t ng: Nh ã bi t ph n thi t k table, query, form, report, … mu n thay i c tính, b n ph i m i t ng ch thi t k , VB cho phép ta thay i ch ng trình ang ch y b ng cách vi t l nh Th c hi n hành ng nâng c p h th ng: Dùng l nh RunApp th c hi n l nh c a ng d ng khác Truy c p vào b ng ghi (record): Th c hi n thao tác Record nh thêm, s a, xoá record Trung t m Tin h c- HAG Trang 104 Microsoft Access 2000 Ch ng 9: Ng n ng Visual Basic 9.3 Các thành ph n ch y u c a Acces basic Access basic ngôn ng th o ch ng hoàn ch nh, h tr ph ng pháp th o ch ng có c u trúc mà b n ã th y ngôn ng Microsoft Visual Basic nh ng th o ch ng có c u trúc khác Nh ng thành ph n ch y u c a Access basic: Bi n (variables) Th t c hàm (function procedure) Các c u trúc ch n l a Các c u trúc l p c a Access basic u n s thi hành ch ng trình 9.3.1 Bi n Bi n dùng l u tr nh ng giá tr t m th i th c hi n phép tính ch ng trình, có th b n mu n tính nhi u giá tr khác nhau, so sánh chúng r i th c hi n Khai báo bi n: Dim tên_bi n [As ki u_d _li u] Ví d : Dim nguyen, n As Integer Ph m vi th i gian s ng c a bi n Ph m vi s d ng c a bi n: tùy thu c vào vi c b n khai báo bi n âu mà ph m vi s d ng bi n ó s theo m t ba tình tr ng sau ây: - Bi n c c b (local variable): ch c nh n di n ph m vi th t c khai báo bi n ó Ví d : Các bi n P1, P2, P3 - Bi n thu c n th (Module variable): c dùng chung cho t t c nh ng th t c thu c n th ó Nh ng th t c thu c n th khác không th tham chi u n bi n c Ví d : Các bi n Md1, Md2 - Bi n toàn c c (Global variable): Là bi n có ph m vi s d ng r ng nh t Giá tr a m t bi n toàn c c có th tham chi u t b t k m t th t c thu c h th ng ng d ng Ví d : Các bi n A, B Module1 Procedure có th truy xu t bi n A, B, Md1 P1 Global A Dim Md1 Không truy xu t Md2, P3 P2 Procedure Dim P1 c bi n Module2 Global B Dim Md2 Procedure Dim P3 Procedure có th truy xu t bi n A, B, Md2 P3 Không truy xu t c bi n Md1, P1 P2 Procedure Dim P2 Procedure có th truy xu t bi n A, B, Md1 P2 Không truy xu t c bi n Md2, P1 P3 Trung t m Tin h c- HAG Trang 105 Microsoft Access 2000 Ch ng 9: Ng n ng Visual Basic 9.3.2 T o th t c bi n c Cách vi t l nh bên th t c bi n c : Khi vi t l nh cho th t c bi n c Access m ch ng trình Basic cho vi t l nh Th t c n l nh mà b n ã vi t b ng ngôn ng Visual Basic Bên t th t c s ch a ng m t dãy câu l nh c a Visual Basic th c hi n m t hành ng ho c tính toán m t giá tr ó M t th t c bi n c m t th t c s c ch y áp l i cho m t bi n c Ch ng h n ta có nút l nh form ng i s d ng click vào nút l nh form s óng form, ta nói click mouse bi n c (event) hay s ki n Ta vi t l nh óng Form t c ta t o th t c x lý bi n c Th t c bi n c m t ph n công vi c Form ho c Report Do ó b c u tiên ph i t o form ô u n form 9.3.3 Th t c n th Visual basic Th t c hàm (function procedure): T ng t v i nh ngh a c a hàm ngôn ng th o ch ng khác, th t c hàm c a Visual basic ch hoàn tr m t giá tr nh t t i m tham chi u n hàm ó Cú pháp c a th t c: [Public|Private] [Static] Sub Tên_Th _t c([tham s ]) Các l nh th c hi n End Sub Trong ó: Tham s : Các tham s g i vào cho th t c dùng tính toán bên L nh th c hi n: Dãy câu l nh Visual Basic mà ta mu n thi hành th c ho c hàm c g i Giá tr tr v : Giá tr d li u tr v sau m t dãy câu l nh bên c a hàm ã c tính toán xong Khai báo tham s th t c/hàm: [ByVal I ByRef] As [=giá tr m c nh] Cú pháp g i m t th t c: Tên_Th _t c(Danh sách tham s ) ho c Call Tên_Th _t c(Danh sách tham s ) Cú pháp khai báo hàm [Public|Private] [Static] Function Tên_hàm([tham s ]) As Tên_hàm= giá tr tr v End Function Sau th c hi n câu l nh hàm cho ta k t qu giá tr tr v Ví d : Hàm chuy n ký t s thành chu i c nh ngh a nh sau: Function SoThanhChuoi(i As Integer) As String Dim str As String Select Case i Case str = "Mot" Case Trung t m Tin h c- HAG Trang 106 Microsoft Access 2000 Ch ng 9: Ng n ng Visual Basic str = "Hai" Case str = "Ba" Case str = "Bon" Case str = "Nam" Case str = "Sau" Case str = "Bay" Case str = "Tam" Case str = "Chin" End Select sothanhchui = str End Function S d ng tham s bi n i Khi g i n hàm ph i truy n y tham s cho hàm n u không h th ng s báo l i Tuy nhiên Visual Basic cung c p cho cách s ng tham s thay i Tham s có th b qua Dùng t khóa Optional tr c m i tham s n u ta mu n cho tham s ó có th qua Khi g i hàm ó có khai báo Optional ta có th truy n ho c không truy n tham s N u không truy n hàm s l y giá tr nh s n nh ngh a hàm i v i tham s có th b qua l ng tham s tùy ý s d ng s l ng tham s tùy ý có ki u Variant (ki u bi n) ph i d ng t khóa ParamArray M c ích s d ng cách ch a xác nh c s g i vào tham s cho th t c ch y M ng (Array) Dùng m t m ng ch n m t dãy bi n tên s d ng ch s ch m t ph n t c a m ng T t c ph n t m t m ng ph i có t ki u d li u D nhiên mãng có ki u d li u thay i ph n t m t ng có th ch a nhi u lo i d li u khác Khai báo m ng có kích th c c nh: - Dim mangnguyen(10) As integer - Dim mangsothuc(15) As Double Ch s u tiên c a m ng Nh ng ta có th ch nh ch s u tiên - Dim mangnguyen(10) As integer - Dim mangsothuc(15) As Double Khai báo m ng nhi u chi u: - Static mangmatran(9,9) As Double - Ho c Static mangmatran(0 to 9,0 to 9) As Double Tham chi u ph n t m ng: ch nh m t ph n t ó ng ta s d ng ch s c a m ng Trung t m Tin h c- HAG Trang 107 Microsoft Access 2000 Ch ng 9: Ng n ng Visual Basic Ví d : Gán giá tr cho t ng ph n t c a m ng nguyên 10 Dim nguyen(1 to 5) As Integer Dim I As Integer For I=1 to nguyen(I) = 10 Next I 9.4 Các c u trúc u n c a ngôn ng Basic 9.4.1 C u trúc quy t nh (Decision structures) C u trúc IF … THEN: B n s d ng c u trúc If … Then th c hi n m t hay nhi u l nh có n có th dùng m t hai ph ng pháp sau di n t c u trúc này: - L nh m t dòng: IF u_ki n THEN th c_hi n_l nh Ví d : If 6>=5 then Msgbox“sáu l n h n ho c b ng n m” - L nh nhi u dòng: IF u_ki n THEN th c_hi n_l nh_1 th c_hi n_l nh_2 … ENDIF Ví d : IF 6>=5 THEN Msgbox “sáu l n h n ho c b ng n m” ENDIF M c u_ki n c u trúc IF m t bi u th c mà giá tr là: - Không ( u ki n sai-False) ó l nh không th c hi n - Khác không ( u ki n úng-True) ó l nh c th c hi n C u trúc IF … THEN … ELSE Cú pháp: IF u_ki n THEN [statements] [ELSEIF condition-n Then [elseifstatements] [ELSE [elsestatements]] END IF C u trúc SELECT CASE Cú pháp: SELECT CASE bi u_th c_ki m_ nh [CASE danh_sách_giá_tr _1: [nhóm_l nh_1]] [CASE danh_sách_giá_tr _2: [nhóm_l nh_2]] … [CASE ELSE [nhóm_l nh_n]] Trung t m Tin h c- HAG u ki n Trang 108 Microsoft Access 2000 Ch ng 9: Ng n ng Visual Basic i danh_sách_giá_tr m t danh sách g m m t hay nhi u giá tr kh h u c a bi u th c ki m nh c phân cách b i d u ch m ph y ”;” tr ng p m t dãy giá tr liên ti p, b n có th dùng t khoá TO Ví d : CASE TO i nhóm_l nh có th ch a m t hay nhi u l nh (ho c không có) mà Access basic ph i thi hành bi u th c ki m nh có giá tr n m danh sách giá tr ng ng Trong tr ng h p có nhi u câu CASE tho u ki n ki m nh ch có nhóm l nh ng v i câu CASE u tiên th a u ki n ki m nh c thi hành mà Trong tr ng h p không m t câu CASE tho u_ki n_ki m_ nh access basic s thi hành nhóm l nh qui nh câu CASE ELSE 9.4.2 C u trúc l p p l i m t nhóm l nh m t u ki n úng (While) ho c cho u ki n sai (Until) Do [{While | Until} u_ki n_ki m_ nh] [Nhóm l nh] [Exit Do] [Nhóm l nh] Loop Ho c: Do [Nhóm l nh] [Exit Do] [Nhóm l nh] Loop [{While | Until} u_ki n_ki m_ nh\ C u trúc For … Next Cú pháp: FOR bi n=giá_tr u TO giá_tr _cu i [STEP gia_s ] Nhóm l nh NEXT n t Gia s có th s d ng ho c s âm Ví d : Tính t ng s nguyên t n 10: Sub tong10() Dim tong, I As Integer Tong=0 For I=1 to 10 Tong = tong + i Next Msgbox ”T ng 10 s nguyên là: ”&tong End sub Ho c: Sub tong10() Dim tong, I As Integer Tong=0 For I=10 to step -1 Tong = tong + i Next Msgbox ”T ng 10 s nguyên là: ”&tong End sub Trung t m Tin h c- HAG Trang 109 Microsoft Access 2000 9.4.3 Ch u n s thi hành ch ng 9: Ng n ng Visual Basic ng trình C u trúc u n l ng nhau: B n có th vi t m t c u trúc u n l ng u trúc u n khác Thoát kh i c u trúc u n: B n có th thoát kh i m t vòng l p ho c thoát kh i m t th t c Sub, Function b ng cách dùng l nh Exit Ví d : - Thoát kh i vòng l p ForExit For - Thoát kh i m t th t c sub ho c function: Exit Sub 9.4.4 S d ng hàm Khi ta ã xây d ng xong hoàn ch nh m t hàm ta có th g i s d ng c i v trí sau: Trong th t c ho c hàm khác M t bi u th c nh ngh a tính toán m t truy v n, m t u n Form (bi u m u) ho c Report Làm u ki n cho truy v n ho c t p l nh 9.5 Bi n bi u th cho CSDL (Database variables): t c hàm mà b n s d ng vi c m b ng d ki n (table), b ng truy n (query) Access Basic u òi h i qui nh m t i t ng c a CSDL B n khai báo bi n i t ng thu c ki u Database theo m t cách gi ng nh khai báo t c nh ng i t ng khác nh ng tr c khai báo m t bi n CSDL b n ph i khai báo c vùng làm vi c dành cho CSDL ó Ví d : bi n tham chi u n CSDL ang làm vi c hi n hành có th nh ngh a nh sau: Dim Ws as WorkSpace ‘bi n i t ng WorkSpace Dim DB as Database ‘bi n i t ng Database Set ws = DBEngine.Workspaces(0) ‘vùng làm vi c hi n hành Set DB = Ws.Databases(0) ‘CSDL hi n hành Ho c n gi n h n: Dim DB As Database Set DB= DBEngine.Workspaces(0).Databases(0) ‘CSDL hi n hành Ho c: Dim DB as Database Set DB=CurrentDB() 9.6 it ng bi n bi u th it ng: Nh ta ã bi t ph n c b n thao tác t o, s a, xóa i t ng table, query, form, report ch b ng thao tác click mouse l thu c vào cách x trí c a ng i thao tác Trong ph n bàn v cách vi t l nh tùy theo tình hu ng mà ch ng trình s x lý Ch nh i t ng thu c tính ph ng th c: Các i t ng access c phân lo i thành t p h p, t p h p c nhóm l i theo t ng i t ng m t lo i T p h p form m t nhóm form ang m c s d li u M i m t form l i có t p h p u n u n có form M i m t u n form l i m t i t ng, ta có th ch n b t k m t i t ng xuyên su t qua t p h p mà i t ng ó thu c vào Trung t m Tin h c- HAG Trang 110 Microsoft Access 2000 Ch ng 9: Ng n ng Visual Basic Ví d : ch nh n m t form t p h p form Visual basic a cách ch nh n m t i t ng: Form! ho c Form(“”) ho c Form(0) Trong ó cách dùng ch nh form theo th t mà cm :0 ch form ã m u tiên, ch nh form m th hai,… Cách tham chi u n i t ng c a CSDL: it ng tham chi u Qui nh tham chi u Form Forms![tên_form] Thu c tính c a Form Forms![tên_ form].[thu c_tính] u n Tính ch t ô u n thu c Form Forms![tên_ form].[Tên_ u_khi n] Forms![tên_ form].[Tên_ u_khi n].[thu c_tính] Gán giá tr cho bi n i t ng: Dùng l nh SET liên k t i t i t ng ã có c a CSDL 9.7 Bi n bi u th i t ng m t t p h p m u tin (Recordset) 9.7.1 Phân lo i: Có lo i recordset: Ki u it ng S m u tin c a it ng ki n c a it Table Có th thay i Có th thay i Dynaset Có th thay i Có th thay i không thay i SnapShot nh/ không thay i ng v i m t ng Bi n Recordset thu c lo i Table: bi n lo i h tr h u h t thao tác thêm (add), s a (update), xoá (delete) cho bi t tình tr ng m i nh t c a b ng d li u (table) Ch th c hi n CSDL hi n hành Cách m : SET bi n=CSDL.OpenRecordset(tên Table, DB_OPEN_TABLE) Bi n Recordset thu c lo i Dynaset: bi n lo i linh ho t h n lo i table Cách m : SET bi n=CSDL.OpenRecordset(tên Table, DB_OPEN_DYNASET) Bi n Recordset thu c lo i Snapshot: Cách m : SET bi n=CSDL.OpenRecordset(tên Table, DB_OPEN_SNAPSHOT) 9.7.2 X lý d ki n v i bi n Recordset Di chuy n t Record n record khác Ph ng th c Ý ngh a MoveFirst Di chuy n v record MoveNext Di chuy n v record k ti p N u thu c tính EOF True MoveNext c th c hi n s xãy l i MovePrevious Di chuy n v record tr c ó N u thu c tính BOF True MovePrevious c th c hi n s xãy l i MoveLast u tiên Di chuy n v record cu i u trúc c a m t t p h p m u tin (recordset): BOF RECORD Trung t m Tin h c- HAG Trang 111 Microsoft Access 2000 Ch ng 9: Ng n ng Visual Basic RECORD RECORD … … RECORD n EOF t bi n Recordset (lo i Table, Dynaset, ho c Snapshot) th hi n hành c a nó, ngh a ch n record hi n hành m nh ng m u tin c a bi n Recordset: RecordCount Tìm ki m m t m u tin c bi t - Dùng ph ng th c Find: Ph ng th c ng có m t v trí Ý ngh a FindFirst Tìm n Record tiêu chu n ã qui u tiên nhóm nh ng record tho nh FindNext Tìm n Record k ti p record hi n hành nhóm nh ng record tho tiêu chu n ã qui nh FindPrevious Tìm n Record tr c record hi n hành nhóm nh ng record tho tiêu chu n ã qui nh FindLast Tìm n Record cu i nhóm nh ng record tho tiêu chu n ã qui nh - Dùng ph ng th c Seek: Tìm theo tiêu chu n so sánh Các phép so sánh m: =, >=, >,

Ngày đăng: 22/12/2016, 13:33

TỪ KHÓA LIÊN QUAN

w