Bài giảng Access - Chương 6: Lập trình VBA Căn bản

Thuật toán Đinh nghĩa 2 chuỗi chuoix chứa các nguyên âm TV có dấu được sắp xếp theo quy định TV Chuỗi chuoiy chứa các ký tự mã hóa tương ứng từng ký tự ở chuoix - Lấy ký tự thứ nhất trong chuỗi cần mã hóa B1: Xác định ví trí của ký tự trong chuoix B2: Nếu ký tự đó không có trong chuỗi x thì lấy ký tự tiếp theo trong chuoi, quay lại b1 Nếu ký tự có trong chuỗix thì lấy ký tự ở vị trí tương ứng trong chuỗiy, đưa ký tự đó vào kết quả. Quá trình dừng khi lấy hết ký tự trong chuỗi Lưu ý: Chuoix và chuoiy phải đảm bảo chính xác từng vị trí ký tự trong chuôix tương ứng với chuôiy.

ppt31 trang | Chia sẻ: huongthu9 | Lượt xem: 327 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Access - Chương 6: Lập trình VBA Căn bản, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
CHƯƠNG 6 LẬP TRÌNH VBA CĂN BẢNGiới thiệu chungNgôn ngữ lập trình đi kèm với ACCESS là VBA – Viasual Basic For Applycation giúp người dùng tạo ra các chương trình ứng dụng mềm dẽo hơn theo ý muốn của mình.Cửa sổ viết lệnh: là nơi soạn thảo lệnh VBA, kích phải chuột trên form (Report) chọn Builder Code: chọn đối tượng, chọn sự kiện tương ứng. C2: Chọn mục Module, NewDạng lệnh hướng đối tượng . = Ví dụ:Label1.Caption=“Access”Text1.value=4Label1.Fontname=“vni-times”Label1.backcolor=2551. Các thành phần cơ bản của ngôn ngữ1. Kiểu dữ liệu của biến nhớBoolean logic, 2 bytes, Yes/NoByte số nguyên dương 1 byte (0 ->255)Integer số nguyên 2 bytes (-32768 ->32767)Long số nguyên 4 bytes Single số thực 4 bytesDouble số thực 8 bytesCurrency tiền tệ, 8 bytesString kiểu xâu ký tự, 255 ký tự, TextVariant kiểu dữ liệu không tường minh2. Khai báo biến:Dim i, j As Integer Khai báo biến i, j kiểu IntegerDim i As Integer, st As String*15 Dim i As Variant hoặc Dim iDim Hoten(45) As String * 30 Khai báo mảng kiểu String*30 gồm 46 phần tửDim A(3, 4) As Integer Khai báo biến mảng 2 chiều A(i , j) trong đó: i = 0..3 và j = 0..4Dim A(1 To 5, 4 To 9, 3 To 5) As DoubleDim MyArray()3. Các cấu trúc lệnh VBAIf Then[ Else ]End IfSelect Case Case Case Case [Case Else ]End SelectB thöùc=gt1Thuû tuïc 1endcaseTB thöùc=gt2 B thöùc=gtnThuû tuïc 2Thuû tuïc nThuû tuïc n+1TTFFFText2:ControlSource: DTBValue :0Vieá leänh KT ñieàu kieän Label4:Caption, FontName, FonSizeCommand 1Form: CaptionVí dụ:Tạo Form xếp loại học tập dựa vào DTB của học sinhText1dtb = Text2.ValueSelect Case dtbCase Is >= 8xl = "Gioi"Case Is >= 7xl = "Khá"Case Is >= 5xl = "Trung binh"Case Is To [Step ][Exit For]NextWhile [Exit while]wendÑieàu kieännhoùm leänhTWendFVí dụ 2 Tạo Form nhập vào họ tên. Tách tên, họ Tách họHoten = Text0.Valuen = Len(Hoten)For i = 1 To nkytu = Mid(Hoten, i, 1)If kytu = " " ThenExit ForEnd IfNextHo= Left(Hoten, i - 1)Text4.ValueTách tênHoten = Text0.Valuen = Len(Hoten)For i = 1 To nkytu = Mid(Hoten, i, 1)If kytu = " " Thenj = iEnd IfNextTen=Mid(Hoten, j + 1)Text2.Value=ten4. Chương trình con Các chương trình con được tổ chức thành một đối tượng nào đó gọi là Module Cách tạo module: Chọn mục Module \ chọn New: màn hình xuất hiện cửa sổ viết lệnh VBA của module đó.4. 1. Chương trình con dạng hàm[Public] Function ([]) As End FunctionCác ví dụ thông dụngVí dụ 1: Viết CT đăng nhập, kiểm tra mật khẩu trước khi khởi động menu như sau:B1: Tạo Menu B2: Tạo một Module và xây dựng một hàm MATKHAU với nội dung sau:Function MATKHAU()Dim MK As StringMK = InputBox$("nhap mat khau")If MK "Hello" ThenDoCmd.QuitEnd IfEnd FunctionB3: Xây dựng macro Autoexec như sau:ActionArgumentRunCodeFunction name: KT_MATKHAUOpenFormName Form: MenuchinhChú ý:Form menuchinh đã tạo từ trước.Macro có tên Autoexec sẽ tự đông thi hành khi mở AccessViết hàm tách tênFunction tachten(hoten As String) As Stringn = Len(hoten)For i = 1 To nkytu = Mid(hoten, i, 1)If kytu = " " Thenj = iEnd IfNexttachten=mid(hoten,j+1)EndfunctionFunction baso(nhom As Integer) As StringDim tram, chuc, donvi As SingleDim chuso(9) As Stringchuso(1) = "một"chuso(2) = " hai"chuso(3) = " ba"chuso(4) = " bốn"chuso(5) = " năm"chuso(6) = " sáu"chuso(7) = " bảy"chuso(8) = " tám"chuso(9) = " chín"tram = Val(Left(STR(nhom), 1))chuc = Val(Mid(STR(nhom), 2, 1))dv = Val(Right(STR(nhom), 1))Ví dụ 4: Viết hàm đọc số có ba chữ số sang chữbaso = ""If tram 0 Then baso = baso + chuso(tram) + " traêm"End If“Doc hang chuc If tram 0 And chuc = 0 And dv 0 Then baso = baso + " leû" Else If chuc = 1 Then baso = baso + " möôøi" Else If chuc 0 And chuc 1 Then baso = baso + chuso(chuc) + " möôi" End If End If End If If dv = 1 And chuc > 1 Then baso = baso + " mốt" Else If dv = 5 And chuc >= 1 Then baso = baso + " lăm" Else If dv >= 1 Then baso = baso + chuso(dv) End If End IfEnd IfEnd FunctionPublic Function tienchu(sotien As Long) As String Dim chuoitien, nhom As Stringchuoitien = Right(Space(11) + Str(sotien), 12)Dim donvi(4) As String donvi(1) = "Tỉ" donvi(2) = "Triệu" donvi(3) = "Ngàn" donvi(4) = "Đồng" For i = 1 To 4 nhom = Mid(chuoitien, i * 3 - 2, 3) If nhom Space(3) And nhom "000" Then tienchu = tienchu + baso(nhom) + donvi(i) + Space(1) Else If i = 4 Then tienchu = tienchu + " đồng" End If End IfNextEnd FunctionVí dụ: Tạo Form nhập vào một số tiền, đọc số đó ra chữ tương ứng.Viết lệnh: nút Đọc tiền chữLabel3.Caption = tienchu(x)Ví dụ : Tạo phiếu lương cho mỗi cán bộ cuối phiếu đọc thực lĩnh ra chữ tương ứng.Giải thíchMã hoá mỗi ký tự trong các bảng mã VNI, TCVN3 và UNICODE là khác nhau nên sắp xếp khác nhau Muốn đúng quy cách tiếng việt thì bạn phải mã hoá các dấu tiếng việt. Ví dụ: â ab; a ->aa khi sắp xếp aa < ab hay a < âChú ý: trong bảng mã VNI chữ â cĩ độ dài là 2 TCVN3 chữ â cĩ độ dài là 1 Public Function mahoaTCVN3(chuoi1 As String) As StringDim chuoix, chuoiy As StringDim dodaichuoi, vitri As Bytechuoix = "a ;à ; ả ;ã ;á ;ạ ;ă ;ẳ ;ẵ ;ắ ;ặ ;â ;ầ ;ẩ ;ẫ ;ấ ;ậ ;e ;è ;ẻ ;ẽ ;é ;ẹ ;ê ;ề ;ể ;ễ ;ế ;ệ ;i ;ì ;ỉ ;ĩ ;í ;ị ;o ;ò ;ỏ ;õ ;ó ;ọ ;ồ ;ổ ;ỗ ;ố ;ộ ;ờ ;ở ;ỡ ;ớ ;ợ ;u ;ù ;ủ ;ũ ;ú ;ụ ;ừ ;ử ;ữ ;ứ ;ự ;y ;ỳ ;ỷ ;ỹ ;ý ;ỵ ;D ;Đ "chuoiy="aa;ab;ac;ad;ae;af;ag;ah;ai;aj;ak;al;am;an;ao;ap;ea;eb;ec;ed;ee;ef;eg;eh;ei;ej;ek;el;ia;ib;ic;id;ie;if;oa;ob;oc;od;oe;of;og;oh;oi;oj;ok;ol;om;on;oo;op;ua;ub;uc;ud;ue;uf;ug;uh;ui;uj;uk;ya;yb;yc;yd;ye;yf;Da;Db"mahoaVNI = Space(0)Thuật toánĐinh nghĩa 2 chuỗi chuoix chứa các nguyên âm TV có dấu được sắp xếp theo quy định TVChuỗi chuoiy chứa các ký tự mã hóa tương ứng từng ký tự ở chuoix- Lấy ký tự thứ nhất trong chuỗi cần mã hóa B1: Xác định ví trí của ký tự trong chuoixB2: Nếu ký tự đó không có trong chuỗi x thì lấy ký tự tiếp theo trong chuoi, quay lại b1Nếu ký tự có trong chuỗix thì lấy ký tự ở vị trí tương ứng trong chuỗiy, đưa ký tự đó vào kết quả.Quá trình dừng khi lấy hết ký tự trong chuỗiLưu ý: Chuoix và chuoiy phải đảm bảo chính xác từng vị trí ký tự trong chuôix tương ứng với chuôiy.dodaichuoi = Len(chuoi1)vitri = 1While vitri <= dodaichuoi kytu = Mid(chuoi1, vitri, 1) chuthuong = LCase(kytu) vitri1 = InStr(chuoix, chuthuong) If vitri1 = 0 Then mahoaTCVN3 = mahoaTCVN3 + kytu Else mahoaTCVN3 = mahoaTCVN3 + Trim(Mid(chuoiy, vitri1, 2)) End if vitri = vitri + 1 Wend End FunctionVí dụ: sắp xếp cột tên trong bảng HSCB theo bảng mã VNI (TCVN3) đúng quy cách tiếng việt Tạo Query như sau:Kết quảCâu hỏi kiểm tra 15 phútCâu hỏi 1: Hãy kể tên các kiển biến nhớ, Biến nhận giá trị điểm có 1 số lẻ là kiểu gì?Câu hỏi 2: Hãy nêu cấu trúc rẽ nhánh If, giả thích.Ghi đoạn lệnh Kiểm tra điều kiện của phép chia a/b

Các file đính kèm theo tài liệu này:

  • pptbai_giang_access_chuong_6_lap_trinh_vba_can_ban.ppt
Tài liệu liên quan