Tải bản đầy đủ (.doc) (63 trang)

Xây dựng chương trình quản lý hồ sơ nhân sự trường cao đẳng nghề Âu Lạc Yên Bái

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (814.17 KB, 63 trang )

Bài Luận
Đề Tài:
Xây dựng chương trình quản lý hồ sơ
nhân sự trường cao đẳng nghề
Âu Lạc Yên Bái
1
MỤC LỤC
LỜI NÓI ĐẦU 3
CHƯƠNG 3 30
PHÂN TÍCH THIẾT KẾ HỆ THỐNG QUẢN LÝ HỒ SƠ NHÂN SỰ TRƯỜNG CAO ĐẲNG NGHỀ
ÂU LẠC YÊN BÁI 30
CHƯƠNG 4 50
THIẾT KẾ GIAO DIỆN CHƯƠNG TRÌNH 50
4. 8 TÌM KIẾM THEO HỌ VÀ TÊN CÁN BỘ 55
4. 9 TÌM KIẾM THEO NĂM VÀO CƠ QUAN 55
4.11 THỐNG KÊ DANH SÁCH CÁN BỘ ĐANG CÔNG TÁC 57
KẾT LUẬN 62
2
LỜI NÓI ĐẦU
Hiện nay chúng ta đang sống và làm việc trong môi trường của khoa học kỹ
thuật và công nghệ ngày càng phát triển. Một trong những ngành phát triển mạnh
nhất đó là công nghệ thông tin và việc ứng dụng nó vào trong cuộc sống của chúng
ta. Công nghệ thông tin phát triển kèm theo nó là khoa học phát triển, con người
phát triển, mọi hoạt động của con người cũng từng bước được cải thiện. Công nghệ
thông tin là một cuộc cách mạng, một bước tiến lớn của loài người.
Vấn đề đáng quan tâm hiện nay là làm thế nào để quản lý thông tin một cách
đầy đủ nhất và hiệu quả nhất, việc quản lý thông tin sao cho người xem có thể tiếp
cận thông tin không mấy khó khăn.
“Quản lý hồ sơ nhân sự” là một chương trình cần đòi hỏi mỗi người làm
quản lý cần hiểu rõ ý nghĩa của việc lập trình để quản lý. Trong trường Cao Đẳng
Nghề vấn Âu Lạc Yên Bái đề quản lý cán bộ là một trong những vấn đề mấu chốt


trong công tác hoạt động của trường nói riêng và của Bộ nói chung. Tuy nhiên nếu
chưa có sự hỗ trợ nhiều của hệ thống máy tính, thì việc đưa ra những quyết định sẽ
gặp phải nhiều khó khăn. Về thời gian, sổ sách, nếu được sự hỗ trợ của máy tính thì
công việc đó sẽ trở nên đơn giản hơn và dễ dàng hơn.
Được sự hướng dẫn của các thầy (cô) giáo trong khoa CNTT Đại Học Thái
Nguyên và các bạn cùng lớp sau một thời gian nghiên cứu em đã hoàn thành đề tài “
Xây dựng chương trình quản lý hồ sơ nhân sự trường cao đẳng nghề Âu Lạc
Yên Bái”. Vì thời gian hạn chế và lượng kiến thức còn eo hẹp, chưa có kinh nghiệp
lập trình nên trong chương trình chắc chắn còn rất nhiều chỗ thiếu sót. Kính mong
các thầy (cô) giáo cùng các bạn đóng góp ý kiến để chương trình được hoàn thiện
hơn.
Em xin chân thành cảm ơn sự giúp đỡ nhiệt tình của cô giáo Đào Thị Thu
và các bạn.
Yên Bái Ngày 19 , tháng 08 năm 2009

Sinh viên thực hiện
Nguyễn Ngọc Luân
3
CHƯƠNG 1
GIỚI THIỆU VỀ NGÔN NGỮ SỬ DỤNG
1.1 Giới thiệu chung về Microsoft Access
1.1.1 Giới thiệu chung
Microsoft Access là hệ quản trị cơ sở dữ liệu trên môi trường Window, trong
đó có sẵn các công cụ hữu hiệu và tiện lợi để tự động sản sinh chương trình hầu hết
cho các bài toán thường gặp trong quản lý, thống kê, kế toán. Với Access người
dùng không phải viết từng câu lệnh cụ thể như trong Pascal, C hay Foxpro mà chỉ
cần tổ chức dữ liệu và thiết kế các yêu cầu, công việc cần giải quyết.
Sáu đối tượng công cụ mà Access cung cấp là: Bảng (Table), truy vấn (Query),
mẫu biểu (Form), báo biểu (Report), macro và đơn thể (Module).
- Bảng có cấu trúc tương tự như một tệp DBF của Foxpro được dùng để lưu

trữ dữ liệu của CSDL. Một CSDL thường gồm nhiều bảng có quan hệ với nhau.
- Truy vấn là công cụ mạnh của Access dùng để tổng hợp, sắp xếp, tìm kiếm
dữ liệu trên các bảng.
- Mẫu biểu thường dùng để tổ chức cập nhật dữ liệu cho các bảng và thiết kế
giao diện chương trình. Ngoài ra mẫu biểu còn cho phép nhập dữ liệu riêng lẻ từ
bàn phím.
- Báo biểu là công cụ tuyệt vời phục vụ công việc in ấn, nó cho các khả năng:
in dữ liệu dưới dạng bảng, in dưới dạng báo biểu, sắp xếp tổng hợp dữ liệu trước
khi in.
- Macro bao gồm một dãy các hành động dùng để tự động hoá một loạt các
thao tác. Macro thường dùng với mẫu biểu để tổ chức giao diện chương trình.
- Đơn thể là nơi chứa các hàm, thủ tục viết bằng ngôn ngữ Access VBA.
Mặc dù các công cụ mà Access cung cấp khá đầy đủ, nhưng không thể bao
quát được mọi vấn đề đa dạng của thực tế. Các hàm, thủ tục của VBA sẽ hỗ trợ giải
quyết những phần việc đó mà công cụ không làm nổi, do đó làm tăng sức mạnh của
Access.
4
1.1.2 Thiết kế giao diện
 Bảng
* Bảng gồm nhiều trường, dùng để chứa dữ liệu. Công cụ bảng để làm việc gồm:
- Tạo bảng mới.
- Đặt khoá chính.
- Nhập dữ liệu vào bảng.
- Chỉnh sửa cấu trúc của bảng.
- Thiết lập quan hệ giũa các bảng.
- Sử dụng thuộc tính của trường để trình bầy dạng bảng của trường và kiểm tra
tính hợp lệ của kiểu dữ liệu khi nhập liệu.
* Cửa sổ bảng chia làm 2 phần:
- Phần trên: gồm 3 cột (Field Name, Data Type, Description) dùng để khai
báo trường của bảng, mỗi trường khai báo trên một dòng.

- Phần dưới: dùng để quy định các thuộc tính cho các trường.
 Truy vấn
Truy vấn là công cụ cực mạnh của Access dùng để tổng hợp, sắp xếp, tìm
kiếm dữ liệu.
* Các bước để tạo một truy vấn mới:
- Chọn nguồn dữ liệu cho truy vấn mới gồm các bảng và các truy vấn đã
được tạo từ trước.
- Tạo lập quan hệ giữa các bảng, truy vấn nguồn.
- Chọn các trường từ các bảng, truy vấn nguồn để đưa vào truy vấn mới.
- Đưa vào các điều kiện để chọn lọc mẫu tin thoả mãn các điều kiện đưa
vào.
5
- Chọn các trường dùng để sắp xếp các mẫu tin trong Dynaset. Nếu không
chọn trường sắp xếp thì các mẫu tin trong Dynaset được hiển thị theo thứ tự
như trong các bảng nguồn.
- Xây dựng các cột (trường) mới từ các trường đã có trong các bảng, truy vấn
nguồn.
* Các loại truy vấn:
- Select query: Thể hiện việc chọn lựa các trường cần hiển thị.
- Crosstab query: Thể hiện dữ liệu dạng hàng cột.
- Action query: Tạo bảng mới, thêm, xoá, sửa các mẫu tin trong bảng.
- Union query: Kết hợp các trường tương ứng từ 2 hay nhiều bảng.
 Mẫu biểu
Là công cụ cực mạnh của Access dùng để: Thể hiện và cập nhật dữ liệu cho
các bảng, tổ chức giao diện chương trình.
* Form
Form là biểu mẫu của mỗi ứng dụng trong Access. Ta dùng form ( như là
một biểu mẫu ) nhằm định vị và sắp xếp các bộ phận trên nó khi thiết kế các phần
giao tiếp với người dùng.
Ta có thể xem Form như là bộ phận mà nó có thể chứa các bộ phận khác.

Form chính của ứng dụng, các thành phần của nó tương tác với các Form khác và
các bộ phận của chúng tạo nên giao tiếp cho ứng dụng. Form chính là giao diện
chính của ứng dụng, các Form khác có thể chứa các hộp thoại, hiển thị cho nhập dữ
liệu và hơn thế nữa.
* Tools Box ( Hộp công cụ )
Bản thân hộp công cụ chỉ chứa các biểu tượng biểu thị cho các điều khiển
mà ta có thể bổ sung vào biểu mẫu, là bảng chứa các đối tượng được định nghĩa sẵn
của Access. Các đối tượng này được sử dụng trong Form để tạo thành giao diện cho
các chương trình ứng dụng của Access. Các đối tượng trong thanh công cụ sau đây
là thông dụng nhất.
6
a/ Option Button Control ( Nút chọn )
Đối tượng nút chọn cho phép người dùng chọn một trong những lựa chọn đưa
ra. Như vậy, tại một thời điểm chỉ có một trong các nút chọn được chọn.
b/ Label ( Nhãn )
Đối tượng nhãn cho phép người dùng gán nhãn một bộ phận nào đó của giao
diện cho chương trình ứng dụng. Dùng các nhãn để hiển thị thông tin không muốn
người dùng thay đổi. Các nhãn thường dùng để định dạng một hộp văn bản hoặc
một điều khiển bằng cách mô tả nội dung của nó. Một công cụ phổ biến nhất là hiển
thị thông tin trợ giúp.
c/ Text Box (Hộp soạn thảo)
Đối tượng Text Box cho phép đưa các chuỗi kí tự vào form. Thuộc tính quan
trọng nhất của Text Box là thuộc tính Text cho biết nội dung của hộp Text Box.
d/ Command Button (Nút lệnh )
Đối tượng Command Button cho phép quyết định thực thi một công việc nào
đó khi người dùng click nó.
c/ List Box (hộp danh sách) và Combo box(hộp lựa chọn)
Là các điều khiển dùng để nhập liệu bằng các chọn từ một bảng danh sách.
List box và combo box giống nhau là ở cả 2 đều có một nguồn dữ liệu để tạo nên
bảng chọn. List box luôn được hiển thị, còn Combo box chỉ được mở khi bấm chuột

tại nút mũi tên đặt bên phải.
 Báo biểu
Là công cụ thuận tiện để tổ chức in dữ liệu của một bảng, truy vấn. Các khả
năng của báo biểu:
- In dữ liệu dưới dạng bảng, dạng biểu.
- Sắp xếp dữ liệu trước khi in.
- Sắp xếp và phân nhóm dữ liệu.
- In dữ liệu từ nhiều bảng, truy vấn có liên quan trên cùng một báo cáo.
* Các công cụ tương tự như mẫu biểu.
 Macro
Là một đoạn chương trình, gồm một dãy các hành động, dùng để tự động hoá
các thao tác và tổ chức giao diện chương trình.
Trình tự thao tác để tạo một macro:
7
- Trong cửa sổ Database chọn mục macro.
- Chọn New hiện ra cửa sổ.
- Chọn các hành động ở cột Action.
- Xác định các đối tượng cho hành động vừa chọn.
- Ghi thiết kế và đặt tên.
- Đóng cửa sổ thiết kế.
1.1.3 Viết lệnh cho các đối tượng
Điểm mấu chốt cần phải nhận thức rõ trong khâu lập trình Access là Access
xử lý mã để đáp ứng các sự kiện. Thực vậy, không như nhiều ngôn ngữ lập trình
khác, các dòng mã thi hành trong một chương trình. Access phải nằm trong các thủ
tục hoặc các hàm, các dòng mã bị cô lập sẽ không làm việc.
1) Cửa sổ Code
Cửa sổ Code luôn là nơi để viết mã. Cửa sổ Code có một thanh tách (Split
Bar) nằm bên dưới thanh tiêu đề, tại đầu thanh cuộn dọc. Thanh cuộn này có tác
dụng tách cửa sổ Code thành hai cửa sổ Code con để có thể xem cả hai phần cửa sổ
Code cùng một lúc.

2) Hộp liệt kê Object
Hộp liệt kê bên trái cửa sổ Code là hộp Object, nó liệt kê mọi đối tượng trên
form, cùng với đối tượng trên General lưu giữ mã chung mà tất cả các thủ tục đính
kèm với form có thể sử dụng.
3) Hộp liệt kê Procedure
Hộp liệt kê bên phải cửa sổ Code là hộp liệt kê Procedure. Hộp liệt kê này
cung cấp mọi sự kiện mà đối tượng đã lựa chọn trong hộp liệt kê Object nhận ra.
4) Biến
Trong Access, các biến [variables] lưu giữ thông tin (các giá trị). Khi dùng
một biến, Access xác lập bộ nhớ trong máy tính để lưu trữ thông tin.
8
Trong Access, tên biến có thể dài tới 225 ký tự và trừ kí tự đầu tiên phải là một mẫu
tự, ta có thể gộp một tổ hợp mẫu tự, con số và dấu gạch dưới bất kỳ. Chữ hoa, chữ
thường trong tên biến không quan trọng.
Khai báo biến : Dim tên biến As kiểu của biến
Ví dụ : Dim Dem As Integer
a. Kiểu String
Các biến chuỗi [String] lưu giữ kí tự. Một chuỗi có thể có một hay nhiều kí tự.
Tất nhiên, biến lưu trữ được gọi là một biến chuỗi. Một phương pháp để định danh
các biến kiểu này dấu một đồng đô la ($) vào cuối tên biến: Astring Variable.
Trên lý thuyết các biến chuỗi có thể lưu trữ khoảng 2 tỷ kí tự. Trong thực tế,
một máy cụ thể có thể lưu trữ ít hơn, do các hạn chế của bộ nhớ, các yêu cầu phần
việc chung của Windown hoặc số lượng dùng chung biểu mẫu.
b. Kiểu Integer
Các biến số nguyên integer lưu trữ các giá trị số nguyên tương đối nhỏ giữa
-32768 và +32767. Số học, số nguyên, tuy nhanh xong bị hạn chế trong phạm vi
này. Dấu định danh được dùng là dấu “% “.
c. Kiểu Long integer
Các biến số nguyên dài Long integer lưu trữ các số nguyên giữa -2,147,483
và +2,147,483,647 dấu định danh được dùng là dấu “ & “.

d. Kiểu Double
Kiểu dữ liệu chính đôi [Double] khi cần các con số có tới 16 vị trí độ chính
xác và cho phép có hơn 300 chữ số. Các phép tính cũng là xấp xỉ cho kiểu biến này,
chỉ có thể căn cứ vào 16 chữ số đầu. Ngoài ra với các con số chính đôi, phép tính
thực hiện tương đối chậm, chủ yếu được dùng trong phép tính khoa học trong
Access. Dấu định danh dùng cho biến chính đôi là dấu “#”.
Phải dùng # tại cuối con số thực tế, nhất là khi có tương đôi ít chữ số bởi bằng
không Access sẽ mặc nhận ý ta muốn dùng biến với độ chính xác hạn chế của một
số chính đơn, chính xác hơn nếu ta viết.
Ví dụ: Adouble PrecitionyVariable # = 12.345 #
9
e. Kiểu Date
Kiểu dữ liệu ngày tháng là một phương cách tiện dùng để lưu trữ thông tin cả
ngày tháng lẫn giờ khắc cho bất kỳ thời điểm nào. Ta cho phép gán cho các biến
ngày tháng bằng dấu #.
Ví dụ : ngày = # january,1,2000 #
f. Kiểu Variant
Kiểu Variant được thiết kế để lưu trữ toàn bộ dữ liệu khả dĩ khác nhau của
Access nhận được trong một chỗ. Nếu ta không báo cho Access biết kiểu thông tin
mà một biến đang lưu trữ, nó sẽ dùng kiểu variant. Ngoài cách dùng dấu định danh
để chỉ định kiểu, Access còn cho phép dùng điều lệnh. “Dim “ để khai báo biến
Ví dụ : Dim A as integer
Dim B as string, C as Byte
1.1.4 Điều khiển luồng chương trình
1/ Câu lệnh If:
Dạng 1: If<điều kiện> then <lệnh 1> [Else lệnh 2]
Dạng 2: If<điều kiện> then
<nhóm lệnh 1>
Else
<nhóm lệnh 2>

End If
Dạng 3: If <điều kiện> then
<nhóm lệnh 1>
ElseIf <điều kiện 2> then
<nhóm lệnh 2>
……
ElseIf <điều kiện n> then
<nhóm lệnh n>
[Else nhóm lệnh (n+1)]
Endif
2/ Câu lệnh Select …Case
Cú pháp
Select Case <Biến hay biểu thức điều kiện>
10
Case<giá trị 1>:
<câu lệnh>
………
Case<giá trị n>:
<câu lệnh n>
[Case else
<câu lệnh n+1>]
End select
3/ Câu lệnh For…Next
Cú pháp
For counter=Start to End [Step step]
<câu lệnh>
[Exit For]
<câu lệnh>
Next counter
Trong đó

- Counter: là biến đếm kiểu số nguyên
- Start: là giá trị bắt đầu của Counter
- End: là giá trị kết thúc của Counter
- Step: bước nhảy của mỗi lần lặp, nếu không có giá trị này thì mặc định
bước nhảy bằng 1.
4/ Cấu trúc lặp Do…While
Cú pháp
Do While <điều kiện>
<câu lệnh>
[Exit Do]
<câu lệnh>
Loop
1.1.5 Các hàm về chuỗi
Do thông tin trong hộp văn bản Access luôn được lưu trữ dưới dạng văn bản,
nên trong Access, các chuỗi tỏ ra quan trọng hơn nhiều so với trong Access bình
thường. Một chuỗi chẳng qua là một nhóm kí tự được bao trong dấu nháy kép. Khi
11
có người nhập thông tin vào hộp văn bản, Access luôn lưu trữ dưới dạng một chuỗi.
Do đó, cho dù ta có một hộp văn bản chú ý để lưu trữ một khối lượng thì nội dung
đó vẫn được xem là một chuỗi.
Phép toán phổ dụng nhất đối với các chuỗi thường là gộp hai chuỗi lại với
nhau (thuật ngữ gọi là ghép nối [concatenate]). Để ghép nối hai chuỗi, ta dùng dấu “
& “ hay dấu “ + “.
Dấu và nối các chuỗi theo thứ tự mà ta nêu chúng. Do đó, không giống như
việc cộng các con số, thứ tự là quan trọng khi dùng dấu “&” để ghép hai chuỗi với
nhau. Cũng có thể dùng dấu “&” để nối các chuỗi theo số lượng tuỳ ý trước khi
Access thực hiện điều lệnh gán. Phân tích chuỗi bằng hàm mid, left và right.
Để tiến hành phân tích một chuỗi hiện có, ta phải đặt một hàm trong thân
vòng lặp cho phép kéo từng mẫu ký tự riêng lẻ hoặc các chùm lớn hơn ra khỏi một
chuỗi.

For I =1 to len ( the string )
Mã hàm làm việc với các kí tự riêng lẻ
Next I
* Hàm Mid
Trong các hàm trên, quan trọng nhất ta có hàm mid, trả về một chuỗi lưu trữ
trong một Variant, và hàm mid$, hàm trả về chuỗi thực tế. Có thể dùng hoán đổi hai
phiên bản này.
Cú pháp: Mid (String, vt as long [, n as long ])
Trích ra n kí tự bắt đầu từ vị trí của xâu String, nếu bỏ qua n thì lấy từ kí tự vt
đến kí tự cuối cùng (hoặc biểu thức chuỗi) mà ta muốn cắt bỏ. Tiếp theo là vị trí
khởi đầu của các kí tự mà ta muốn ra khỏi chuỗi. Vị trí chốt tùy chọn sẽ lựa chọn số
lượng kí tự mà ta muốn kéo ra. Hai tùy chọn này có thể là những số nguyên hoặc
các số nguyên dài hoặc một biểu thức Access có thể làm tròn để nằm trong miền
này.
Mid là một hàm khóa ba (hoặc thỉnh thoảng là hai ) tham số, hay đối số. Cả
hai thuật ngữ này đều vay mượn từ toán học. Trong một hàm, từng đối số được tách
biệt nhau bằng dấu phẩy. Hàm Mid thường dùng ba mẫu tin. Một chuỗi tại vị trí đầu
tiên và các số nguyên hay các số nguyên dài tại hai vị trí còn lại.
12
Mid còn một tính năng hữu ích khác. Ta có thể dùng nó như một điều lệnh để
tiến hành các thay đổi bên trong một chuỗi.
* Hàm Left và Right
Hàm Mid có hai hàm con (left và right) đôi lúc cũng rất hữu ích, cũng như
mọi hàm chuỗi khác, chúng cũng có hai phiên bản. Một bình thường và một có kèm
dấu $.
Như tên gọi gợi ý left (left$) tạo một bản sao các kí tự tính từ đầu một từ và
right (right$) chọn từ cuối trở nên, Right thường được dùng hơn. Nó tránh được
phép trừ bên trong hàm Mid và có thể làm việc nhanh hơn. Left cũng làm việc
tương tự nhưng chỉ giúp ta đỡ mất công đưa một vào vị trí thứ hai trong hàm Mid.
Cú pháp: Left(String, n as long) -> Trích ra n kí tự trái của string.

Right(String, n as long) -> Trích ra n kí tự phải của string.
* Hàm InStr
Cú pháp: InStr(vt, st1, st2 [kiểu so sánh])
Cho biết chuỗi st2 có xuất hiện trong chuỗi st1 bắt đầu tính từ vị trí vt hay
không. Nếu có giá trị hàm bằng vị trí xuất hiện đầu tiên. Nếu không, hàm cho giá trị
0. Tham số kiểu so sánh có thể nhận các giá trị sau (vbDatabaseCompare,
vbTextCompare, vbbinaryCompare).
Giả sử, ta muốn tìm tất cả mọi chữ số đứng trước dấu chấm thập phân trong
một con số. Tuy nhiên, có thể dùng hàm Mid rà qua phiên bản chuỗi của con số đó
theo từng kí tự một, cho đến khi tìm thấy dấu chấm thập phân. Tuy nhiên làm như
vậy sẽ nhọc công và chạy chậm hơn nhiều so với hàm InStr.
Hàm InStr báo cho biết chuỗi có thuộc thành phần của một chuỗi khác hay
không (chuyên ngữ gọi là “ chuỗi của con “). Nếu có, InStr sẽ báo cho biết vị trí bắt
đầu chuỗi con. Hàm InStr cũng cho phép chỉ định bắt đầu tìm kiếm tại một kí tự
nhất định.
Ví dụ: InStr ([nơi bắt đầu]) chuỗi tìm kiếm, chuỗi tìm thấy)
Định nơi bắt đầu tìm thấy, nếu để chống mục này, cuộc tìm kiếm sẽ bắt đầu từ
vị trí thứ nhất. Do hàm InStr trả về giá trị zêrô (nghĩa là false) khi Access không tìm
thấy một kí tự, hoặc một giá trị phi zêrô (true) khi tìm thấy, nên thông thường ta
phải tự viết các vòng lặp If_then hoặc do dùng hàm InStr để tiến hành kiểm tra.
13
* Hàm Str ( Str$ )
Cú pháp: Str$(number)
Hàm này cho phép chuyển đổi giá trị số number sang giá trị string. Access
cho phép chuyển ngược một con số thành một chuỗi. Có nhiều cách để thực hiện,
xong hàm Str vẫn là đơn giản nhất. Hàm Str trả về một Variant lưu giữ một chuỗi
còn hàm Str$ lại trả về một chuỗi thuần túy. Các hàm Str và Str$ chuyển đổi các
con số thành chuỗi, xong không xóa sạch chúng hoàn toàn.
1.1.6 Hàm (Function)
Khi phải dùng một biểu thức phức hợp nhiều lần trong một đề án thì cũng là

lúc ta nên nghĩ đến phương án định nghĩa các hàm riêng. Ta có thể vận dụng một
cách nào đó để tự động hóa tiến trình, nghĩa là để Access thực hiện một phần công
việc. Đây là vai trò của chương trình, muốn trả về một giá trị, ta phải tạo một thủ
tục Function, tức là hàm do người dùng định nghĩa. Như thường lệ, cửa sổ Code
vẫn là nơi để tạo mã cho các thủ tục Function.
Tên hàm cũng linh hoạt như tên biến, do đó ta nên chọn các tên có ý nghĩa.
Nhờ vậy, chương trình sẽ minh bạch hơn và cũng dễ gỡ rối hơn. Lưu ý, trừ khi gán
cho nó một dấu định danh kiểu rõ rệt ở cuối tên hoặc thông qua mệnh đề As, kiểu
của hàm sẽ ngầm định theo kiểu dữ liệu Variant. Dưới đây là một dạng định nghĩa
hàm, tuy đơn giản nhất nhưng khá phổ biến.
[Static] [Private] [Public] Function <tên_hàm> ([danh sách đối]) [as type]
[Các câu lệnh]
[Tên_hàm = biểu_thức]
[Exit Function]
[Các câu lệnh]
[Tên_hàm = biểu thức]
End Function
trong đó danh sách đối đều là biến. Các biến này được xem như những tham số của
hàm. Kiểu của tham số có thể được chỉ định bởi các thẻ gán khai báo kiểu hoặc
bằng các cụm từ As. Kiểu giá trị mà hàm trả về sẽ được chỉ định bằng một thẻ gán
khai báo biến ( %, !, &, #, hoặc $ ) được chắp vào tên hàm, hoặc tên dùng trong
mệnh đề As ở cuối dòng Function, hoặc một điều lệnh DefType xuất hiện bên trên
phần định nghĩa Function.
14
a/ Thủ tục Sub
Các thủ tục Function được thành lập để thực hiện hầu như mọi thứ, chỉ cần nội
dung muốn thực hiện chính là để có một đáp số _ một giá trị _ rút ra từ các hàm đó.
Như đã nêu trên đây, tuy các hàm có thể thay đổi các tính chất của một Form, ảnh
hưởng đến giá trị của các biến dưới dạng tham số, hoặc ảnh hưởng đến các biến cấp
Form, xong không thể làm thế trừ khi sự thay đổi đó có liên quan đến nội dung thực

hiện của hàm được thiết kế. Trong mọi trường hợp, một hàm sẽ nhận dữ liệu thô,
điều tác nó, rồi trả về chỉ một giá trị. Để tránh các điều lệnh gán vô bổ và làm rối
tung vấn đề, ta có một cấu trúc mới thủ tục Sub. Thủ tục Sub là công cụ chọn lựa
trong trường hợp chỉ muốn viết một khối mã thực hiện một nội dung nào đó, cũng
tương tự như thủ tục Event.
Public Sub Chous ()
‘ nhiều lệnh in’
End Sub
Sau Sub là các dòng chứa các điều lệnh tạo thành thủ tục hay còn gọi là thân
của thủ tục. Cuối cùng, ta có các từ khóa End Sub nằm trên các dòng riêng biệt.
Cũng như trong các thủ tục sự kiện, các từ khoá này được dùng để nêu rõ điểm cuối
của một thủ tục chung.
Các gía trị của các đối số sẽ được chuyển cho các tham số tương ứng trong thủ
tục và các điều khiển bên trong thủ tục Sub được thi hành. Khi đạt đến EndSub,
việc thi hành sẽ tiếp tục với các dòng theo sau lệnh gọi đến thủ tục Sub. Cũng như
các thủ tục Function, ta phải dùng cùng số lượng tham số như số lượng tham số đã
định nghĩa trong thủ tục Sub và chúng phải có cùng kiểu tương thích.
b/ Thủ tục truyền tham số
Cú pháp:
Private/ Public <tên thủ tục > ( <tên tượng trưng cho tham số> As <kiểu>…)
Tùy thuộc muốn nó nhận bao nhiêu tham số bạn sẽ khai báo bấy nhiêu tên tham số
trong dấu ngoặc và dấu ngăn cách chúng bằng dấu phẩy. Khi gọi thủ tục này sau tên
nó cũng có thể mở ngoặc ghi các tham số tương ứng với các tham số mà nó nhận.
Để thêm file module vào Project
+ Chọn menu Project/Add module
+ Cửa sổ viết lệnh mới hiện ra
15
+ Khi lưu Project, file này cũng được lưu với phần đuôi .BAS
Để thêm một file modul đã tạo vào trong Project hiện thời
+ Chọn menu Project/ add file.

+ Chọn file > bas thích hợp trên dialog.
* Tham số thủ tục trong thủ tục
Khi định nghĩa một thủ tục nếu phải tuyên truyền vào thủ tục này một số giá trị
để làm việc, định nghĩa thêm các tham số cho nó các tham số được truyền vào thủ
tục có hai dạng:
+ Dạng truyền tham trị.
+ Dạng truyền tham chiếu.
Để qui định tham số truyền theo kiểu nào, bạn đặt các từ khóa phải trước tên
tham số.
Byval qui định tham số truyền theo kiểu tham trị
Byres qui định tham số truyền theo kiểu tham chiếu
Nếu không ghi các từ khóa này mặc nhiên coi như truyền theo tham chiếu. Khi
một tham số truyền theo kiểu tham chiếu bạn phải luôn truyền cho nó một biến chứ
không được truyền một giá trị cụ thể.
c/ Hằng (constant )
Trong một chương trình có một số giá trị mà ta dùng không đổi trong suốt quá
trình chương trình thực hiện. Các giá trị này thường được định nghĩa thành các hằng
(constant ).Cách khai báo hằng trong chương trình.`
[ Public/private ] constant < tên bằng > [As kiểu ] = < giá trị cũ >
Ví dụ: Public con số = 5
Bạn cũng có thể khai báo nhiều hằng trên một dòng
Ví dụ: Constant alleft = 0, alright = 1, alcenter = 2
Giá trị sau dấu bằng cũng là một biểu thức nhưng các số hạng trong biểu thức
đó phải là các hằng đã khai báo hay các giá trị cụ thể.
d/ Các kiểu dữ liệu trong Microsoft Access
Khi khai báo một biến trong chương trình tức là đã tạo ra một khoảng bộ nhớ
để lưu giá trị, khoảng bộ nhớ đó lớn hay nhỏ tùy thuộc vào biến khai báo kiểu gì.
Dùng biến trong chương trình điều quan trọng là xác định kiểu biến cho phù hợp
với các giá trị mà đặt vào Access cho phép khai báo biến với những kiểu dữ liệu
chuẩn như sau:

16
Kiểu Biến Độ rộng
Byte 0 đến 255
Long -2.14.483.648 đến 2.14.483.647
Integer 32768 đến 32767
Single -3,402823E38 đến -1,401298E-45(giá trị âm)
-3,402823E38 đến 3,42823E38(giá trị dương)
Double -1,79769E308 đến -4,94065E-324 (giá trị âm)
4,94065E-324 đến 1,79769E308 (giá trị dương)
Currency -22337203685477,5808 đến 22337203685477,5808
Boolean Trả về giá trị True Hoặc False
String Chiều dài từ 0 đến 65500 kí tự
Variant Số, logíc,date, chuỗi hoặc null
 Các toán tử tính toán
Toán tử Ý nghĩa
+ Cộng hai số với nhau
-
Trừ hai số với nhau
*
Nhân hai số với nhau
\
Chia, trả về kiểu số thực
/
Chia lấy phần nguyên
Mod
Chia lấy dư
^
Lấy lũy thừa
 Các toán tử so sánh
Toán tử Ý nghĩa

>
So sánh số thứ nhất có lớn hơn số thứ hai không
<
So sánh số thứ nhất có nhỏ hơn số thứ hai không
=
So sánh số thứ nhất có bằng số thứ hai không
>=
So sánh số thứ nhất có lớn hơn hoặc bằng số thứ hai không
<=
So sánh số thứ nhất có nhỏ hơn hoặc bằng số thứ hai không
<>
So sánh số thứ nhất có khác số thứ hai không
 Các toán tử Logic
Toán tử Ý nghĩa
And Trả về True nếu cả 2 số đều True và ngược lại
17
Or Trả về False nếu cả 2 số đều False còn lại là True
Not Trả về True nếu số hạng là False và ngược lại nếu số hạng là True
Như vậy, mặc dù các công cụ mà Access cung cấp khá đầy đủ nhưng không
thể bao quát được mọi vấn đề phức tạp của thực tế. Các hàm, thủ tục của VBA sẽ
hỗ trợ giúp giải quyết những phần việc khó mà công cụ không làm nổi, do đó làm
tăng sức mạnh của Access. Khi xây dựng phần mềm, trước hết ta tận dụng tối đa
công cụ của Access và chỉ phải viết thêm những đoạn chương trình để hỗ trợ cho
Access. Vì vậy trước khi nghiên cứu VBA chúng ta cần biết sử dụng tương đối
thành thạo các công cụ của Access để dễ dàng trong quá trình lập trình.
18
CHƯƠNG 2
KHẢO SÁT HIỆN TRẠNG
2.1 Khảo Sát Hiện Trạng Trường Cao Đẳng Nghề Âu Lạc – Yên Bái
Trường Cao Đẳng Nghề Âu Lạc Yên Bái được chính thức thành lập theo

quyết định số 939/QĐ - Bộ lao động TB& XH, ngày 28 tháng 7 năm 2007 và trực
thuộc Công ty cổ phần đào tạo Đồng Tâm.đây là loại hình trường cao đẳng nghề tư
thục chịu sự quản lý của nhà nước, của bộ Lao Động TB & XH và chịu sự quản lý
trên địa bàn của UBND tỉnh Yên Bái.
- Trường Cao đẳng nghề Âu Lạc thuộc công ty cổ phần đào tạo Đồng Tâm,
trụ sở tại tổ 40, phường Đồng Tâm,thành phố Yên Bái, tỉnh Yên Bái.
- Sự ra đời của trường Cao đẳng nghề Âu Lạc không chỉ góp phần đào tạo
nghề mà còn góp phần thực hiện xã hội hoá trên lĩnh vực dạy nghề của địa
phương.Trường Cao đẳng nghề Âu Lạc có chức năng tổ chức đào tạo, bồi dưỡng
nghề cho người lao động của tỉnh Yên Bái và các tỉnh khu vực miền núi phía Bắc
theo ba cấp.
+ Cao đẳng nghề
+ Sơ cấp nghề
+ Tổ chức nghiên cứu, ứng dụng khoa học kĩ thuậtvà tổ chức các dịch vụ.
2.2 Cơ cấu tổ chức của trường CĐ Nghề Âu Lạc Yên Bái
2.2.1. Đội ngũ cán bộ
Trường Cao đẳng Nghề Âu Lạc Yên Bái căn cứ vào chức năng nhiệm vụ của
trường có tổng số công nhân viên chức là 28 cán bộ.
• Lãnh đạo Trường
- Thầy hiệu Trưởng
- Thầy phó hiệu trưởng
• Các phòng ban
- Văn phòng tổng hợp
- Phòng thi đua
- Phòng tài chính
- Phòng kiểm tra
19
- Phòng kế hoạch, tài vụ
- Phòng công tác học sinh, sinh viên
• Các nghành nghề đào tạo

- Kế toán Doanh ngiệp
- Công nghệ thông tin
- Điện (Công nghiệp và dân dụng)
- Hàn
- Công nghệ ôtô ở cả hệ cao đẳng (3 năm) và trung cấp nghề (2
năm).
2.2.2 Cơ cấu tổ chức của trường
20
Ban Giám
Hiệu
Ban Giám
Hiệu
Phòng
Tổng
hợp
Phòng
Tổng
hợp
Phòng
kế
hoạch
tài vụ
Phòng
kế
hoạch
tài vụ
Phòng
Công
tác
HSSV

Phòng
Công
tác
HSSV
Phòng
kiểm
tra
Phòng
kiểm
tra
Phòng
Thi đua
Phòng
Thi đua
Phòng
Tài
chính
Phòng
Tài
chính
2.2.3 Hệ thống quản lý cũ của Nhà trường
2.2.3.1 Nguyên tắc quản lý trên sổ sách và phần mềm
Nguyên tắc quản lý giáo dục là những tiêu chuẩn, những quy tắc cơ bản, nền
tảng, những yêu cầu, những luận điểm cơ bản cần phải tuân theo tổ chức và hoạt
động của chủ thể quản lý giáo dục nhằm đạt được mục tiêu đề ra.
Nguyên tắc quản lý phản ánh các yêu cầu khách quan của quy luật chi phối
lên quá trình quản lý.
Nguyên tắc quản lý được sản sinh do nhu cầu của khách quan song bản thân
nó cũng vẫn là những sản phẩm chủ quan của con người, do vậy nó phải tuân thủ
các đòi hỏi khách quan. Ngoài ra hệ thống quản lý cần đạt được các yêu cầu sau

- Thể hiện được các yêu cầu của quy luật.
- Phù hợp với mục tiêu quản lý.
- Phản ánh đúng tính chất và đặc trưng các mối quan hệ quản lý.
- Đảm bảo tính hệ thống, nhất quán và phải được đảm bảo bằng kỷ luật của
tổ chức.
Để xây dựng đội ngũ cán bộ, công chức có phẩm chất đạo đức tốt, có trình
độ, năng lực và tận tuỵ phục vụ nhân dân, trung thành với Tổ quốc Việt Nam xã hội
chủ nghĩa cần phải có các tiêu chuẩn và quy định chung như sau:
Cán bộ, công chức là công dân Việt Nam trong biên chế sẽ được hưởng
lương từ ngân sách nhà nước. Những người được bổ nhiệm, tuyển dụng hoặc giao
giữ một công vụ thường xuyên được phân loại theo trình độ đào tạo, ngành chuyên
môn, được xếp vào một ngạch hành chính, sự nghiệp trong cơ quan (nhà trường);
mỗi ngạch thể hiện chức và cấp về chuyên môn nghiệp vụ, có chức danh (chức vụ)
tiêu chuẩn riêng.
Cán bộ, công chức là công bộc của nhân dân, chịu sự giám sát của nhân dân,
phải không ngừng rèn luyện phẩm chất đạo đức, học tập nâng cao trình độ và năng
lực công tác để thực hiện tốt nhiệm vụ, công vụ được giao. Mặt khác cán bộ, công
chức cũng cần phải tích cực chống tham nhũng, thực hành tiết kiệm, chống lãng phí
đồng thời phải tích cực thực hiện tốt “hai không” do Bộ giáo dục và đào tạo quy
định.
Trong quá trình quản lý cán bộ, công chức thì nhà trường đã thực hiện công
tác quản lý theo nội dung như sau:
21
- Ban hành các văn bản pháp luật, điều lệ, quy chế về cán bộ, công chức.
- Lập quy hoạch, kế hoạch xây dựng đội ngũ cán bộ, công chức.
- Quy định chức danh và tiêu chuẩn cán bộ, công chức.
- Quyết định biên chế cán bộ, công chức.
- Tổ chức thực hiện việc quản lý, sử dụng và phân cấp cán bộ, công chức.
- Ban hành quy chế thi tuyển, thi nâng ngạch.
- Đào tạo, bồi dưỡng, đánh giá cán bộ, công chức.

- Chỉ đạo, tổ chức thực hiện chế độ tiền lương và các chế độ, chính sách đãi
ngộ, khen thưởng, kỷ luật đối với cán bộ, công chức.
- Thực hiện việc thống kê cán bộ, công chức.
- Thanh tra, kiểm tra việc thi hành các quy định về cán bộ, công chức.
- Chỉ đạo, tổ chức giải quyết các khiếu nại, tố cáo đối với cán bộ, công chức.
Cán bộ, công chức có thành tích trong quá trình công tác đã thực hiện tốt mọi
công việc được giao thì sẽ được khen thưởng với các hình thức như:
- Giấy khen.
- Bằng khen.
- Huy chương.
- Huân chương
- Danh hiệu vinh dự Nhà nước
Cán bộ, công chức có thành tích xuất sắc trong việc thực hiện nhiệm vụ,
công vụ thì được xét nâng ngạch, nâng bậc lương trước thời hạn.
Cán bộ, công chức vi phạm các quy định của pháp luật, nếu chưa đến mức bị
truy cứu trách nhiệm hình sự thì tuỳ theo tính chất, mức độ vi phạm phải chịu một
trong các hình thức kỷ luật sau:
- Khiển trách.
- Cảnh cáo.
- Hạ bậc lương.
- Hạ ngạch.
- Cách chức.
- Buộc thôi việc.
22
Cán bộ, công chức làm mất mát, hư hỏng trang bị, thiết bị hoặc có hành vi
gây thiệt hại tài sản của nhà trường nói riêng hay của Nhà nước nói chung thì phải
bồi thường.
Việc kỷ luật đối với cán bộ, công chức phải do Hội đồng nhà trường xem xét
và đề nghị cơ quan, tổ chức có thẩm quyền quyết định.
Trong thời gian đang bị xem xét kỷ luật cán bộ, công chức có thể bị tạm đình

chỉ công tác nếu xét thấy cán bộ, công chức đó tiếp tục gây khó khăn cho việc xác
minh hoặc tiếp tục có hành vi vi phạm. Thời hạn đình chỉ không quá mười ngày;
trường hợp đặc biệt có thể kéo dài không được quá ba tháng; hết thời hạn đình chỉ
nếu không bị xử lý thì cán bộ, công chức được tiếp tục công tác. Trong thời gian bị
tạm đình chỉ thì cán bộ, công chức vẫn được hưởng lương bình thường.
Cán bộ, công chức không có lỗi thì sau khi tạm đình chỉ công tác được bố trí
về vị trí công tác cũ; trường hợp bị xử lý kỷ luật bằng các hình thức khiển trách,
cảnh cáo, hạ ngạch, hạ bậc lương thì tuỳ theo tính chất, mức độ vi phạm có thể được
bố trí về vị trí công tác cũ hoặc bị chuyển làm công tác khác hay còn bị kéo dài thời
gian nâng bậc lương thêm một năm. Nếu cán bộ, công chức bị kỷ luật bằng hình
thức cách chức thì sẽ được bố trí làm công tác khác và không được bổ nhiệm vào
các chức vụ cao hơn.
Cán bộ, công chức bị xử lý kỷ luật hoặc truy cứu trách nhiệm hình sự mà đã
được cơ quan (nhà trường) kết luận là oan, sai thì được phục hồi danh dự, quyền lợi
và được bồi thường thiệt hại.
Ngoài ra các quyết định khen thưởng hay kỷ luật sẽ được lưu vào hồ sơ của
cán bộ, công chức.
Vì vậy cán bộ, công chức trong nhà trường cũng cần phải thực hiện tốt các
quy định, quy chế mà nhà trường đã đề ra. Đồng thời cán bộ, công chức cũng cần
phát huy tốt các quyền lợi và nghĩa vụ mà mình có như không ngừng học tập nâng
cao trình độ, chủ động, sáng tạo trong công tác. Cán bộ, công chức được hưởng tiền
lương tương xứng với nhiệm vụ được giao, có lối sống lành mạnh, chấp hành
nghiêm chỉnh mọi đường lối, chủ trương của Đảng và Nhà nước đã đề ra
Đặc biệt cán bộ, công chức là nhà giáo thì không nên chây lười trong công
tác, trốn tránh trách nhiệm hoặc thoái thác trách nhiệm, không gây bè phái, gây mất
23
đoàn kết trong nội bộ hoặc tự ý bỏ việc, không được cửa quyền, hách dịch gây khó
khăn, phiền hà đối với cơ quan mình đang công tác.
2.2.3.2 Thực trạng về trình độ CNTT hiện tại của trường
- Trường Cao đẳng nghề Âu Lạc tổng số có 28 cán bộ nhân viên . Trong đó

có 1\3 cán bộ có trình độ tin học.
- Thiết bị máy tính : Hầu hết các phòng ban chức năng đều có máy tính phục vụ
cho công tác chuyên môn.
+ Quy mô và định hướng phát triển tương lai :
- Với nhu cầu công việc hiện nay yêu cầuvề nguồn nhân lực rất lớn và có trình
độ cao chính vì vậy quy mô phát triển rộng hơn để đáp ứng được nhu cầu đó.
- Để quản lý được bộ máy nhân sự như vậy vấn đề đặt ra đối với trường là cần
phải xây dựng một phần mềm có thể đáp ứng được việc quản lý nhân sự một cách
tốt nhất, giúp cho việc quản lý dễ dàng, chính xác, giảm bớt công việc bàn giấy, cập
nhật thông tin một cách nhanh chóng.
* Đánh giá thực trạng về quy trình quản lý của trường .
Trường Cao Đẳng nghề Âu Lạc thuộc Công Ty cổ phần Đồng Tâm, Đào Tạo
nên Trường Cao Đẳng nghề không trực tiếp tổ chức thi tuyển cán bộ, hồ sơ được
chuyển đến theo chỉ tiêu hàng năm. Về chuyên môn , Trường có nhiệm vụ tuyên
truyền đường lối chủ trương chính sách, pháp luật của nhà nước tới nhân dân qua
phương tiện thông tin đại chúng.
Trong Trường có nhiều phòng ban, mỗi phòng ban đều có nhiệm vụ riêng
biệt . Phòng tổ chức- hành chính xẽ được xem như là chức năng quản lý chung của
toàn bộ hệ thống. hàng năm theo dõi danh sách những cán bộ đang công tác hoặc
luân phiên chuyển gửi Hiệu trưởng. Với những cán bộ ở phòng ban khi đã đến tuổi
nghỉ hưu và những cán bộ chưa đến tuổi nghỉ hưu gửi lên Hiệu trưởng. Hiệu trưởng
sẽ duyệt phòng tổ chức sẽ lấp danh sách đề xuất nghỉ hưu gửi lên Hiệu trưởng .
Hiệu trưởng sẽ duyệt danh sách nghỉ hưu gửi cho phòng tổ chức – hành chính . Từ
đây, phòng tổ chức sẽ in quyết định ghỉ hưu cho từng cán bộ được duyệt và lưu vào
hồ sơ cán bộ.
Hiện nay, việc quản lý cán bộ của Trường Cao Đẳng nghề Âu Lạc bằng
phương pháp thủ công nên mất thời gian và không hiệu quả. Mà các yêu cầu tìm
kiếm để lấy một số thông tin về một vài cán bộ nào đó thì phức tạp. Như khi lãnh
24
đạo yêu cầu thống kê theo giới tính của cả trường, hoặc tìm kiếm cán bộ theo trình

độ chuyên môn nào đó… thì phải mất vài tiếng đồng hồ mới có thể hoàn thành.
Qua thực tế tham khảo ở phòng tổ chức chả trường , em nhận thấy hệ thổng
quản lý theo phương pháp thủ công truyền thống có những nhược điểm sau :
+ Tốn thời gian , công sức cho việc tổng hợp, thống kê, báo cáo từ cấp trên.
+ Việc tra cứu tìm kiếm, chọn lọc thông tin về cán bộ mất nhiều công sức
không thuận tiện, chính xác.
+ Khó thực hiện được việc cập nhật thường xuyên các thông tin.
+ Không đáp ứng nhu cầu thông tin về cán bộ, phục vụ cho việc chỉ đào tạo
của giám đốc cũng như việc kiểm tra của cac sơ quan qua chức năng kém hiệu quả.
2.2.3.3 Những nhược điểm cần khắc phục
- Việc cập nhật dữ liệu (thông tin) về cán bộ chậm và lâu.
- Tra cứu thông tin về cán bộ chưa chắc đã nhanh và chính xác.
- Việc lưu trữ, bổ sung, sửa đổi tốn khá nhiều thời gian và công sức.
Việc quản lý hồ sơ nhân viên,cán bộ do trưởng phòng tổ chức hành chính
tổng hợp đảm nhận. Trước một khối lượng nhân sự cũng như các yêu cầu đặt ra thì
việc quản lý theo phương pháp thủ công sẽ không thể đáp ứng được, do đó gặp rất
nhiều khó khăn và trở ngại. Nó đòi hỏi phải có nhiều nhân lực, nhiều thời gian và
công sức, mỗi nhân viên của cơ quan thì có một hồ sơ cho nên việc lưu trữ, tìm
kiếm, bổ sung, sửa đổi để đáp ứng yêu cầu không phải là dễ dàng và các thao tác
cập nhật, phân tích thông tin còn thủ công nên nếu số nhân viên tăng thì công việc
sẽ trở lên quá tải và không thể tránh khỏi thiếu sót.
* Đề xuất triển khai phần mềm
Bài toán đặt ra đối với trường Cao Đẳng nghề Âu Lạc là công tác điều hành
cán bộ, thống kê của phòng tổ chức cần phải đựơc xây dựng một phần mềm tin học
với mục đích của chương trình là nhanh chóng , kịp thời, chính xác, tiết kiệm công
sức cho người làm công tác quản lý cán bộ nhằm nâng cao hiệu quả quản lý của
trường, giúp trường hoàn thành nhiệm vụ mới, nâng cao mức sống cho người lao
động. việc giải quyết bài toán đòi hỏi phải có một quá trình phân tích tỉ mỉ và khoa
học nhằm cài đặt một chương trình ứng dụng đưa vào thực tế của Trường Cao Đẳng
nghề Âu Lạc.

25

×