Bài giảng Access: Chương 6 do Nguyễn Sơn Hải biên soạn nhằm mục đích phục vụ cho việc giảng dạy. Nội dung bài giảng gồm: Dạng lệnh hướng đối tượng, các thành phần cơ bản của ngôn ngữ, khai báo biến, các cấu trúc lệnh VBA, chương trình con,...
Trang 2Giới thiệu chung
Ngô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, New
Trang 3Dạng lệnh hướng đối tượng
<Tên đối tượng> <thuộc tính> = <giá
Trang 4Vi du
1 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/No
Byte số nguyên dương 1 byte (0
Currency tiền tệ, 8 bytes
String kiểu xâu ký tự, 255 ký tự, Text
Variant kiểu dữ liệu không tường minh
) 1 2
(
2 31 31
Trang 52 Khai báo biến:
Dim i, j As Integer Khai báo biến i, j kiểu
Integer
Dim i As Integer, st As String*15
Dim i As Variant hoặc Dim i
Dim 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 4
Dim A(1 To 5, 4 To 9, 3 To 5) As Double
Dim MyArray()
Trang 7Select Case <biểu
Thủ tục 1
endcase
T
B thức=gt 2
… … …
B thức=gt n
Trang 8Vi du
Text2:
ControlSource: DTB Value :0
Vieá leänh KT ñieàu kieän
Trang 10Wend
F
Trang 11Ví dụ 2
Tạo Form nhập vào họ tên Tách tên, họ
Trang 12n = Len(Hoten) For i = 1 To n kytu = Mid(Hoten, i, 1)
If kytu = " " Then
j = i End If Next Ten=Mid(Hoten, j + 1) Text2.Value=ten
Trang 134 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 đó.
Trang 14Vi du
Các ví dụ thông dụng
Ví dụ 1: Viết CT đăng nhập, kiểm tra mật
khẩu trước khi khởi động menu như sau:
Trang 15B1: 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:
Trang 16Vi du
B3: Xây dựng macro Autoexec như sau:
OpenForm Name Form: Menuchinh
Chú ý:
Form menuchinh đã tạo từ trước.
Macro có tên Autoexec sẽ tự đông thi hành
khi mở Access
Trang 18Vi du
Function baso(nhom As Integer) As String
Dim tram, chuc, donvi As Single
Dim chuso(9) As String
Trang 19baso = ""
If tram <> 0 Then
baso = baso + chuso(tram) + " trăm"
End If
“Doc hang chuc
If tram <> 0 And chuc = 0 And dv <> 0 Then
baso = baso + " lẻ"
Else
If chuc = 1 Then
baso = baso + " mười"
Else
If chuc <> 0 And chuc <> 1 Then
baso = baso + chuso(chuc) + "
Trang 20Vi du
If dv = 1 And chuc > 1 Then
baso = baso + " mốt"
Else
If dv = 5 And chuc >= 1 Then
baso = baso + " lăm"
Trang 21Public Function tienchu(sotien As Long) As String
Dim chuoitien, nhom As String
chuoitien = Right(Space(11) + Str(sotien), 12)
Dim donvi(4) As String
Trang 22Vi du
nhom = Mid(chuoitien, i * 3 - 2, 3)
If nhom <> Space(3) And nhom <> "000" Then
tienchu = tienchu + baso(nhom) + donvi(i) + Space(1)
Trang 23Ví 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)
Trang 24Vi du
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
Trang 25Giải thích
Mã 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ụ: â < a chuyển mã a -> 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
Trang 26Vi du
Public Function mahoaTCVN3(chuoi1 As String) As String Dim chuoix, chuoiy As String
Dim dodaichuoi, vitri As Byte
chuoix = "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)
Trang 27Thuậ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.
Trang 28Vi du
dodaichuoi = Len(chuoi1)
vitri = 1
While vitri <= dodaichuoi
kytu = Mid(chuoi1, vitri, 1)
Trang 29Ví 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:
Trang 30Vi du
Kết quả
Trang 31Câu hỏi kiểm tra 15 phút
Câu hỏi 1: Hãy kể
tên các kiển biến