Giáo trình Quản trị cơ sở dữ liệu Access 2 - Nghề: Công nghệ thông tin
TRƯỜNG CAO ĐẲNG NGHỀ ĐẮK LẮK
KHOA ĐIỆN TỬ - TIN HỌC
GIÁO TRÌNH
QUẢN TRỊ CƠ SỞ DỮ LIỆU
ACCESS 2
NGHỀ: CÔNG NGHỆ THÔNG TIN
TRÌNH ĐỘ: CAO ĐẲNG NGHỀ - TRUNG CẤP NGHỀ
Người biên soạn:
ThS. Lê văn Tùng
Lưu hành nội bộ - 2014
LỜI NÓI ĐẦU
Giáo trình này là sự đúc kết kinh nghiệm của tác giả trong giảng dạy các
khoá đào tạo về Access cũng như kinh nghiệm sử dụng Access làm hệ quản trị cơ
sở dữ liệu và công cụ phát triển phần mềm. Hầu hết nội dung trình bày trong giáo
trình đều bám theo những bài tập thực hành cụ thể. Do vậy, sau khi đọc xong và
thực hành theo trình tự cuốn sách này, người đọc gần như có thể thiết kế và xây
dựng được những ứng dụng về quản lý thông tin.
Đối tượng chính của giáo trình là sinh viên, học sinh chuyên nghề Công nghệ
thông tin (CNTT) cũng như không chuyên nghề CNTT có học môn Access. Tất
nhiên cũnghoàn toàn phù hợp cho những ai quan tâm học hỏi môn học này bởi lẽ
các nội dungđều được trình bày rất trực quan, có thứ tự và kết quả rõ ràng.
Thời lượng thiết kế 75 tiết. Trong đó 24 tiết lý thuyết, 47 tiết thực hành và 4
tiếtdành cho kiểm tra. Tuỳ theo mức độ ứng dụng của từng nghề vào môn họcnày
mà mỗi đơn vị sẽ chọn cho mình một quĩ thời gian cũng như các nội dunggiảng dạy
phù hợp từ giáo trình này.
Nội dung giáo trình gồm 5 chương:
Chương 1: Tập lệnh Macro – Trình bày cơ bản về đối tượng macro cụ thể và
tập lệnh, biết các thao tác xử lý đối vꢀi macro và cách sử dụng macro vꢀi các biến
cố. Tạo được macro vꢀi các xứ lý cơ bản và kết hợp macro vꢀi biến cố để xử lý
chức năng trên form.
Chương 2: Lập trình VBA – Trình bày về môi trường lập trình VBA và hiểu
một số khái niệm và cơ chế xử lý của ngôn ngữ VBA. Xây dựng và xử lý sự kiện
trên các biểu mꢁu sử dụng bộ lệnh Docmd.
Chương 3: Lập trình cơ bản dữ liệu – Trình bày được kiến thức và các kꢂ
thuật DAO. Sử dụng được các đối tượng trên DAO.
Chương 4: Xây dựng thực đơn và thanh công cụ - Trình bày các cách tạo
menu và thanh công cụ trong Access. Gắn được menu và thanh công cụ trên các
form giao diện.
Chương 5: Xây dựng ứng dụng – Trình bày các kiến thức về quy trình xây
dựng ứng dụng. Xây dựng được các ứng dụng vꢀi các form, báo cáo hiệu quả và
thân thiện và xây dựng được tính bảo mật cho ứng dụng.
Tuy có nhiều cố gắng trong quá trình biên soạn nhưng giáo trình này vꢁn còn
nhiều thiếu sót. Chúng tôi rất mong nhận được các ý kiến đóng góp của các bạn sinh
viên và các bạn đồng nghiệp để chúng tôi có thể hoàn thiện giáo trình này.
Đắk lắk, năm 2014
Tác giả
ThS. Lê Văn Tùng
1
MỤC LỤC
LỜI NÓI ĐẦU ..........................................................................................................1
Bài 1: Tập lệnh Macro...............................................................................................4
1.1. Giꢀi thiệu macro ..........................................................................................4
1.2. Tạo và thi hành macro..................................................................................4
1.2.2. Ví dụ minh họa......................................................................................5
1.3. Các loại Macro và cách tạo Macro...............................................................5
1.4. Một số hành động thông dụng......................................................................6
1.5. Điều kiện trong macro..................................................................................7
1.6. Gắn kết các biến cố vꢀi macro.....................................................................8
1.6.1. Quy trình thực hiện................................................................................8
1.7. Một số ví dụ...............................................................................................10
Bài 2: Lập trình VBA..............................................................................................13
2.1. Môi trường lập trình VBA .........................................................................13
2.2. Các kiểu dữ liệu và khai báo......................................................................14
2.2.1. Các kiểu dữ liệu: .................................................................................14
2.2.2. Khai báo..............................................................................................14
2.2.3. Kiểu dữ liệu tự định nghĩa:..................................................................14
2.3. Cấu trúc lệnh..............................................................................................16
2.4. Chương trình con thủ tục và hàm...............................................................18
2.4.1. Thủ tục (Procedure).............................................................................18
2.4.2. Hàm (Function) ...................................................................................19
2.4.3. Đối tượng DoCmd...............................................................................20
2.4.4. Kꢂ thuật xử lý lỗi ................................................................................20
Bài 3: Lập trình cơ sở dữ liệu..................................................................................23
3.1. Kꢂ thuật DAO............................................................................................23
3.2. Lꢀp đối tượng DAO...................................................................................24
3.3. Bài toán đꢃt lọc dữ liệu ..............................................................................31
Bài 4: Xây dựng thực đơn và thanh công cụ............................................................35
4.1. Tạo menu ...................................................................................................35
4.2. Tạo menu sử dụng công cụ ........................................................................40
4.3. Tạo menu sử dụng macro...........................................................................41
4.4. Tạo thanh công cụ......................................................................................44
4.5. Tạo menu tắt ..............................................................................................45
Bài 5: Xây dựng ứng dụng ......................................................................................48
5.1. Phân tích yêu cầu .......................................................................................48
5.3. Xây dựng form giao diện chính..................................................................50
5.4. Kết luận và hưꢀng phát triển......................................................................53
5.6. Bảo mật ứng dụng......................................................................................53
TÀI LIỆU CẦN THAM KHẢO..............................................................................55
2
CHƯƠNG TRÌNH MÔ ĐUN QUẢN TRỊ CƠ SỞ DỮ LIỆU VỚI ACCESS 2
Mã số của mô đun: MĐ 22;
Thời gian của mô đun: 75 giờ;
(Lý thuyết: 24 giờ; Thực hành: 51 giờ)
I. VỊ TRÍ, TÍNH CHẤT CỦA MÔ ĐUN:
Là mô đun chuyên môn nghề bắt buộc của chương trình đào tạo Cao đẳng
nghề Công nghệ thông tin (ứng dụng phần mềm), được bố trí học sau mô đun Quản
trị cơ sở dữ liệu vꢀi Access 1.
II. MỤC TIÊU CỦA MÔ ĐUN:
- Biết khái niệm về tập lệnh Macro và module trong Access;
- Hiểu các cách tạo và thực thi tập lệnh Macro;
- Biết cách tạo và thực thi module trong ứng dụng Access;
- Sử dụng macro và module để tăng tính linh hoạt của các chức năng trong ứng
dụng;
- Chủ động, sáng tạo trong việc tìm hiểu các tài liệu phục vụ cho môn học.
III. NỘI DUNG MÔ ĐUN:
1. Nội dung tổng quát và phân bổ thời gian:
Thời gian
Số
TT
Tên các bài trong mô đun
Tổng
số
Kiểm tra*
(LT hoặc TH)
LT TH
1. Macro
15
18
12
5
6
3
9
12
7
1
0
2
2. Lập trình VBA
3. Lập trình cơ sở dữ liệu
Xây dựng thực đơn và thanh công
cụ
4.
10
4
6
0
5. Bài tập lꢀn
20
75
6
13
47
1
4
Cộng
24
3
Bài 1: Tꢀp lꢁnh Macro
Mục tiêu:
-
-
-
-
-
Hiểu đưꢀc cơ bꢁn về đꢂi tưꢀng macro cụ thể tập lệnh;
Biết các thao tác xử lꢃ đꢂi vꢄi macro và cách sử dụng macro vꢄi các biến cꢂ;
Tạo đưꢀc macro vꢄi các xứ lꢃ cơ bꢁn;
Kết hꢀp macro vꢄi biến cꢂ để xử lꢃ chức năng trên form;
Nghiêm tꢅc, tꢆ mꢆ trong quá trình tiếp nhận lꢃ thuyết và thực hành.
1.1. Giꢂi thiꢁu macro
Macro là một lệnh hay tập hợp một nhóm lệnh được quy định sẵn trong MS -
Access cho phép xác định một tập các thao tác trên các đối tượng cơ sở dữ liệu
(CSDL) của Access như mở biểu mꢁu, mở bảng in,…
Việc tự động hóa các hành động của macro giúp đảm bảo tính chính xác và
hiệu quả của CSDL.
Macro thường được xây dựng dựa trên một số các hành động (action) thường
dùng trong access được xây dựng sẵn, mỗi Macro gồm một hoꢃc nhiều hành động
theo một thứ tự nhằm thực hiện một chức năng cụ thể được xác định.
Macro thường được dùng kết hợp vꢀi sự kiện trên các ô điều kiển của các
biểu mꢁu, báo biểu. khi các sự kiện xảy ra thì Macro tương ứng sẽ được thực hiện,
thông thường Macro được gán vꢀi sự kiện On Click của nút lệnh trong biểu mꢁu để
khi nhắp chuột vào nút lệnh thì Macro được thực hiện hơn.
Thông qua Macro ta có thể điều khiển các đối tượng trên Biểu mꢁu (Form)
và Báo cáo (Report) một cách dễ dàng và linh hoạt.
1.2. Tạo và thi hành macro
Từ cửa sổ Database chọn đối tượng Macro New, xuất hiện cửa sổ Macro
sau:
Hình 1: Cửa sổ Macro trong MS-Access 2003
1.2.1.
Các thành phần trong cửa sổ Macro: (2 phần)
Phần 1:
Cột Macro Name: Quy định tên riêng cho nhóm Macro. Khi trong cửa sổ
Macro bạn muốn tạo nhiều Macro con thì mỗi một Macro này phải có một tên riêng.
(Vào menu View Macro Name để hiển thị mục này).
Cột Condition: Thiết lập các điều kiện kiểm tra cho Macro. (Vào menu View
Condition để hiển thị mục này).
Cột Action: Quy định những hành động được tạo sẵn cho Macro.
Cột Comment: Chú thích, diễn giải về các hành động tương ứng.
4
Phần 2:
Action Argument: Quy định các tham số tương ứng cho từng hành động.
Trong cửa sổ thiết kế Macro thực hiện các thao tác sau:
Chọn hành động cần gắn cho macro tại cột Action
Gõ dòng giải thích cho hành động tương ứng tại cột Comment (nếu cần)
Chọn các đối mục cho mỗi hành động tại mục Action Arguments
Lưu ꢃ: Mỗi macro có thể thực hiện nhiều hành động, thứ tự thực hiện các hành
động phụ thuộc vào thứ tự liệt kê tại cột Action
1.2.2.
Ví dụ minh họa
Hãy mở bài tập “Quản lý HSSV” thiết kế và gắn hành động cho hai nút lệnh
sau:
Yêu cầu:
1) Khi click vào nút “quản lý điểm HSSV” thì thực hiện mở biểu mꢁu (form)
quản lý điểm HSSV ra màn hình.
2) Khi click vào nút “quản lý danh sách HSSV” thì thực hiện mở biểu mꢁu
(form) danh sách HSSV ra màn hình.
1.3. Các loại Macro và cách tạo Macro
Macro đơn: Dùng để thực hiện một thao tác đơn giản nào đó.
Cách tạo:
Bưꢀc 1: Trong ngăn Macro New
Bưꢀc 2: Trong hộp thoại Macro xuất hiện, chọn:
Action: Hành động cho Macro.
Action Argument: Quy định các tham số cho hành động tương
ứng trên.
Bưꢀc 3: Lưu và đꢃt tên cho Macro.
Ví dụ: Tạo Macro dùng để mở một Form, như sau:
5
Macro nhóm (Macro Group): Mục đích nhằm tập hợp các Macro liên quan
vꢀi nhau vào một cửa sổ Macro sheet, mỗi Macro có một tên riêng và thực hiện độc lập
khi được gọi. Khi Macro nào được gọi thì Macro đó thực hiện.
Cách tạo:
Tại cửa sổ Macro sheet, vào menu View, chọn dòng Macro Name. Lúc này
trong cửa sổ Macro sheet xuất hiện thêm một Macro Name, ta đꢃt tên Macro thành
phần vào cột này và chọn Action vào dòng tương ứng và các dòng tiếp theo. Muốn
gọi Macro thành phần nào ta chọn:
<Tên Macro nhóm>.<Tên Macro thành phần>
Ví dụ: Tạo một Macro để xem thông tin về các Bảng như sau:
Tạo Macro nhóm có tên “Mo”: Dùng để mở bảng (Table) DM_SINHVIEN,
Truy vấn (Query) DS_HSSV, biểu mꢁu (Form) quản lý HSSV.
Macro điều kiꢁn: Là Macro mà các hành động chỉ thực hiện khi thỏa mãn
một điều kiện nào đó.
Cách tạo:
Tại cửa sổ Macro sheet, vào menu View Conditions. Lúc này trong cửa sổ
Macro Sheet xuất hiện thêm cột Condition, ta nhập điều kiện vào cột này và chọn
Action vào dòng tương ứng. Nếu một điều kiện đúng thực hiện nhiều hành động thì
dòng tiếp theo của cột Condition ta gõ vào dấu ba chấm (…) và chọn tiếp hành động
trong cột Action (nếu không có dấu ba chấm thì hành động đó thực hiện bất kể điều
kiện nào).
1.4. Mꢃt số hành đꢃng thông dụng
Action/ Argument
Close
Ý nghĩa
Đóng cửa sổ (nếu không có tham số thì đóng cửa
sổ Active)
Object Type
Kiểu đối tượng (Table, Query, Form,Report,…)
Tên đối tượng đóng
Chọn cách lưu khi đóng
Hiển thị hộp thông báo
Nội dung thông báo
Có/ không có tiếng Bíp
Biểu tượng trong hộp thoại
Nội dung tiêu đề
Object Name
Save
Msg box
Message
Beep
Type
Title
Open Form
Mở một Form
6
Form Name
View
Filter Name
Where condition
Data mode
Tên Form
Dạng hiển thị (Design, print preview, Data sheet)
Tên query nhập dữ liệu
Điều kiện lọc dữ liệu
Chế độ dữ liệu(Add,Edit,Read only)
Mở một query
Open Query
Query Name
View
Data Mode
Tên query
Dạng hiển thị (Design, print preview, Data sheet)
Chế độ dữ liệu(Add,Edit,Read only)
Mở một Report
Open Report
Report Name
Tên report
View
Dạng hiển thị (Design, print preview, Data sheet)
Tên Report nhập dữ liệu
Điều kiện lọc dữ liệu
Filter Name
Where condition
Open Modulo
Modulo Name
Procedure Name
Run Macro
Mở một Modulo
Tên Modulo chứa thủ tục cần mở
Tên thủ tục cần mở
Chạy một Macro
Macro Name
Repeat Count
Tên Macro cần chạy
Số lần lꢃp chạy Macro(không ghi là một lần)
Repeat Expression Biểu thức điều kiện để lꢃp (False thì dừng)
Run Code
Function Name
Maximize
Gọi thực hiện một hàm của VBA
Tên hàm (các tham số)
Cực đại cửa sổ hiện hành
Restore
Stop All Macro
Quit
Phục hồi cửa sổ về kích thưꢀc cũ
Dừng thực hiện các Macro
Thoát khỏi Access trở về window
Xử lý dữ liệu khi thoát (promt, save all, exit)
Cập nhật lại dữ liệu nguồn cho điều khiển
Gán giá trị, thuộc tính cho một đối tượng điều khiển
Tên đối tượng điều khiển nhận giá trị, thuộc tính
Biểu thức gán (nếu khác Form:Form![tên Form]!tên
ĐK)
Option
Requery
Set Value
Item
Expression
Apply Filter
Filter Name
Lọc dữ liệu khi xử lý Table, Form, Report
Tên truy vấn lọc dữ liệu
Where condition
Điều kiện lọc dữ liệu
1.5. Điều kiꢁn trong macro
Khi tạo macro ta có thể quy định điều kiện thực hiện từng hành động của
macro, khi thực hiện: nếu điều kiện đúng thì thực hiện hành động tương ứng, nếu
điều kiện sai thì không thực hiện.
Cách tạo:
Bưꢀc 1: Tại cửa sổ macro đơn, chọn Menu View/Conditions. Cửa sổ tạo
macro xuất hiện thêm cột Condition
Bưꢀc 2: Chọn hành động cần gắn cho macro tại cột Action
Bưꢀc3: Gõ dòng giải thích cho hành động tương ứng tại cột Comment (nếu
cần)
7
Bưꢀc 4: Chọn các đối mục cho mỗi hành động tại mục Action Arguments
Bưꢀc 5: Thiết lập điều kiện thi hành cho mỗi hành động tại cột Condition
Bưꢀc 6: Đꢃt tên và lưu macro
1.6. Gꢄn kꢅt các biꢅn cố vꢂi macro
Macro thường dùng được gắn vꢀi một nút lệnh trong biểu mꢁu hoꢃc một sự
kiện (event) của một ô điều khiển.
Để gắn macro vꢀi một sự kiện của ô điều khiển ta chọn ô điều khiển, trong
sự kiện thiết kế biểu mꢁu chọn ô điều khiển cần gắn vꢀi macro rồi chọn thuộc tính
ứng vꢀi sự kiện cần gắn macro rồi chọn tên macro (nếu có sẵn) hoꢃc nhắp chuột vào
nút ba chấm (…) để tạo macro gắn vꢀi sự kiện. khi đó xuất hiện cửa sổ Choose
Builder, chọn mục macro builder sẽ xuất hiện cửa sổ tạo macro.
1.6.1.
Quy trình thực hiꢁn
Bưꢀc 1: R_Click đối tượng cần gán sự kiện (thường là nút lệnh Command
hoꢃc Text box) chọn properties.
Bưꢀc 2: Xuất hiện màn hình, chọn thẻ Event.
Hình 2: Thuộc tính sự kiện on Click
Bưꢀc 3: Chọn dòng sự kiện (Ví dụ: On Click):
Nếu Macro đã tạo trưꢀc rồi thì ta click vào Combo box trên dòng đó để chọn
Macro gán cho sự kiện của đối tượng.
Nếu chưa tạo Macro thì click vào nút Buid(…) trên dòng đó, xuất hiện hộp
thoại Choose Builder, ta chọn dòng Macro Builder và click ok, xuất hiện cửa sổ
Macro Sheet cùng hộp thoại lưu Macro, ta đꢃt tên cho Macro đóng hộp thoại lưu và
bắt đầu thiết kế Macro cho sự kiện của đối tượng.
Để gắn một macro vꢀi một nút lệnh, trong cửa sổ thiết kế biểu mꢁu chọn nút
lệnh cần gắn vꢀi macro và chọn tên macro trong thuộc tính On Click
Ví dụ: Để gắn hành động (Action) “Mở biểu mꢁu”cho nút lệnh (Button) trên biểu
mꢁu (Form)
Bưꢀc 1: R_Click Button chọn Properties (nhấn F4)
Bưꢀc 2: Trong hộp thoại xuất hiện, thực hiện:
Chọn thẻ Event
Tại dòng On Click, Click vào dấu 3 chấm
8
Click
vào dấu
3 chấm
Hình 3: Thẻ Event trong hộp thoại Property Sheet
Chọn Macro Bulder
Hình 4: Chọn Macro Builder
Hình 5: Chọn hành động mở From
Bưꢀc 3: Lưu hành động đã chọn
Bưꢀc 4: Thực thi sự kiện xem kết quả
1.6.2. Sử dụng biꢅn cố trong mꢆu biểu, báo biểu
Để có thể kết hợp các đối tượng của Access phải có cơ chế tham chiếu nội
dung của các đối tượng.
9
1) Để tham chiếu đến các ô điều khiển của báo biểu dùng cú pháp:
[Forms]! [Tên biểu mẫu]! [Tên ô điều khiển]
2) Nếu tham chiếu đến ô điều khiển của báo biểu dùng cú pháp:
[Forms]! [Tên báo biểu]! [Tên ô điều khiển]
Những tham chiếu này có thể thực hiện từ truy vấn, báo biểu, biểu mꢁu và
macro. Việc tham chiếu này cho phép các đối tượng trao đổi dữ liệu vꢀi nhau.
1.7. Mꢃt số ví dụ
Ví dụ 1: Tạo biểu mꢁu cho phép nhập vào họ tên và ngày sinh của sinh viên
cần tìm, để thực hiện thao tác tìm sinh viên có họ tên và ngày sinh học sinh – sinh
viên nhập vào từ bàn phím.
Yêu cầu:
1. Cửa sổ nhập điều kiện tìm kiếm có dạng
2. Cửa sổ trình bày kết quả tìm kiếm như một bảng truy vấn chứa thông tin
những mꢁu tin cần tìm.
Các bưꢀc thiết kế:
Tạo biểu mꢁu tên “f_tim” chứa hai ô Text box, đꢃt tên “mTenSV”,
“mNgaysinh” và 2 nút lệnh “Tìm”, “Thoát”
Nút lệnh “Tìm” gắn vꢀi macro “tim SV”, nút lệnh “Thoát” gắn vꢀi macro
“thoat” có nội dung chi tiết như sau:
Macro “tim”
Action
Action Arguments
OpenQuery
Query Name: Tim SV_vd1
View: DataSheet
Data mode: ReadOnly
Macro “thoat”
Action
Close
Action Arguments
Object Type: Form
Object Name: f_tim
Save: Yes
Tạo truy vấn lựa chọn có tên “tim SV_vd1” lấy dự liệu từ danh mục DMSV,
truy vấn này truy vấn đến các ô Text box chứa dữ liệu cần tìm ở bảng “tim
SV_vd1”
10
Ví dụ 2:Tạo biểu mꢁu cho phép chọn chế độ in báo cáo “Bang diem SV theo
lop” ra máy in hay xem trên màn hình.
Các bưꢀc thiết kế:
Thiết kế biểu mꢁu chọn cách in có tên “Chon_in” gồm:
Một Option Group tên “in” vꢀi hai mục
1. In báo cáo trực tiếp ra máy in
2. Xem báo cáo trên màn hình rồi in
Hai nút lệnh tên “Thực hiện” và “Kết thức” có nội dung như sau:
Macro gắn cho nút lệnh “Thực hiện” là macro có điều kiện có dạng
Action
Condition
Action Arguments
Open Report
[Forms]![Chon_in]![in]=1 Report Name: Bang diem SV theo lop
View: Print
Open Report
[Forms]![Chon_in]![in]=2 Report Name: Bang diem SV theo lop
View: Print Preview
Macro gắn cho nút lệnh “kết thức” là macro có chức năng đóng biểu mꢁu có
dạng:
11
Action
Close
Action Arguments
Object Type: Form
Object Name: Chon_in
Save: Yes
Ví dụ 3: Tạo biểu mꢁu kiểm tra mật khẩu trưꢀc khi vào chương trình ứng
dụng trên Access. Cửa sổ kiểm tra mật khẩu có dạng:
Yêu cầu:
Nếu mật khẩu không đúng thì thoát khỏi Access, ngược lại thì đóng cửa sổ
kiểm tra mật khẩu và cho phép làm việc cơ sở dữ liệu của chương trình.
Thiết kế chi tiết:
Tạo biểu mꢁu “Kiểm tra mật khẩu” như hình minh hoạ gồm: ô text box và
nút lệnh chi tiết như sau:
Ô text box có các thuộc tính:
Name: Mat_khau
Input Mask: Password
Default value: “”
Nút lệnh “Đồng ý” có thuộc tính có thuộc tính On Click: KTMK (gắn vꢀi macro
KTMK)
Các thuộc tính của biểu mꢁu:
Caption: Kiểm tra mật khẩu
Selector Record: No
Navigation Button: No
Pop Up: Yes
Modal: Yes
Tạo macro “KTMK” (kiểm tra mật khẩu) có nội dung như sau:
Action
MsgBox
Quit
Condition
[Forms]![Kiểm
khẩu]![mat_khau] <> “lop13cct”
…
Action Arguments
mật Message: sai mật khẩu
tra
Object Type: Form
Object Name: Kiểm tra mật khẩu
Close
12
Bài 2: Lꢀp trꢇnh VBA
Mục tiêu:
- Hiểu về môi trưꢇng lập trình VBA;
- Hiểu một sꢂ khái niệm và cơ chế xử lꢃ của ngôn ngꢈ VBA;
- Xây dựng và xử lꢃ sự kiện trên các biểu mẫu sử dụng bộ lệnh Docmd;
- Nghiêm tꢅc, tꢆ mꢆ trong quá trình tiếp nhận lꢃ thuyết và thực hành
2.1. Môi trường lꢀp trꢇnh VBA
Visual Basic for Application (VBA) để giúp người dùng có thể tạo ra các tuỳ
biến mạnh hơn, thân thiện hơn vꢀi trong công việc của mình. Hơn thế nữa VBA
trên Access đã thể hiện tính chuyên nghiệp trong lập trình, phần nào biến được một
CSDL đơn giản trở thành những sản phẩm đóng gói thương mại.
Màn hình làm việc của VBA:
Hình 2.1.1 Môi trưꢇng làm việc VBA
Hệ thống thực đơn và thanh công cụ: Cũng như bất kỳ môi trường làm việc
nào đều có hệ thống thực đơn và thanh công cụ đi kèm. Trên đó có chứa các lệnh để
gọi, thi hành hoꢃc thiết lập các điều khiển cần thiết.
Cửa sổ Project Explorer: Có rất nhiều các thành phần có thể lập trình được bởi
VBA như: Forms, Reports, Modules. Cửa sổ Project Explorer là cây phân cấp lꢀp các
đối tượng có chứa mã lệnh VBA, đồng thời giúp lập trình viên dễ dàng trong việc viết
(coding) cũng như quản lý các mã lệnh VBA đã viết.
Cửa sổ viết lệnh: Cửa sổ viết lệnh là nơi soạn thảo các dòng lệnh VBA. Mỗi
cửa sổ sẽ chứa toàn bộ mã lệnh cho một đối tượng như: Forms, Reports, Modules.
Trong mỗi cửa sổ có thể có nhiều phần được viết lệnh, mỗi phần có thể là nội dung
một khai báo, một chương trình con, nội dung một thủ tục đáp ứng sự kiện.
Cửa sổ Intermediate: Cửa sổ Intermediate là nơi giúp thi hành trực tiếp một
câu lệnh nào đó, rất hữu dụng trong việc gỡ lỗi phần mềm.
13
2.2. Các kiểu dꢈ liꢁu và khai báo
2.2.1. Các kiểu dꢈ liꢁu:
Tên kiểu
Boolean
Byte
Kiểu Field tương
Yes/No
Byte
Phạm vi
True, False
0 → 255
Integer
Integer
-32768 → 32767
Long Integer,
AutoNumber
Long
-2147483648 → 2147483647
-3.402823E+38
→
-1.401298E-45 và
Single
Single
1.401298E-45 → 3.402823E+38
-1.79769313486232E+308 →
-4.94065645841247E-324
và 4.94065645841247E-324 →
1.79769313486232E+308
-922337203685477.5808 →
922337203685477.5807
Double
Double
Currency
Currency
String
Date
Text hoꢃc Memo
Date/ Time
Kiểu bất kỳ (Date,
String, Double)
Chiều dài từ 0 đến 65500 ký tự
Từ 01/01/100 → 31/12/9999
Tương tự như các kiểu Date,
Double, String ở trên
Variant
2.2.2. Khai báo
Type Tên_kiểu_định_nghĩa
Tên_field_1 As Kiểu_dữ_liệu
Tên_field_2 As Kiểu_dữ_liệu
…
End Type
2.2.3. Kiểu dꢈ liꢁu tự định nghĩa:
Kiểu dữ liệu tự định nghĩa phải khai báo trong phần
Declarations của module. Để sử dụnh các thành phần (field) trong kiểu tự định
nghĩa thì ghi như sau:
Tên biꢅn. tên file
Biꢅn (Variable)
Là đại lượng có giá trị thay đổi tùy thuộc các xử lý. Biến để lưu trữ tạm thời
các kết quả khi thực hiện các phép tính trong chương trình, các kết quả được so
sánh vꢀi nhau hoꢃc lại sử dụng trong các phép tính khác.
Tùy thuộc vào từ khóa khai báo biến và vị trí khai báo mà phạm vi sử dụng
biến trong các thủ tục sẽ thuộc vào 1 trong 3 trường hợp sau:
Từ
khai báo
khóa
Loại
Vị trí khai báo
Phạm vi sử dụng
Trong các thủ tục
Bên trong thủ tục có chứa lệnh
khai báo
Biến cục bộ
Dim
Trong
DeclarationTrong bất kỳ các thủ tục thuộc
Biến thuộc
đơn thể
Section của module module có chứa lệnh khai báo
Dim
14
Trong Declaration
Trong bất kỳ thủ tục nào thuộc
Global hoꢃc
Section của module bất kỳ module nào của hệ
thống ứng dụng
Biến toàn cục
Public
Biꢅn tĩnh:
Thông thường khi 1 thủ tục chấm dứt thi hành thì giá trị các biến cục bộ
được khai báo trong thủ tục này mất đi và lần gọi thi hành sau đó của thủ tục các
biến cục bộ sẽ được khởi tạo lại.
Nếu muốn giữ lại giá trị của biến cục bộ trong 1 thủ tục sau khi thủ tục này
chấm dứt thi hành thì khai báo biến đó là biến tĩnh theo cú pháp sau:
Static tên_biꢅn
Ví dụ:
Dim I As Integer
Static S As Double
Public B As String
Hằng và hằng ký hiꢁu
Hằng là đại lượng có giá trị cụ thể và không đổi trong chương trình. Cách
biểu diễn hằng tùy thuộc vào kiểu dữ liệu của hằng. Nếu hằng được sử dụng nhiều
lần tại nhiều nơi khác nhau thì nên khai báo hằng ký hiệu để biểu thị cho giá trị
hằng đó. Hằng ký hiệu sau khi khai báo có thể sử dụng trong các biểu thức nhưng
không được phép thay đổi giá trị của hằng ký hiệu hoꢃc gán cho hằng ký hiệu 1 giá
trị khác.
Phạm vi sử dụng hằng tùy thuộc vào từ khóa khai báo và giá trị khai báo như
sau:
Từ khoá khai
báo
Loại
Hằng cụcbộ
Vị trí khai báo
Phạm vi sử dụng
Trong các thủ
tục
Bên trong thủ tục có chứa
lệnh khai báo
Trong bất kỳ các thủ tục
thuộc module có chứa lệnh
khai báo
Const
Const
Global
Trong
Hằngthuộc
đơn thể
Declaration
Section của
module
Trong
Trong bất kỳ thủ tục nào
thuộc bất kỳ module nào của
hệ thống ứng dụng
Declaration
Section của
module
Hằng toàncục
Const hoꢃc
Public Const
Ví dụ:
Const CS = “Trung Tâm Máy tính và Điện tử”
Const PI = 3.14159
Const NDN = #1/1/01# Const SAI = False
Mảng (array)
Mảng là một dãy các phần tử liên tiếp nhau có cùng một tên gọi và dùng chỉ
số thứ tự để chỉ định một phần tử nào đó trong mảng.
Mỗi phần tử được sử dụng giống như một biến. Các phần tử có thể có cùng
kiểu dữ liệu hoꢃc khác kiểu nếu mảng được khai báo là Variant.
15
Từ khóa
khai
Loại
Vị trí khai báo
Phạm vi sử dụng
báo
Trong các thủtục
Bên trong thủ tụccó chứa
lệnh khai báo
Mảng cụcbộ Static
TrongDeclaration
Section của module
Trong bất kỳ cácthủ tục
thuộc module có chứa lệnh
khai báo
Mảngthuộc
Dim
đơn thể
Global
Dim
hoꢃc
TrongDeclaration
Section của module
Trong bất kỳ thủtục nào
thuộc bất kỳ module nào của
hệ thống ứng dụng
Mảng
toàncục
Public Dim
2.3. Cꢉu trꢊc lꢁnh
Các cấu trúc lệnh là thành phần cơ bản của mỗi ngôn ngữ lập trình. Thông
thường các ngôn ngữ lập trình đều có các cấu trúc lệnh như nhau: lệnh xử lý điều
kiện, lệnh lꢃp biết trưꢀc số vòng lꢃp, lệnh lꢃp không biết trưꢀc số vòng lꢃp,.. Tuy
nhiên cách thể hiện (cú pháp) mỗi cấu trúc lệnh có thể khác nhau tuỳ thuộc vào mỗi
ngôn ngữ lập trình. Hơn nữa, mỗi ngôn ngữ cũng có thể có một số điểm khác biệt,
đꢃc trưng trong mỗi cấu trúc lệnh.
Cũng giống như nhiều ngôn ngữ lập trình hiện đại khác, các cấu trúc lệnh
trong VBA đều tuân thủ các nguyên tắc:
Có cấu trꢅc
mỗi cấu trúc lệnh đều có từ khoá bắt đầu và một từ khóa báo hiệu kết thúc.
Thực hiện tuần tự (loại trừ trường hợp đꢃc biệt thủ tục Goto <Label>)
Có khả năng lồng nhau
Cấu trꢅc rẽ nhánh
Cấu trúc rẽ nhánh hay còn gọi là lệnh lựa chọn. Tức là nếu một điều kiện nào
đó xảy ra sẽ là gì, hoꢃc trái lại có thể làm gì.
Cú pháp:
If <điều kiện> Then
<thủ tục 1>
[ Else
<thủ tục 2> ]
End If
Chức năng: nếu <điều kiện> = True thì thực hiện các lệnh trong <thủ tục1>.
Trái lại thực hiện các lệnh trong <thủ tục 2>.
Phần trong cꢃp dấu ngoꢃc vuông [..] có thể có hoꢃc không có trong câu lệnh,
tuỳ thuộc vào mục đích xử lý.
Ví dụ 1:
Dim SL As Integer, DG As Double, TT As Double
SL = Val(InputBox (“Nhập số lượng:”))
DG = Val(InputBox (“Nhập đơn giá:”))
TT = SL * DG
If TT >= 200000 Then TT = TT * 0.95
Ví dụ 2:
Const PI = 3.14159
Dim ban_kinh As Double
16
ban_kinh = Val(InputBox (“Nhập bán kính:”))
If ban_kinh > 0 then
Dim dientich As Double
Dim chuvi As Double
Dientich = ban_kinh*ban_kinh*PI Chuvi = ban_kinh*2*PI
End If
Cấu trꢅc lựa chọn
Đây là một loại cấu trúc lựa chọn. Thông thường hoàn toàn có thể sử dụng If
.. End If để thực hiện các xử lý liên quan đến kiểu cấu trúc này, nhưng trong những
trường hợp đꢃc biệt, cấu trúc Select Case .. End Select thể hiện được sự tiện dụng
vượt trội.
Cú pháp:
Select Case <biểu thức>
Case <giá trị 1>
<thủ tục 1>
Case <giá trị 2>
<thủ tục 2>
………
Case <giá trị n>
<thủ tục n>
[Case Else
<thủ tục n+1>]
End Select
Trong đó: <Biểu thức> luôn trả về giá trị kiểu vô hưꢀng đếm được như: số
nguyên, xâu ký tự, kiểu logic,..
Vꢀi cấu trúc này, VBA hoạt động như sau:
Tính giá trị của biểu thức, Kiểm tra <biểu thức> = <giá trị 1> ?. Nếu đúng thực hiện
<thủ tục 1> và kết thúc lệnh, thực hiện lệnh tiếp theo sau từ khoá End Select.Nếu
sai, thực hiện tiếp việc so sánh <biểu thức> = <giá trị i> tiếp theo và xử lý tương tự
qui trình nêu trên.
Trong trường hợp <biểu thức><><giá trị i>, i=1..n khi đó có 2 khả năng:
Nếu có tuỳ chọn Case Else thì VBA sẽ thực hiện <thủ tục n+1>;
Nếu không có tuỳ chọn Case Else, VBA sẽ không thực hiện bất kỳ thủ tục
nào đã liệt kê trong vùng Select .. End Select cả mà chuyển tꢀi thực hiện lệnh tiếp
theo sau từ khoá End Select.
Cấu trꢅc lặp
Cấu trúc FOR … NEXT
For… Next là một cấu trúc lꢃp biết trưꢀc số lần lꢃp trong VBA, tuy nhiên
trong những tình huống đꢃc biệt, vꢁn có thể sử dụng cấu trúc này như cấu trúc
không biết trưꢀc được số lần lꢃp.
Cú pháp:
For <biến chạy> = <giá trị 1> To <giá trị 2> [Step <n>]
<thủ tục>
[Exit For]
Next
Trong đó:
<biến chạy> là biến kiểu vô hưꢀng đếm được, hay dùng nhất là biến kiểu
nguyên;
17
<giá trị 1>, <giá trị 2> là các giá trị mà biến chạy sẽ nhận và thực hiện dịch
chuyển sau mỗi lần lꢃp. Có thể dịch chuyển đi 1 đơn vị, có thể dịch chuyển
đi nhiều đơn vị một lần, có thể dịch chuyển tiến, cũng có thể dịch chuyển lùi-
tất cả điều này tuỳ thuộc vào việc có hay không có tuỳ chọn [Step <n>];
Nếu có tuỳ chọn [Step <n>] biến chạy sẽ dịch n đơn vị sau mỗi lần lꢃp. Khi
đó, nếu n>0 dẽ dịch tiến, ngược lại sẽ dịch lùi;
Mỗi lần lꢃp, VBA sẽ thực hiện <thủ tục> một lần;
Trong trường hợp đꢃc biệt nếu gꢃp phải lệnh Exit For trong vòng lꢃp, ngay
lập tức thoát khỏi lệnh lꢃp và thực hiện lệnh tiếp ngay sau từ khoá Next. Chính Exit
For đã làm mất đi tính lꢃp biết trưꢀc được số lần lꢃp.
Cấu trúc WHILE … WEND
While … Wend là một cấu trúc lꢃp không biết trưꢀc số lần lꢃp trong VBA.
Cú pháp:
While <điều kiện>
<thủ tục>
Wend
Trong đó:
While, Wend là các từ khoá của lệnh lꢃp;
Nếu <điều kiện> = True, các lệnh trong <thủ tục> sẽ được thực hiện. Thực
hiện xong lại quay lên dòng lệnh While để kiểm tra tiếp <điều kiện>;
Nếu <điều kiện> = False, sẽ thoát khỏi vòng lꢃp và thực hiện lệnh tiếp theo
từ khoá Wend.
Chú ý: Luôn phải chứng minh được rằng, sau một số hữu hạn lần thực hiện
<thủ tục>, giá trị của <biểu thức> phải là False để thoát khỏi vòng lꢃp. Trong
trường hợp không thể thoát khỏi vòng lꢃp, có nghĩa người lập trình đã mắc phải lỗi
lꢃp vô hạn. Có thể dꢁn đến chương trình bị treo.
2.4. Chương trꢇnh con thꢋ tục và hàm
Các thủ tục và hàm trong đơn thể Access có hai loại:
2.4.1. Thꢋ tục (Procedure)
Các chương trình Basic được viết thành những đơn vị riêng lẻ gọi là thủ tục.
Trong mỗi thủ tục sẽ chứa các lệnh Basic để thực hiện một xử lý nhất định hoꢃc tính
toán một giá trị. Có hai loại thủ tục:
Cú pháp
[Public] [Private] Sub <tên CTC>([<danh sách các tham số>])
<thủ tục>
End Sub
Trong đó:
Sub, End Sub là các từ khoá bắt buộc khai báo cấu trúc một chương trình con
dạng thủ tục;
<tên CTC> là tên gọi thủ tục định khai báo. Tên không được chứa dấu cách
(space) và các ký tự đꢃc biệt;
<danh sách các tham số> danh sách các tham số cần thiết cho thủ tục. Có hay
không có danh sách này tuỳ thuộc vào thủ tục cần tạo
<thủ tục> thân chương trình con. Nếu không có từ khoá Public trưꢀc Sub,
thủ tục đó chỉ có tác dụng cục bộ: trong một module, trong một report hoꢃc trong
một form. Khi có từ khoá Public trưꢀc Sub, thủ tục sẽ có tác dụng toàn cục. Tức là
có thể sử dụng bất kỳ nơi nào trên tệp Access đó. Tất nhiên, tất cả những gì khai
báo là Public phải được khai báo trong phần Decralations của một Module nào đó.
18
Ví dụ: Xây dựng thủ tục thực hiện tính tổng hai số:
Sub tong2so(a, b As Double)
tong = a + b
End Sub
‘tổng là biến được khai báo toàn cục
2.4.2. Hàm (Function)
Là loại thủ tục trả về một giá trị kết quả duy nhất tại vị trí tham chiếu đến
hàm đó, vì vậy có thể sử dụng hàm trong các biểu thức. Hàm có thể nhận các đối
mục để sử dụng trong chương trình. Tổ chức của hàm như sau:
Cú pháp
Function <tên hàm>([<danh sách các tham số>]) As <kiểu DL hàm>
<thủ tục>
End Function
Trong đó:
Function, End Function là các từ khoá bắt buộc khai báo cấu trúc một
chương trình con dạng hàm;
<tên hàm> là tên gọi hàm định khai báo. Tên không được chứa dấu cách
(space) và các ký tự đꢃc biệt;
<danh sách các tham số> danh sách các tham số cần thiết cho hàm. Có hay
không có danh sách này tuỳ thuộc vào hàm cần định nghĩa;
<kiểu DL hàm> kiểu dữ liệu mà hàm sẽ trả lại. Phần này bắt buộc phải được
khai báo vꢀi mỗi hàm;
<thủ tục> thân chương trình con. Trong đó câu lệnh <tên hàm> = <biểu
thức> phải xuất hiện ít nhất một lần trong thủ tục. Câu lệnh này có tác dụng gán giá
trị cho hàm.
Chú ý: Nếu không có từ khoá Public trưꢀc Function, hàm đó chỉ có tác dụng cục
bộ: trong một module, trong một report hoꢃc trong một form.
Khi có từ khoá Public trưꢀc Function, hàm sẽ có tác dụng toàn cục. Tức là có
thể sử dụng bất kỳ nơi nào trên tệp Access đó. Tất nhiên, tất cả những gì khai báo là
Public phải được khai báo trong phần Decralations của một Module nào đó.
Ví dụ1: Thiết kế hàm tổng để tính tổng hai số:
Function Tong(a, b As Double) As Double
Tong = a + b
End Function
Ví dụ2: Thiết kế hàm kiểm tra tính nguyên tố của một số:
Function laNguyenTo(so As Integer) As Boolean
Dim uoc As Integer
laNguyenTo = True
If so > 2 Then
For uoc = 2 To Int(Sqr(so))
If so Mod uoc = 0 Then
laNguyenTo = False
Exit For
End If
Next
End If
End Function
19
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Quản trị cơ sở dữ liệu Access 2 - Nghề: Công nghệ thông tin", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
giao_trinh_quan_tri_co_so_du_lieu_access_2_nghe_cong_nghe_th.pdf

