Microsoft Access là hệ quản trị cơ sở dữ liệu trên môi trường
Windows, 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 cho hầu hết 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.
80 trang |
Chia sẻ: lylyngoc | Lượt xem: 2500 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Luận văn Xây dựng hệ thống chương trình quản lý giáo viên, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ược về trường THPT Mỹ Hào………………….. 3
3. Cơ cấu tổ chức của trường THPT Mỹ Hào………… 5
PhầnII: Phân tích và thiết kế hệ thống ............................................. 9
1. Sơ đồ phân cấp chức năng nghiệp vụ của trường………….. 9
2. Biểu đô luồng dữ liệu............................................................ 11
3
2.1 Biểu đồ mức ngữ cảnh……………………………... 11
2.2 Biểu đồ mức đỉnh…………………………………... 12
2.3. Biểu đồ mức dưới đỉnh…………………………….. 13
a. Biều đồ phân rã chức năng “Admin”.......................... 13
b. Biểu đồ phân rã chức năng “Cập nhật......................... 14
c. Biểu đồ phân rã chức năng “Tra cứu”.......................... 15
d. Biểu đồ phân rã chức năng “ Thống kê”....................... 16
PhầnIII: Xây dựng cơ sở dữ liệu……………………………........... 17
1. Mô hình thực thể liên kết…………………………………… 17
2. Mô hình quan hệ CSDL……………………………………. 18
3. Các bảng CSDL…………………………………………….. 19
PhầnIV: Giới thiệu chương trình…………………………………… 25
1. Giao diện chính của chương trình…………………………….26
2. Các Form chức năng của chương trình……………………….31
Phần V: Lựa chọn ngôn ngữ ………………………………………….52
4
PHẦN I
KHẢO SÁT HỆ THỐNG QUẢN LÝ CÁN BỘ
GIÁO VIÊN TRƯỜNG THPT Mỹ Hào
1. Nhiệm vụ và mục tiêu :
a. Nhiệm vụ:
- Tìm hiểu cơ cấu tổ chức và hoạt động giảng dậy của trường
THPT Mỹ hào.
- Khảo sát tình hình thực tế hiện nay của trường THPT Mỹ Hào.
- Áp dụng các kiến thức về Cơ sở dữ liệu, phân tích và thiết kế hệ
thống thông tin quản lý, phần mềm lập trình, để xây dựng chương
trình quản lý Giáo viên trường THPT Mỹ Hào.
b. Mục tiêu :
- Tìm hiểu và nghiên cứu bài toán Phân tích-Thiết kế hệ thống
thông tin quản lý nhân sự trường trung học PT Mỹ hào – Hưng Yên .
Từ đó phân tích thiết kế hệ thống quản lý nhân sự cho trường THPT
Mỹ Hào như cập nhật, bổ sung, tra cứu thông tin của giáo viên trên hệ
thống… một cách nhanh chóng, chính xác hiệu quả mà không phải
vất vả làm việc trên giấy tờ trước đây. Đồng thời hướng phát triển
thêm của hệ thống là trở thành hệ thống không chỉ là quản lý giáo
viên mà cả về quản lý nhân sự của trường THPT mỹ hào
2. Sơ lược về trường THPT Mỹ Hào:
a. Địa chỉ :
- Đương 5-Thi Trấn Bần -Mỹ hào-Hưng Yên.
- Điện thoại : (0321-3)8562261.
- Fax : (0321-3)8568639.
5
b. Quá trình xây dựng và phát triển của trường :
- Được thành lập vào ngày 1 tháng 12 năm 1963 theo quyết định số
5315/QĐ-UB của UBND Tỉnh Hưng Yên, trường THPT Mỹ Hào là trường
công lập đầu tiên của Hưng Yên. Hiện nay do Thầy giáo Nguyễn Văn Phê
làm hiệu trưởng.
- Năm học 1993-1994 nhà trường có 13 lớp bậc THPT và 3 lớp bậc
THCS với tổng số 768 học sinh và 21 nhân viên đều có trình độ từ đại học
trở lên.
- Cho đến nay nhà trường đã có 36 phòng học và gồm nhiều phòng chức
năng
+ 6 phòng học chuyên đề.
+ 3 phòng thực hành và thí nghiệm(Lý, Hoá, Sinh)
+ 1 phòng nghe nhìn.
+ 3 phòng thực hành Tin học.
+ 1 phòng thư viện…
- Hiện nay nhà trường đang tiếp tục xây dưng thêm 2 khu giang dậy
cho giáo viên và học sinh .Dự tính số phòng học tên tới 25 phòng học
.Nhà trường đang phát triển về mọi mặt cả về cơ sở vật chất đến chất
lượng giảng dậy ,khu vui chơi giải trí cho hoc sinh .Số giao viên dậy giỏi
đang tăng lên từng ngày và chất lượng giảng dậy của giáo viên ngày một
nâng cao
- Nhà trường đang thực hiện Ứng dụng công nghệ thông tin vào giảng
dậy cho học sinh như ,giáo trình trực tuyến , sổ liên lạc điện tử , giải đáp
qua website ,tất cả thông tin nhà trường và giáo trình giảng dậy đều được
đưa lên website để học sinh có thể vào tìm hiểu và lấy tài liệu .
- Đặc biệt nhà trường đã được vinh hạnh trở thành trường chuẩn quốc
gia trong thời gian vừa qua nhà trường đã lỗ lực hết mình để trở thành
một ngôi trường có chất lượng giảng dậy cao
6
3. Cơ cấu tổ chức của trường THPT Mỹ Hào :
a. Sơ đồ tổ chức :
7
TRƯỜNG THPT
Mỹ Hào
BIÊN CHẾ HỢP ĐỒNG
Cán bộ quản lý
Giáo viên
Nhân viên
Giáo viên
Nhân viên vụ việc
b. Nghiệp vụ của nhà trường :
- Tổ hành chính : chuyên giải quyết các vấn đề về tiền lương cho nhân
viên trong trường, cũng như thực hiện các hoạt động liên quan đến vấn đề
tài chính mà ban giám hiệu đề xướng.
- Tổ công đoàn: chịu trách nhiệm việc thực hiện tổ chức, tham gia,
quản lý các vấn đề liên quan đến đoàn.
- Tổ bảo vệ : chuyên giải quyết các vấn đề về an ninh trật tự trong nhà
trường
- Tổ tạp vụ : đảm nhiệm việc nấu ăn cho nhân viên, bán thực phẩm cho
học sinh trong trường, bên cạnh đó là việc giữ gìn vệ sinh trong toàn trường.
- Các tổ chuyên môn: chịu trách nhiệm nghiên cứu chuyên ngành của
mình, đồng thời phân công và giảng dạy cho các lớp trong toàn trường.
c. Quản lý nhân sự của trường THPT Mỹ Hào chia ra làm 2 mảng
Biên chế và hợp đồng
8
Biên chế Hợp đồng
+ Cán bộ quản lý
- Hiệu trưởng
- Phó hiệu trưởng
- Chủ tịch công đoàn
- Bí thư chi đoàn
- Tổng phụ trách
+ Nhân viên
- Thư viện
- Kế toán
- Văn phòng
+ Giáo viên
- Tổ toán
- Tổ lý
- Tổ hoá
- Tổ Văn-Sử-Địa
- Tổ GDCD
- Tổ Thể Mỹ KT
+ Nhân viên văn phòng
+ Nhân viên vụ việc
- Bảo vệ
- Giám thị
- Vệ sinh
+ Giáo viên dạy tin học
d. Đặc tả
Hiện nay tại trường THPT Mỹ Hào, phòng văn thư quản lý việc lưu giữ
hồ sơ của nhân viên trong trường. Tức là quản lý theo nguồn lao động bao
gồm đặc điểm về lý lich, nhân sự và lao động. Bên cạnh đó việc tìm kiếm
theo các tiêu chí cụ thể như : tìm theo họ tên, quê quán…
Vào đầu mỗi năm học, nhà trường sẽ đón thêm 1 số giáo viên mới ra
trường về tham gia công tác giảng dạy. Sau đó, dựa vào chuyên môn của
mình, các giáo viên này sẽ được phân bổ về các tổ chuyên môn. Hiệu trưởng
9
sẽ duyệt thông tin lý lịch của từng cán bộ để đưa thêm vào danh sách cán bộ
hiện có của nhà trường.
Trong trường hợp nếu phòng giáo dục không thể điều động kịp thời cho 1
số bộ môn bị thiếu giáo viên, thì nhà trường sẽ hợp đồng với 1 số giáo viên
bên ngoài để có thể đáp ứng đủ nhu cầu của các bộ môn đó (Sẽ không có
trường hợp 1 giáo viên phụ trách 2 chuyên môn như trước đây, vì theo yêu
cầu mới của Bộ GD&ĐT, 1 giáo viên chỉ đảm trách chuyên môn của mình,
nhằm đảm bảo chất lượng dạy và học của giáo viên và học sinh). Tất cả hồ
sơ của các giáo viên này cũng được quản lý như trường hợp của giáo viên
thuộc dạng biên chế của nhà trường. Tức là, hồ sơ được đánh mã số riêng và
sẽ được đưa thêm vào danh sách cán bộ hiện có của nhà trường.
Ngoài việc hợp đồng với 1 số giáo viên, nhà trường phải hợp đồng với 1
số nhân viên như: giám thị, vệ sinh để đáp ứng đầy đủ các nhu cầu cần có
của nhà trường.
Vào cuồi năm học, nhà trường sẽ đưa ra việc thống kê theo 1 số tiêu chí
cụ thể để có thể đưa ra được những đánh giá cơ bản và chính xác nhất về
tình hình nhân sự của nhà trường. Tiêu chí này được đưa ra dựa vào nhu cầu
thực tế, ví dụ như: Thống kê tất cả các cán bộ nhân viên nhà trường, đưa ra
danh sách cán bộ nhân viên theo các điều kiện phù hợp với yêu cầu.
Qua đó, bài toán này được xây dựng dựa trên nhu cầu quản lý hồ sơ nhân
viên của Ban giám hiệu nhà trường, tức là quản lý theo nguồn lao động bao
gồm đặc điểm về lý lịch, nhân sự và lao động. Hệ thống sau khi được xây
dựng sẽ đưa ra thông tin chính xác nhất về hồ sơ nhân viên, giúp tiết kiệm
được thời gian và làm việc hiệu quả.
10
PHẦN II
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
1. Sơ đồ phân cấp chức năng nghiệp vụ của trường :
Hinh :Biểu đồ phân cấp chức năng
11
Công việc quản lý nhân viên của trường THPT Mỹ Hào bao gồm các
chức năng chính là:
- Admin.
- Cập nhật.
- Tra cứu.
- Thống kê.
Chức năng: Admin
- Đăng ký: Người sử dụng phải đăng ký tài khoản, tài khoản
cung cấp sẽ được giới hạn quyền quản lý hệ thống.
- Đăng nhập: Người sử dụng đăng nhập để sử dụng .
Chức năng: Cập nhật hồ sơ
- Cập nhật hồ sơ nhân sự: Chức năng dùng để thêm mới hoặc
thay đổi thông tin trong hồ sơ nhân sự. Thông tin được của
nhân viên khi nhà trường tiếp nhận thì sẽ được đưa vào trong
hồ sơ hệ thống thông qua chức năng này.
- Cập nhật danh mục: Cập nhật danh mục chức vụ công tác, tổ
làm việc...
Chức năng: Tra cứu
- Tìm kiếm theo mã số cán bộ: Tìm kiếm thông tin của nhân
viên theo mã số hồ sơ.
- Tìm kiếm theo họ tên: Tìm kiếm thông tin của nhân viên theo
họ tên.
- Tìm kiếm theo tổ: Tìm kiếm thông tin của nhân viên theo tổ.
- Tìm kiếm theo chức vụ: Tìm kiếm thông tin của nhân viên
theo chức vụ.
Chức năng: Thống kê
- Thống kê theo tổ: Thống kê tất cả những nhân viên thuộc cùng
một tổ
- Thống kê theo chức vụ: Thống kê tất cả những nhân viên có
cùng chức vụ.
12
- Thống kê theo thâm niên: Thống kê tất cả các nhân viên theo
từng khoảng thời gian công tác.
- Thống kê theo quê quán: Thống kê tất cả các nhân viên có
cùng quê quán.
- Thống kê theo yêu cầu: Thống kê tất cả các nhân viên theo
một số yêu cầu cụ thể.
2. Biểu đồ luồng dữ liệu
Biều đồ luồng dữ liệu mức ngữ cảnh
Nhân viên
Ban Giám Hiệu
Quản lý nhân viên
trường THPT Mỹ
Hào
Hồsơ
lý lịch
Trả
HS
Y/C báo
cáo
Báo
cáo
c
Người sử dụng
TT
TT kết quả
13
Biểu đồ luồng dữ liệu mức đỉnh
Người sử dụng
1.Admin
3.Tra cứu
4.Thống
kê, in ấn
2.Cập nhật
Ban giám hiệu
Người sử dụng
Hệ thống
Hồ sơ gviên
Hồ sơ nviên
Đăng nhập
Thông báo
Cập nhật
TT
Yêu cầu
Báo cáo
Yêu cầu
Báo cáo
Điều kiện
Kết quả
Kết quả
14
2.3 Biểu đồ luồng dữ liệu mức dưới đỉnh
a. Biều đồ phân rã chức năng “Admin”
1.1 Đăng ký
Ban giám hiệu
Người sử dụng
1.2 Đăng nhập
Nhập Pass
Thông báo
Hệ thống
Nhập acc
Thông báo
Nhập acc
Thông báo
Thông báo
Nhập Pass
15
b. Biểu đồ phân rã chức năng “Cập nhật
Người sử dụng Người tuyển dụng
2.2. Cập nhật
danh mục
2.1. Cập nhật
hồ sơ nhân sự
Ban giám hiệu
Hồ sơ gviên
Cập
nhật
Cập
nhật
Nộp
hồ sơ
Báo
cáo
thông
tin
Báo cáo
thông tin
16
c. Biểu đồ phân rã chức năng “Tra cứu”
d. Biểu đồ phân rã chức năng “ Thống kê in ấn”
Ban giám hiệu
3.1 Tìm theo
mã số hồ sơ
3.4 Tìm theo
chức vụ
3.2 Tìm theo
họ tên
Hồ sơ Gviên Hồ sơ Gviên
Ban giám hiệu
3.3 Tìm theo
tổ
Ban giám hiệu
Người sử dụng
Yêu cầu
Kết quả Yêu cầu
Kết quả
Yêu cầu
Kết quả
17
Ban giám hiệu
4.1 Thống kê
theo tổ
4.2 Thống kê
theo chức vụ
Hồ sơ nviên Hồ sơ nviên
Ban giám hiệu
4.3 Thống kê
theo thâm niên
Người sử dụng
Yêu cầu
Kết quả Yêu cầu
Kết quả
Yêu cầu
Kết quả
4.4 Thống kê
theo quê quán
4.5 Thống kê
theo yêu cầu
Ban giám hiệu
Hồ sơ nviên
Kết quả
Yêu cầu
18
TrinhDoChuyenMon
MaTDCM
NganhDT
LoaiHinhDT
TruongDT
NienKhoa
HopDongLaoDong
MasoHD
NgayHD
LoaiHD
NgayBD
NgayKT
NgayXL
SoBHXH
SoBHYT
ThamNien
MaTN
ThamNien
To
MaTo
TenTo
Luong
MaLuong
LuongCB
HesoLuong
ChucVu
MaChucVu
TenChucVu
KhenThuong
MaKhenThuong
LyDoKhenThuong
NgayKhenThuong
PHẦN III
XÂY DỰNG CƠ SỞ DỮ LIỆU
1. Mô hình thực thể liên kết
HosoCB
MaCB
HoTen
GioiTinh
NgaySinh
NoiSinh
QueQuan
DanToc
MaTN
MaCV
NgayChuyenCT
QuaTrinhCT
MaTo
MaTDCM
GiaDinh
SoCon
SoCMND
NgayCap
NoiCap
DiaChi
SoDT
DangVien
SoTheDang
NgayVaoDang
NoiVaoDang
MaTDNN
HocHam
MaLuong
MasoHD
MaKhenThuong
MaKyLuat
NgoaiNgu
MaTDNN
TenNN
LoaiTD
KyLuat
MaKyLuat
LyDoKyLuat
HinhThucKyLuat
NgayKyLuat
19
2. Mô hình quan hệ cơ sở dữ liệu
20
3. Các bảng CSDL:
a. Bảng Hồ sơ cán bộ :
Tên trường Kiểu dữ liệu Kích thước Diễn giải
MaCB Text 5
Mã cán bộ-Khoá
chính
HoTen Text 30 Họ tên
Gioitinh Text 5 Giới tính
Ngaysinh Date/Time Ngày sinh
Noisinh Text 50 Nơi sinh
QueQuan Text 50 Quê quán
DanToc Text 20 Dân tộc
MaTN Text 5 Mã thâm niên
MaCV Text 5 Mã chức vụ
NgayChuyenCT Date/Time Ngày chuyển CTác
QuaTrinhCT Memo 10 Quá trình CTác
MaTo Text 5 Mã tổ
MaTDCM Text 5 Mã trình độ CM
GiaDinh Yes/No Gia đình
SoCon Number Số con
SoCMND Text 10 Số CMND
NgayCap Date/Time Ngày cấp
NoiCap Text 50 Nơi cấp
DiaChi Text 50 Địa chỉ
SoDT Text 10 Số điện thoại
DangVien Yes/No Đảng viên
SoTheDang Text 10 Số thẻ đảng
NgayVaoDang Date/Time Ngày vào đảng
21
NoiVaoDang Text 50 Nơi vào đảng
MaTDNN Text 5 Mã trình độ NN
HocHam Text 15 Học hàm
NgayNhanHH Date/Time Ngày nhận học hàm
MaLuong Text 5 Mã lương
MasoHD Text 5 Mã số hợp đồng
LoaiHD Text 50 Loại hợp đồng
NgayHD Date/Time Ngày hợp đồng
NgayBD Date/Time Ngày bắt đầu
NgayKT Date/Time Ngày kết thúc
NgayXL Date/Time Ngày xếp lương
SoBHXH Text 9 Số BHXH
SoBHYT Text 9 Số BHYT
LuongTL Number Lương tháng lĩnh
ThueTN Text 12 Thuế thu nhập
MaKhenThuong Text 5 Mã khen thưởng
MaKyLuat Text 5 Mã kỷ luật
22
b. Bảng hợp đồng lao động :
Tên trường Kiểu dữ liệu Kích thước Diễn giải
MasoHD Text 5
Mã số hợp đồng-
Khoá chính
NgayHD Date/Time Ngày hợp đồng
LoaiHD Text 50 Loại hợp đồng
NgayBD Date/Time Ngày bắt đầu
NgayKT Date/Time Ngày kết thúc
NgayXL Date/Time Ngày xếp lương
SoBHYT Text 9 Số BHYT
SoBHXH Text 9 Số BHXH
c. Bảng thâm niên :
Tên trường Kiểu dữ liệu Kích thước Diễn giải
MaTN Text 5
Mã thâm niên-
Khoá chính
ThamNien Text 50 Thâm niên
d. Bảng chức vụ :
Tên trường Kiểu dữ liệu Kích thước Diễn giải
MaChucVu Text 5
Mã chức vụ-
Khoá chính
TenChucVu Text 50 Tên chức vụ
23
e. Bảng trình độ chuyên môn :
Tên trường Kiểu dữ liệu Kích thước Diễn giải
MaTDCM Text 5
Mã trình độ CM-
Khoá chính
NganhDT Text 50 Ngành đào tạo
LoaiHinhDT Text 50 Loại hình đào tạo
TruongDT Text 50 Trường đào tạo
NienKhoa Text 10 Niên khoá
f. Bảng hệ thống :
Tên trường Kiểu dữ liệu Kích thước Diễn giải
Username Text 25
Tên truy cập-Khoá
chính
Password Text 8 Mật khẩu
Access Yes/No Xem
Update Yes/No Cập nhật
Manage Yes/No Quản trị
Discription Text 30 Diễn giải chi tiết
FullName Text 30 Họ tên đầy đủ
24
g. Bảng tổ :
Tên trường Kiểu dữ liệu Kích thước Diễn giải
MaTo Text 5 Mã tổ-Khoá chính
TenTo Text 50 Tên tổ
h. Bảng lương :
Tên trường Kiểu dữ liệu Kích thước Diễn giải
MaLuong Text 5
Mã lương-Khoá
chính
LuongCB Currency Lương cơ bản
HesoLuong Number Hệ số lương
i. Bảng khen thưởng :
Tên trường Kiểu dữ liệu Kích thước Diễn giải
MaKhenThuong Text 5
Mã khen
thưởng-Khoá
chính
LyDoKhenThuong Text 150
Lý do khen
thưởng
NgayKhenThuong Date/Time
Ngày khen
thưởng
25
j. Bảng kỷ luật :
Tên trường Kiểu dữ liệu Kích thước Diễn giải
MaKyLuat Text 5
Mã kỷ luật-Khoá
chính
LyDoKyLuat Text 150 Lý do kỷ luật
NgayKyLuat Date/Time Ngày kỷ luật
HinhThucKyLuat Text 150
Hình thức kỷ
luật
k. Bảng ngoại ngữ :
Tên trường Kiểu dữ liệu Kích thước Diễn giải
MaTDNN Text 5
Mã trình độ NN-
Khoá chính
TenNN Text 20 Tên ngoại ngữ
LoaiTD Text 50 Loại trình độ
l. Bảng tỉnh thành :
Tên trường Kiểu dữ liệu Kích thước Diễn giải
ID AutọNumber ID-Khoá chính
TinhThanh Text 50 Tỉnh thành
26
m. Bảng dân tộc :
Tên trường Kiểu dữ liệu Kích thước Diễn giải
ID AutọNumber ID-Khoá chính
DanToc Text 50 Dân tộc
n. Bảng học hàm :
Tên trường Kiểu dữ liệu Kích thước Diễn giải
ID AutọNumber ID-Khoá chính
HocHam Text 50 Học hàm
27
Phần IV
Giới thiệu chương trình
I. Giao diện chính của chương trình:
Code Form :
Option Explicit
Const HH_DISPLAY_TOPIC = &H0
Const HH_HELP_CONTEXT = &HF
28
Private Declare Function HtmlHelp Lib "HHCtrl.ocx" Alias
"HtmlHelpA" (ByVal hwndCaller As Long, _ByVal pszFile As
String, _
ByVal uCommand As Long, _dwData As Any) As Long
Private Sub MDIForm_Unload(Cancel As Integer)
'Giai phong doi tuong ADO chinh
Set MainRS = Nothing
MainCN.Close
Set MainCN = Nothing
End Sub
Private Sub mnuCap_nhat_chuc_cu_Click()
If frmCapNhat.WindowState = 1 Then
frmCapNhat.WindowState = 0
Else
frmCapNhat.SSTab.Tab = 0
ShowForm frmCapNhat
End If
End Sub
Private Sub mnuCap_nhat_ky_luat_Click()
mnuCap_nhat_chuc_cu_Click
frmCapNhat.SSTab.Tab = 7
End Sub
Private Sub mnuCap_nhat_luong_Click()
mnuCap_nhat_chuc_cu_Click
frmCapNhat.SSTab.Tab = 5
End Sub
29
Private Sub mnuCap_nhat_thong_tin_khen_thuong_Click()
mnuCap_nhat_chuc_cu_Click
frmCapNhat.SSTab.Tab = 6
End Sub
Private Sub mnuCap_nhat_To_Click()
mnuCap_nhat_chuc_cu_Click
frmCapNhat.SSTab.Tab = 3
End Sub
Private Sub mnuCap_nhat_tinh_thanh_Click()
mnuCap_nhat_chuc_cu_Click
frmCapNhat.SSTab.Tab = 2
End Sub
Private Sub mnuCap_nhat_trinh_do_chuyen_mon_Click()
mnuCap_nhat_chuc_cu_Click
frmCapNhat.SSTab.Tab = 4
End Sub
Private Sub mnuCap_nhat_trinh_do_ngoai_ngu_Click()
mnuCap_nhat_chuc_cu_Click
frmCapNhat.SSTab.Tab = 1
End Sub
Private Sub mnuDang_nhap_he_thong_Click()
ShowForm frmDangNhap, 1
End Sub
30
Private Sub mnuDangxuat_Click()
If (MsgBox("Ban co chac chan muon quay tro lai man hinh Lua
chon ?" & vbCrLf, vbYesNo + vbQuestion, Me.Caption) = vbNo)
Then
Exit Sub
Else
frmluachon.Show
frmMDI.Visible = False
End If
End Sub
Private Sub mnuhuong_dan_Click()
HtmlHelp 0, "C:\QLNS\help.chm", HH_DISPLAY_TOPIC, 0
End Sub
Private Sub mnuLoai_bo_nguoi_su_dung_Click()
ShowForm frmThemBotQuyenSuDung, 1
End Sub
Private Sub mnuThay_doi_mat_khau_Click()
ShowForm frmThayMatKhau, 1
End Sub
Private Sub mnuThay_doi_quyen_su_dung_Click()
ShowForm frmThemBotQuyenSuDung, 1
End Sub
'Quan ly ho so
Private Sub mnuThem_ho_so_Click()
If frmHoso.WindowState = 1 Then
frmHoso.WindowState = 0
31
Else
frmHoso.cmdXoa.Visible = False
frmHoso.cmdSua.Visible = False
frmHoso.cmdThem.Visible = True
ShowForm frmHoso
End If
End Sub
Private Sub mnuThoat_CT_Click()
If (MsgBox("Ban co chac chan muon thoat khoi chuong trinh ?"
& vbCrLf, vbYesNo + vbQuestion, Me.Caption) = vbNo) Then
Exit Sub
Else
End
End If
End Sub
Private Sub mnuthong_tin_ct_Click()
ShowForm frmAbout
End Sub
Private Sub mnuTim_kiem_Click()
frmTimKiem.Show
End Sub
Private Sub mnuXoa_Ho_so_Click()
If frmHoso.WindowState = 1 Then
Else
frmHoso.cmdXoa.Visible = True
frmHoso.cmdSua.Visible = False
frmHoso.cmdThem.Visible = False
ShowForm frmHoso
32
End If
End Sub
Private Sub mnuSua_ho_so_Click()
If frmHoso.WindowState = 1 Then
frmHoso.WindowState = 0
Else
frmHoso.cmdSua.Visible = True
frmHoso.cmdThem.Visible = False
frmHoso.cmdXoa.Visible = False
ShowForm frmHoso
End If
End Sub
Private Sub mnuThem_nguoi_su_dung_Click()
ShowForm frmThemNguoiSuDung, 1
End Sub
Private Sub mnuThoat_Click()
If (MsgBox("Ban co chac chan muon thoat khoi chuong trinh ?" &
vbCrLf, vbYesNo + vbQuestion, Me.Caption) = vbNo) Then
Exit Sub
Else
End
End If
End Sub
Private Sub mnuThong_ke_tto_Click()
If frmThongKe.WindowState = 1 Then
frmThongKe.WindowState = 0
Else
frmThongKe.SSTab.Tab = 0
33
frmThongKe.Left = (frmMDI.ScaleWidth -
frmThongKe.Width) / 2
frmThongKe.Top = 200
frmThongKe.Show
End If
End Sub
Private Sub mnuThong_ke_theo_chuc_vu_Click()
mnuThong_ke_tto_Click
frmThongKe.SSTab.Tab = 1
End Sub
Private Sub mnuThong_ke_theo_cap_bac_Click()
mnuThong_ke_tto_Click
frmThongKe.SSTab.Tab = 2
End Sub
Private Sub mnuThong_ke_theo_que_quan_Click()
mnuThong_ke_tto_Click
frmThongKe.SSTab.Tab = 3
End Sub
Private Sub mnuThong_ke_theo_yeu_cau_Click()
mnuThong_ke_tto_Click
frmThongKe.SSTab.Tab = 4
End Sub
Private Sub mnuXem_ho_so_Click()
If frmXemHoso.WindowState = 1 Then
frmXemHoso.WindowState = 0
Else
ShowForm frmXemHoso
End If
34
End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As
MSComctlLib.Button)
Select Case Button.Key
Case "Them"
mnuThem_ho_so_Click
Case "Xem"
mnuXem_ho_so_Click
Case "Sua"
mnuSua_ho_so_Click
Case "Xoa"
mnuXoa_Ho_so_Click
Case "Cap nhat"
mnuCap_nhat_chuc_cu_Click
Case "Tim kiem"
mnuTim_kiem_Click
Case "Thong ke"
mnuThong_ke_tto_Click
Case "Them user"
mnuThem_nguoi_su_dung_Click
Case "Help"
mnuhuong_dan_Click
End Select
End Sub
35
II. Các Form chức năng của chương trình:
1. Form: Lựa chọn:
Form có chức năng lựa chon như tạo tài khoản , đăng nhập bằng tài
khoản của mình và thóat khỏi hệ thống
2. Form: Tạo tài khoản mới ( Quyền hạn chỉ được Xem )
Form tạo tài khoản cho người sử dụng và thiết lập quyền hạn của người
sử dụng trong form có các quyền hạn như: xem, cập nhật , và quản trị hệ
thống nhưng quyền hạn cập nhật và quản trị hệ thống phải đươc Admin cấp
thì mới được phép nếu đăng ký bình thường thì chỉ được phép xem.
36
Code form:
Option Explicit
Dim ketnoi As Boolean
Dim MainCN As New ADODB.Connection, strCNString As
String
Dim MainRS As New ADODB.Recordset
Dim txt As String
Private Sub cmdGhi_Click()
Dim Trong As Boolean
Trong = (txtPassword.Text = "") Or (txtUserName.Text = "")
_
Or (txtFullName.Text = "") Or (txtDiscription.Text =
"")
If Trong Then
ShowMSG "Ph¶i nhËp ®Çy ®ñ c¸c th«ng tin", 2
txtPassword.SetFocus
Exit Sub
End If
'Kiem tra xem co trung mat khau hay khong
Do While Not MainRS.EOF
If MainRS.Fields("UserName").Value = txtUserName.Text
Then
ShowMSG "Trïng tµi kho¶n, nhËp tµi kho¶n kh¸c", 2
MainRS.MoveFirst
txtPassword.SetFocus
Exit Sub
End If
37
MainRS.MoveNext
Loop
MainRS.AddNew
MainRS.Fields("UserName").Value = txtUserName.Text
MainRS.Fields("Password").Value = txtPassword.Text
MainRS.Fields("FullName").Value = txtFullName.Text
MainRS.Fields("Discription").Value = txtDiscription.Text
MainRS.Fields("Access").Value = chkXem.Value
MainRS.Fields("Update").Value = chkCapNhat.Value
MainRS.Fields("Manage").Value =
chkQuanTriHeThong.Value
MainRS.Update
ShowMSG "§· thªm ngêi dïng thµnh c«ng", 1
strCNString = "Data Source=" & App.Path & "\QLNS.mdb"
End Sub
Private Sub cmdlamlai_Click()
txtUserName.Text = ""
txtPassword.Text = ""
txtFullName.Text = ""
txtDiscription.Text = ""
cmdlamlai.Enabled = False
cmdGhi.Enabled = False
chkXem.Enabled = False
End Sub
Private Sub cmdThoat_Click()
txtUserName.Text = ""
txtPassword.Text = ""
txtFullName.Text = ""
txtDiscription.Text = ""
38
frmluachon.Show
frmThemnguoidung2.Visible = False
chkXem.Enabled = False
cmdlamlai.Enabled = False
cmdGhi.Enabled = False
End Sub
Private Sub Form_Load()
strCNString = "Data Source=" & App.Path & "\QLNS.mdb"
MainCN.Provider = "Microsoft Jet 4.0 OLE DB Provider"
MainCN.ConnectionString = strCNString
MainCN.Open
'Open recordsource
MainRS.Open "Select * from HeThong", MainCN,
adOpenDynamic, adLockOptimistic
chkCapNhat.Enabled = False
chkQuanTriHeThong.Enabled = False
cmdGhi.Enabled = False
cmdlamlai.Enabled = False
chkXem.Enabled = False
End Sub
Private Sub Form_Unload(Cancel As Integer)
MainRS.Close
End Sub
Private Sub txtDiscription_Change()
cmdGhi.Enabled = True
cmdlamlai.Enabled = True
chkXem.Enabled = True
End Sub
39
3. Form: Đăng nhập vào hệ thống
Đăng nhập bằng tài khoản của mình đã tạo tài khoản ở form toại tài
khoản
4. Form: Thay đổi mật khẩu:
5. Form: Thêm người dùng ( dành cho admin )
Form này dành cho admin ,admin có quyền thiết lập các quyền hạn cho
các thành viên đăng ký như quyền cập nhật và quyền quản trị hệ thống hoặc
cũng có thể xóa tài khoản của thành viên bằng cách không cho quyền hạn
nào
40
Code form:
Option Explicit
Private Sub cmdGhi_Click()
Dim Trong As Boolean
Trong = (txtPassword.Text = "") Or (txtUserName.Text =
"")_Or (txtFullName.Text = "") Or (txtDiscription.Text = "")
If Trong Then
ShowMSG "Ph¶i nhËp ®Çy ®ñ c¸c th«ng tin", 2
txtPassword.SetFocus
Exit Sub
End If
'Kiem tra xem co trung mat khau hay khong
Do While Not MainRS.EOF
If MainRS.Fields("UserName").Value =
txtUserName.Text Then
ShowMSG "Trïng tµi kho¶n, nhËp tµi kho¶n kh¸c", 2
MainRS.MoveFirst
txtPassword.SetFocus
Exit Sub
41
End If
MainRS.MoveNext
Loop
MainRS.AddNew
MainRS.Fields("UserName").Value = txtUserName.Text
MainRS.Fields("Password").Value = txtPassword.Text
MainRS.Fields("FullName").Value = txtFullName.Text
MainRS.Fields("Discription").Value = txtDiscription.Text
MainRS.Fields("Access").Value = chkXem.Value
MainRS.Fields("Update").Value = chkCapNhat.Value
MainRS.Fields("Manage").Value =
chkQuanTriHeThong.Value
MainRS.Update
ShowMSG "§· thªm ngêi dïng thµnh c«ng", 1
End Sub
Private Sub cmdThoa_Click()
Unload Me
End Sub
Private Sub Form_Load()
Set MainRS = New ADODB.Recordset
MainRS.Source = "HeThong"
MainRS.LockType = adLockPessimistic
Set MainRS.ActiveConnection = MainCN
MainRS.Open
End Sub
Private Sub Form_Unload(Cancel As Integer)
MainRS.Close
End Sub
42
6. Loại bỏ và thêm bớt người dùng ( dành cho admin )
Form có chức năng dành cho Admin như, sửa, thêm, xóa các thành viên
đồng thời cũng thết lập quyền hạn thành viên hoặc cũng có thể thay đổi mật
khẩu của thành viên , thông tin của tài khoản cuat thành viên
Code form :
Option Explicit
Private Sub Form_Load()
Dim i As Integer
Set MainRS = New ADODB.Recordset
MainRS.Source = "HeThong"
MainRS.LockType = adLockPessimistic
Set MainRS.ActiveConnection = MainCN
MainRS.Open
Do While Not MainRS.EOF
lstUserName.List(i) = MainRS.Fields("UserName").Value
43
i = i + 1
MainRS.MoveNext
Loop
lstUserName.ListIndex = 0
End Sub
Private Sub lstUserName_Click()
fraQuyenSuDung.Enabled = False
txtPassword.Enabled = False
txtFullName.Enabled = False
txtDiscription.Enabled = False
Set MainRS = New ADODB.Recordset
MainRS.Source = " SELECT * FROM HeThong" _
& " WHERE UserName=" & "'" &
lstUserName.List(lstUserName.ListIndex) & "'"
MainRS.LockType = adLockPessimistic
Set MainRS.ActiveConnection = MainCN
MainRS.Open
If MainRS.Fields("Access").Value Then
chkXem.Value = 1
Else
chkXem.Value = 0
End If
If MainRS.Fields("Update").Value Then
chkCapNhat.Value = 1
Else
chkCapNhat.Value = 0
End If
If MainRS.Fields("Manage").Value Then
chkQuanTriHeThong.Value = 1
44
Else
chkQuanTriHeThong.Value = 0
End If
txtPassword.text = MainRS.Fields("Password").Value
txtFullName.text = MainRS.Fields("FullName").Value
txtDiscription.text = MainRS.Fields("Discription").Value
End Sub
Private Sub cmdThem_Click()
Unload Me
ShowForm frmThemNguoiSuDung, 1
End Sub
Private Sub cmdThoat_Click()
Unload Me
End Sub
Private Sub cmdSua_Click()
fraQuyenSuDung.Enabled = True
txtPassword.Enabled = True
txtFullName.Enabled = True
txtDiscription.Enabled = True
txtPassword.SetFocus
End Sub
Private Sub cmdGhi_Click()
MainRS.Fields("Access").Value = chkXem.Value
MainRS.Fields("Update").Value = chkCapNhat.Value
MainRS.Fields("Manage").Value =
chkQuanTriHeThong.Value
45
MainRS.Fields("Password").Value = txtPassword.text
MainRS.Update
fraQuyenSuDung.Enabled = False
txtPassword.Enabled = False
txtFullName.Enabled = False
txtDiscription.Enabled = False
End Sub
Private Sub cmdXoa_Click()
ShowMSG "Cã ch¾c ch¾n muèn xo¸ ?", 3
If MsgResult = 1 Then
MainRS.Delete
lstUserName.RemoveItem lstUserName.ListIndex
lstUserName.ListIndex = 0
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
MainRS.Close
End Sub
Private Sub txtDiscription_GotFocus()
SelectTextBox txtDiscription
End Sub
Private Sub txtFullName_GotFocus()
SelectTextBox txtFullName
End Sub
46
7. Form: Xem hồ sơ
Qua form này ta có thể xem đầy đủ thông tin của cán bộ giáo viên trong
trường như họ tên giới tính , ngày sinh , quê quán địa chỉ …. Đồng thời liệt
kê tất cả các giáo viên trong trường
Code form :
Option Explicit
Dim MaCB As String
Dim HoTen As String
Private Sub cmdIn_Click()
ShowHoso Data.Recordset.Fields(0)
End Sub
Private Sub cmdMove_Click(Index As Integer)
Select Case Index
47
Case 0
Data.Recordset.MoveFirst
Case 1
Data.Recordset.MovePrevious
If Data.Recordset.BOF Then Data.Recordset.MoveNext
Case 2
Data.Recordset.MoveNext
If Data.Recordset.EOF Then
Data.Recordset.MovePrevious
Case 3
Data.Recordset.MoveLast
End Select
End Sub
Private Sub cmdThoat_Click()
Unload Me
End Sub
Private Sub DBCombo_Change()
Dim i As Integer
Data.Recordset.MoveFirst
Data.Recordset.FindNext "MaCB LIKE '" &
Trim(DBCombo.Text) & "*'"
End Sub
Private Sub DBList_Click()
Data.Recordset.FindNext "HoTen= '" & DBList.Text & "'"
If Data.Recordset.NoMatch Then
Data.Recordset.FindPrevious "HoTen= '" & DBList.Text &
"'"
End If
End Sub
48
Private Sub Form_Load()
Data.DatabaseName = App.Path & "\qlns.mdb"
Data.RecordSource = "HosoCB"
End Sub
8. Form: Thêm, Sửa, Xoá hồ sơ
Form thêm, sửa ,xóa hồ sơ giáo viên và thêm thông tin khác như :quá
trình công tác , quá trình đào tạo , hợp đồng lao động ,khên thưởng ,kỷ luật
,đảng .Nếu muốn bất kỳ thông tin nào của giáo viên ta có thể nhấn nút sửa
giáo viên hoặc thêm mới giáo viên
49
Form sửa :
Form xóa :
50
Form Thêm :
Code form:
Option Explicit
Dim dangvien As Integer
Dim sothedang As String
Dim ngayvaodang As Date
Dim noivaodang As String
Dim Phong As String
Dim chucvu As String
51
Dim capbac As String
Dim quaTrinhCT As String
Dim ngayChuyenCT As Date
Dim Luong As String
Dim MaTDCM As String
Dim MaKyLuat As String
Dim MaKhenThuong As String
Private Sub cmdCongTac_Click()
'Luu gia tri de neu click thoat thi cap nhat lai
Phong = DBCombo(0).Text
chucvu = DBCombo(1).Text
capbac = DBCombo(2).Text
quaTrinhCT = Text(8).Text
ngayChuyenCT = DTPicker(3).Value
Luong = Combo(5).Text
fraCongTac.Visible = True
fraCaNhan.Visible = False
fraDang.Visible = False
fraCongTac.Top = 0
fraCongTac.Left = 0
frmHoso.Height = fraCongTac.Height + 420
frmHoso.Width = fraCongTac.Width + 100
End Sub
Private Sub cmdChuyenMon_Click()
fraTTK.Visible = False
'Luu gia tri
MaTDCM = DBComboMaTDCM.Text
fraTDCM.Visible = True
52
fraCaNhan.Visible = False
fraDang.Visible = False
fraCongTac.Visible = False
fraTDCM.Top = 0
fraTDCM.Left = 0
frmHoso.Height = fraTDCM.Height + 420
frmHoso.Width = fraTDCM.Width + 80
DataTDCM.Recordset.MoveFirst
DataTDCM.Recordset.FindNext "MaTDCM='" &
DBComboMaTDCM.Text & "'"
DataTDNN.Recordset.MoveFirst
DataTDNN.Recordset.FindNext "MaTDNN='" &
DBComboMaTDNN.Text & "'"
End Sub
Private Sub cmdhdld_Click()
fraTTK.Visible = False
'Luu gia tri
fraHDLD.Visible = True
fraCaNhan.Visible = False
fraDang.Visible = False
fraCongTac.Visible = False
fraTDCM.Visible = False
fraHDLD.Top = 0
fraHDLD.Left = 0
frmHoso.Height = fraHDLD.Height + 420
frmHoso.Width = fraHDLD.Width + 80
End Sub
53
Private Sub cmdKT_Click()
fraTTK.Visible = False
'Luu gia tri
MaKhenThuong = DBComboMaKhenThuong.Text
fraKhenThuong.Visible = True
fraCaNhan.Visible = False
fraDang.Visible = False
fraCongTac.Visible = False
fraKyLuat.Visible = False
fraKhenThuong.Top = 0
fraKhenThuong.Left = 0
frmHoso.Height = fraKhenThuong.Height + 420
frmHoso.Width = fraKhenThuong.Width + 80
DataKT.Recordset.MoveFirst
DataKT.Recordset.FindNext "MaKhenThuong='" &
DBComboMaKhenThuong.Text & "'"
End Sub
Private Sub cmdKL_Click()
fraTTK.Visible = False
'Luu gia tri
MaKyLuat = DBComboMaKyLuat.Text
fraKyLuat.Visible = True
fraCaNhan.Visible = False
fraDang.Visible = False
fraCongTac.Visible = False
fraKhenThuong.Visible = False
fraKyLuat.Top = 0
fraKyLuat.Left = 0
54
frmHoso.Height = fraKyLuat.Height + 420
frmHoso.Width = fraKyLuat.Width + 80
DataKL.Recordset.MoveFirst
DataKL.Recordset.FindNext "MaKyLuat='" &
DBComboMaKyLuat.Text & "'"
End Sub
9. Form: Cập nhật hệ thống
Cập nhật thêm thông tin các bảng như :chuyên môn ,lương ,khen thưởng
, kỷ luật ,chức vụ , ngoại ngữ , thỉnh thành , tổ hoặc có thể sửa , xóa các
thông tin .Mỗi giáo viên khi nhận công việc thì đều được phân công vào
chuyên ngành của mình và khi được nhận nhiệm vụ giảng dạy thì đều có
mức lương nhất định trong đó bảng lương sẽ cập nhật các mức lương nhất
định ,đối với các thông tin khác cũng như vậy .
55
Code form:
Option Explicit
Private Const Allow = 1
Private Const UnAllow = 2
Private Sub cmdBo_Click()
Data.Recordset.CancelUpdate
UnAllowUpdate
cmdBo.Enabled = False
cmdXoa.Enabled = True
cmdThem.Enabled = True
cmdSua.Enabled = True
End Sub
Private Sub cmdGhi_Click()
On Error GoTo ErrorHandler
Data.Recordset.Update
UnAllowUpdate
Exit Sub
ErrorHandler:
If Err = 3022 Then
ShowMSG "Trïng m·, nhËp m· kh¸c", 1
End If
End Sub
Private Sub DBGrid_Click()
UnAllowUpdate
End Sub
Private Sub Form_Load()
UnAllowUpdate
Data.DatabaseName = App.Path & "\qlns.mdb"
56
ChoiseTable
End Sub
Private Sub cmdBack_Click()
UnAllowUpdate
Data.Recordset.MovePrevious
If Data.Recordset.BOF Then Data.Recordset.MoveNext
End Sub
Private Sub cmdNext_Click()
UnAllowUpdate
Data.Recordset.MoveNext
If Data.Recordset.EOF Then Data.Recordset.MovePrevious
End Sub
Private Sub cmdFirst_Click()
Data.Recordset.MoveFirst
End Sub
Private Sub cmdLast_Click()
Data.Recordset.MoveLast
End Sub
Private Sub cmdSua_Click()
AllowUpdate
GotFocus
Data.Recordset.Edit
cmdXoa.Enabled = False
cmdThem.Enabled = False
End Sub
Private Sub cmdThem_Click()
AllowUpdate
GotFocus
Data.Recordset.AddNew
57
cmdXoa.Enabled = False
cmdSua.Enabled = False
End Sub
Private Sub cmdThoat_Click()
Unload Me
End Sub
Private Sub cmdXoa_Click()
ShowMSG "Cã ch¾c ch¾n muèn xo¸ kh«ng?", 3
If MsgResult = 1 Then
Data.Recordset.Delete
Data.Refresh
End If
End Sub
Private Sub SSTab_Click(PreviousTab As Integer)
UnAllowUpdate
Data.DatabaseName = App.Path & "\qlns.mdb"
ChoiseTable
End Sub
'=========================================
'Danh sach cac ham bo xung
'=========================================
Public Sub AllowUpdate()
Dim i As Integer
For i = 0 To 22
text(i).Enabled = True
Next
cmdGhi.Enabled = True
cmdBo.Enabled = True
Moving UnAllow
58
End Sub
Public Sub UnAllowUpdate()
Dim i As Integer
For i = 0 To 22
text(i).Enabled = False
Next
cmdXoa.Enabled = True
cmdThem.Enabled = True
cmdSua.Enabled = True
cmdGhi.Enabled = False
cmdBo.Enabled = False
Moving Allow
End Sub
Public Function isEmpty()
Dim i As Integer
For i = 0 To 22
Next
End Function
Public Sub ChoiseTable()
Select Case SSTab.Tab
Case 0
Data.RecordSource = "ChucVu"
Data.Refresh
Case 1
Data.RecordSource = "NgoaiNgu"
Data.Refresh
Case 2
Data.RecordSource = "TinhThanh"
Data.Refresh
59
Case 3
Data.RecordSource = "To"
Data.Refresh
Case 4
Data.RecordSource = "TrinhDoChuyenMon"
Data.Refresh
Case 5
Data.RecordSource = "Luong"
Data.Refresh
Case 6
Data.RecordSource = "KhenThuong"
Data.Refresh
Case 7
Data.RecordSource = "Kyluat"
Data.Refresh
End Select
End Sub
Private Sub Text_GotFocus(Index As Integer)
SelectTextBox text(Index)
End Sub
Public Sub Moving(AllowMove As Integer)
If AllowMove = Allow Then
cmdFirst.Enabled = True
cmdBack.Enabled = True
cmdNext.Enabled = True
cmdLast.Enabled = True
End If
If AllowMove = UnAllow Then
cmdFirst.Enabled = False
60
cmdBack.Enabled = False
cmdNext.Enabled = False
cmdLast.Enabled = False
End If
End Sub
Public Sub GotFocus()
Select Case SSTab.Tab
Case 0
text(0).SetFocus
Case 1
text(2).SetFocus
Case 2
text(5).SetFocus
Case 3
text(6).SetFocus
Case 4
text(8).SetFocus
Case 5
text(13).SetFocus
Case 6
text(16).SetFocus
Case 7
text(19).SetFocus
End Select
End Sub
61
10. Form: Tìm kiếm
Form có chức năng tìm kiếm thông tin của giáo viên trong trường Như
tìm kiếm theo mã số cán bộ , họ tên , tên tổ hoặc chức vụ
Code form :
Option Explicit
Dim St As String
Private Sub cmdThoat_Click()
Unload frmTimKiem
End Sub
Private Sub cmdTimkiem_Click()
Dim maso, ten, mato, machucvu
maso = "%" + txtMaso.text + "%"
ten = "%" + txtHoten.text + "%"
mato = "%" + txtTo.text + "%"
62
machucvu = "%" + txtChucvu.text + "%"
SQL1 maso, ten, mato, machucvu
Devm.Commands.Item("QTimkiem").CommandText = St
dgrdLke.DataMember = "QTimkiem"
If Devm.rsQTimkiem.RecordCount = 0 Then
ShowMSG "Kh«ng t×m thÊy ngêi nµo", 1
End If
Devm.rsQTimkiem.Close
End Sub
Public Sub SQL1(maso, ten, mato, machucvu)
St = ""
St = St + "Select MaCB,HoTen,NgaySinh,QueQuan,MaTo,MaCV"
St = St + " From HosoCB"
St = St + " Where MaCB Like " + """" + maso + """"
St = St + " and HoTen Like " + """" + ten + """"
St = St + " and MaTo Like " + """" + mato + """"
St = St + " and MaCV Like " + """" + machucvu + """"
End Sub
Private Sub Command1_Click()
frmCapNhat.Height = 6945
End Sub
Private Sub dgrdLke_Click()
End Sub
63
11.Form: Thống kê báo cáo
Form có chức năng thông kê, liệt kê tất cả các thông tin cần thiết của
giáo viên như liệt kê theo tổ làm việc ,chức vụ, thâm niên , quê quán ,yêu
cầu .Sau khi lựa chọn thông tin liệt kê chúng ta có thể in thông tin đó ra .
Mô tả :Khi muốn danh sách các giáo viên của một tổ nào hay của một
tình nào ,chức vụ nào ,thì ta không cần phải đánh từng nhân viên một mà ta
chỉ cần chọn thông tin của các giáo viên đó để ta liệt kê ra và in ra danh sách
64
Một số Danh sách thông kê :
65
Code form :
Option Explicit
Dim strSQL As String
Dim strSQLtemp As String
Private Sub cmdIn_Click()
ShowDanhSach strSQL
End Sub
Private Sub cmdLietKe_Click()
Dim stHT, stQQ, stDT, stTo, stCV, stTN, stGT, stDV,
stNS, stHH, stNN As String
'Que quan============================
If cboQQ.text "" Then stQQ = " AND QueQuan='" &
cboQQ.text & "'"
'Dan toc==============================
If cboDT.text "" Then stDT = " AND DanToc = '" &
cboDT.text & "'"
'To============================
If cboTo.text "" Then stTo = " AND To.TenTo= " & "'"
& cboTo.text & "'"
'Chuc vu==============================
If cboCV.text "" Then stCV = " AND ChucVu.TenCV=
" & "'" & cboCV.text & "'"
'Cap bac===============================
If cboTNien.text "" Then stTN = " AND
ThamNien.ThamNien= " & "'" & cboTNien.text & "'"
'Hoc ham==============================
66
If cboHH.text "" Then stHH = " AND
HosoCB.HocHam= " & "'" & cboHH.text & "'"
'Ngoai ngu==============================
If cboNN.text "" Then stNN = " AND
NgoaiNgu.TenNN= " & "'" & cboNN.text & "'"
'Gioi tinh==============================
Select Case cboGT.ListIndex
Case 1, 2
stGT = " AND GioiTinh ='" & cboGT.text & "'"
End Select
'Dang vien==============================
Select Case cboDV.ListIndex
Case 0
stDV = ""
Case 1
stDV = " AND DangVien "
Case 2
stDV = " AND (NOT DangVien) "
End Select
'Nam sinh================================
If txtNS.text "" Then
Select Case cboNS.ListIndex
Case 0
stNS = " AND YEAR(NgaySinh) = " & txtNS.text
Case 1
stNS = " AND YEAR(NgaySinh) > " & txtNS.text
Case 2
stNS = " AND YEAR(NgaySinh) < " & txtNS.text
End Select
67
End If
strSQL = strSQLtemp & stTo & stCV & stDT & stTN &
stQQ & stHH & stNN & stGT & stDV & stNS
Data.Refresh
Data.RecordSource = strSQL
Data.Refresh
If Not (Data.Recordset.EOF And Data.Recordset.BOF)
Then
frmThongKe.Height = 7380
Data.Recordset.MoveLast
ShowMSG "Cã " & Str(Data.Recordset.RecordCount) &
" ngêi ®îc t×m thÊy ", 1
Else
frmThongKe.Height = 3945
ShowMSG "Kh«ng t×m thÊy ngêi nµo ", 1
End If
End Sub
Private Sub cmdThoat_Click()
Unload Me
End Sub
Private Sub cmdTimMoi_Click()
cboTo.text = ""
cboCV.text = ""
cboTNien.text = ""
cboQQ.text = ""
cboNN.text = ""
cboCM.text = ""
cboDT.text = ""
cboHH.text = ""
68
cboGT.ListIndex = 0
cboDV.ListIndex = 0
cboNS.ListIndex = 0
txtNS.text = ""
End Sub
Private Sub DBGrid_DblClick()
ShowHoso Data.Recordset.Fields(0).Value
End Sub
Private Sub Form_Load()
Data.DatabaseName = App.Path & "\qlns.mdb"
LoadFieldToCombo "To", "TenTo", cboTo, False
LoadFieldToCombo "ChucVu", "TenCV", cboCV, False
LoadFieldToCombo "ThamNien", "ThamNien",
cboTNien, False
LoadFieldToCombo "TinhThanh", "TinhThanh", cboQQ,
False
LoadFieldToCombo "NgoaiNgu", "TenNN", cboNN, False
LoadFieldToCombo "DanToc", "DanToc", cboDT, False
LoadFieldToCombo "HocHam", "HocHam", cboHH, False
LoadFieldToCombo "TrinhDoChuyenMon", "NganhDT",
cboCM, False
AddItemIntoComboBox cboGT, "TÊt c¶", "Nam", "N÷"
AddItemIntoComboBox cboDV, "TÊt c¶", "Cã", "Kh«ng"
AddItemIntoComboBox cboNS, "B»ng", "Trªn", "Díi"
strSQLtemp = "SELECT MaCB as `M· sè`," _
& " HoTen as `Hä tªn`," _
& " NgaySinh as `Ngµy sinh`," _
69
& " QueQuan as `Quª qu¸n` ," _
& " DanToc as `D©n téc`," _
& " TenTo as `Tªn tæ`, " _
& " TenCV as `Chøc vô` ," _
& " ThamNien as `Th©m niªn` " _
& " FROM HosoCB, To, ChucVu,
ThamNien,NgoaiNgu " _
& " WHERE (HosoCB.MaTo=To.MaTo) " _
& " AND
(HosoCB.MaCV=ChucVu.MaCV)"_
& " AND
(HosoCB.MaTN=ThamNien.MaTN) " _
& " AND
(HosoCB.MaTDNN=NgoaiNgu.MaTDNN) "
strSQL = strSQLtemp
End Sub
'Load vµo c¸c cboGT,cboNS,cboDV
Public Sub AddItemIntoComboBox(ComboBoxName As
ComboBox, str1 As String, str2 As String, str3 As String)
ComboBoxName.AddItem str1
ComboBoxName.AddItem str2
ComboBoxName.AddItem str3
ComboBoxName.ListIndex = 0
End Sub
Private Sub SSTab_DblClick()
End Sub
Private Sub txtNS_Change()
If Len(txtNS.text) = 4 Then cmdLietKe.SetFocus
If Not IsNumeric(txtNS.text) And (txtNS.text "") Then
70
ShowMSG "Nhap so,vi du 1980", 2
txtNS.SetFocus
End If
If txtNS.text "" Then
cboNS.Enabled = True
Else
cboNS.Enabled = False
End If
End Sub
Private Sub txtNS_GotFocus()
SelectTextBox txtNS
End Sub
11. Form: Giới thiệu
Giới thiệu chương trình quản lý giáo viên trương THPT Mỹ Hào ,Tên sinh
viên thực hiện, Hiaos viên hướng dẫn
71
Code form :
Option Explicit
Dim i As Integer
Private Sub cmdThoat_Click()
Unload Me
End Sub
Private Sub Form_Load()
i = 1
Me.Text1.Enabled = False
Me.Text1.text = " Ch¬ng tr×nh qu¶n lý nh©n sù trêng
THPT My Hao - Chóng em xin ch©n thµnh c¶m ¬n sù gióp ®ì cña thay
Tran Van Loc gióp ®ì em hoµn thµnh ch¬ng tr×nh ! "
Me.Timer1.Interval = 80
End Sub
Private Sub Label1_Click()
End Sub
Private Sub Picture1_Click()
End Sub
Private Sub Frame1_DragDrop(Source As Control, X As Single, Y
As Single)
End Sub
Private Sub Timer_Timer()
Image2.Picture = imgList.ListImages(i).Picture
If i < 25 Then
i = i + 1
Else
i = 1
End If
72
End Sub
Private Sub Timer1_Timer()
Dim Y As String
Dim X As String
X = Left(Me.Text1.text, 1)
Y = Right(Me.Text1.text, Len(Me.Text1.text) - 1)
Me.Text1.text = Y + X
End Sub
73
PHẦN V
LỰA CHỌN NGÔN NGỮ
Với mục tiêu xây dựng một phần mềm đáp ứng được các chức năng
trong việc quản lý nhân sự trong phạm vi trường học, dễ sử dụng và thân
thiện với người sử dụng. Ngôn ngữ lập trình phù hợp là Microsoft
VisualBasic 6.0 với hệ quản trị CSDL Microsoft Access trên nền Windows
được lựa chọn.
1. Giới thiệu về Visual Basic 6.0
Microsoft VisualBasic 6.0 tuy không còn là hiện thân mới nhất và
độc đáo của ngôn ngữ BASIC như cách đây vài năm nhưng nó vẫn còn tính
năng ưu việt cho hệ thống phát triển ứng dụng của Windows toàn diện và
chọn gói.
Trong chương trình sử dụng kỹ thuật ADO, ADO là một đối tượng
giúp người lập trình làm việc với nhiều kiểu dữ liệu khác nhau. ADO được
xây dựng dựa trên kỹ thuật OLE DB cho phép lập trình nhanh các ứng dụng
liên kết CSDL( Cơ sở dữ liệu ).
Lớp giao tiếp lập trình dữ liệu ADO cung cấp một tập hợp những
đối tượng giúp chúng ta có thể dễ dàng làm việc với các nguồn dữ liệu khác
nhau. Trong các đối tượng này có những đối tượng chính như : Connection,
Recordset, Command, Fields...
Connection : là một đối tượng được sử dụng để tạo liên kết giữa
chương trình với CSDL. Sau khi đã tạo được liên kết xong chúng
ta mới có thể thực hiện các thao tác xử lý dữ liệu trên CSDL này.
Command : sẽ cho phép chương trình có thể gọi thực hiện một câu
lệnh truy vấn SQL trên CSDL hay gọi thực hiện một thủ tục xử lý
đã được cài đặt trong CSDL.
74
Recordset : là đối tượng lưu trữ một tập hợp các mẫu tin được chọn
từ các bảng có trong CSDL. Thông qua các đối tượng recordset,
chúng ta có thể thực hiện các xử lý như hiển thị dữ liệu, cập nhật,
tìm kiếm, ...với CSDL đã kết nối. Thông thường các Command có
câu lệnh truy vấn thực hiện dạng SELECT đều trả về một bộ mẫu
tin. Trong quá trình lập trình CSDL với VB 6.0 chúng ta có thể tạo
ra Recordset bằng nhiều cách tại những thời điểm khác nhau như :
dùng ADO, dùng Dataenvirement hay dùng bằng lệnh.
Field : là đối tượng con cho phép chúng ta truy xuất và làm việc với
một trường dữ liệu có trong một bộ mẫu tin Recordset. Với đối
tượng field có hai thuộc tính cần quan tâm là Name( Tên trường )
và Type( kiểu dữ liệu ).
2. Một số tập lệnh dùng trong chương trình
Tạo đối tượng Connection dùng lệnh :
Khai báo và khởi tạo một đối tượng Connection của
ADO
Dim cnn as New ADODB.Connection
Khai báo thuộc tính liên kết dữ liệu :
Gán thuộc tính Connectionstring cho đối tượng
Connection cnn theo cú pháp
cnn.Connectionstring = ‘provider=...’
cnn.CusorLocation = adUseClient hay adUseServer
Kết nối
75
Dùng phương thức Open của Connection để thực hiện kết
nối
Cnn.Open
Đóng liên kết dữ liệu
Cnn.Close
Làm việc với Command :
Khai báo và cấp phát vùng nhớ biến Command
Có 2 cách khai báo Command
+ Khai báo và cấp phát vùng nhớ cùng lúc
Dim cmd As New ADODB.Command
+ Khai báo trước, khi dùng sẽ cấp phát vùng nhớ sau
Dim cmd As ADODB.Command
Set cmd = New ADODB.Command
Đặt các thuộc tính cần thiết
Các thuộc tính cần thiết bao gồm :
+ Thuộc tính CommandText
+ Thuộc tính CommandType
+ Thuộc tính ActiveConection
Gọi thực hiện Command
Đối với Command dạng rút trích(Tức là Select...) :
Set = .execute( )
76
Đối với Command cập nhật (Insert, Delete, Update...)
.execute( )
Tạo Recordset dùng lệnh :
Khai báo biến bộ mẫu tin
Dim rst as ADODB.Recordset
Cấp phát vùng nhớ trước khi làm việc với rst
Set rst = New ADODB.Recordset
Khởi tạo các giá trị cho biến bộ mẫu tin rst
Rst.open [Source], [Connection], [Type], [Lock], [Option]
Các xử lý với bộ mẫu tin
Đóng và mở bộ mẫu tin
Rst.Close
Truy xuất các trường dữ liệu
(“”).Value
Kiểm tra recordset rỗng
If rst.BOF and rst. EOF then
Else
End if
Duyệt các mẫu tin của một Recordset
77
Rst.MoveFirst
Do while Not rst.EOF
Rst.MoveNext
Thêm mới một mẫu tin
.Addnew
Xoá một mẫu tin
.Delete
Cập nhật dữ liệu
.Update
Huỷ cập nhật dữ liệu
.CancelUpdate
Làm tươi dữ liệu trong recordset
.Refesh
Sắp xếp, lọc dữ liệu
.Sort = “” [DESC], <tên
trường 2> [DESC]
- Vv…vv…
VB6.0 là ngôn ngữ dễ lập trình giao diện.
78
3. Giới thiệu về Access
Microsoft Access là hệ quản trị cơ sở dữ liệu trên môi trường
Windows, 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 cho hầu hết 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 cơ sở dữ liệu (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. Chỉ với truy vấn đã có thể giải quyết khá nhiều
dạng toán trong quản trị cơ sở dữ liệu.
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.
Báo biểu là công cụ tuyệt vời phục vụ công việc in ấn.
Macro bao gồm một dẫy các hành động (Action) dùng đề tự động hoá
một loạt các thao tác.
Đơn thể là nơi chứa các hàm, thủ tục viết bằng ngôn ngữ Access
Basic. Mặc dù các công cụ mà Access cung cấp khá đầy đủ, tuy nhỉên không
thể bao quát được mọi vấn đề đa dạng của thực tế.
Access là hệ quản trị CSDL lý tưởng trong hệ thống quản lý nhỏ và
vừa.
79
Kết luận
- Kết quả thu được của chương trình:
Giao tiếp được với cơ sở dữ liệu tương đối hiệu quả
Phân cấp được các chức năng cần thiết.
Truy cập dữ liệu và tìm kiếm thông tin tương đối nhanh.
Giao diện thân thiện, dễ sử dụng…
- Hướng phát triển của đề tài:
Giải quyết hầu hết các vấn đề thiếu xót của chương trình.
Mở rộng bài toán để chương trình có khả năng trở thành một phần
mềm quản lý nhân sự trong trường học …
Tài liệu tham khảo
1. Microsoft Visual Basic 6.0 và lập trình Cơ Sở Dữ Liệu -Tác giả:
Nguyễn Thị Ngọc Mai-NXB Lao động xã hội.
2. Tự học lập trình Visual Basic 6.0-Tác giả: Trương Công Tuấn-
Nguyễn Văn Dũng-NXB Văn hoá thông tin.
3. Cùng nhiều nguồn tài liệu khác.
80
Các file đính kèm theo tài liệu này:
- Luận văn- XÂY DỰNG Hệ THỐNG CHƯƠNG TRÌNH QUẢN LÝ GIÁO VIÊN.pdf