Luận văn Xây dựng hệ thống chương trình quản lý giáo viên

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.

pdf80 trang | Chia sẻ: lylyngoc | Lượt xem: 2384 | Lượt tải: 3download
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:

  • pdfLuận văn- XÂY DỰNG Hệ THỐNG CHƯƠNG TRÌNH QUẢN LÝ GIÁO VIÊN.pdf
Luận văn liên quan