Mặc dù đã rất cố gắng tìm hiểu công việc "Quản lý nhân sự" nhưng không sao tránh khỏi những thiếu sót. Mong quý Thầy , Cô và các bạn đóng góp ý kiến để em rút ra được nhiều kinh nghiệm quý báu khi bước vào cuộc sống mới.
Quá trình khảo sát, phân tích - thiết kế và cài đặt bài toán quản lý nhân sự cơ bản đã hoàn thành những công việc sau :
- Cập nhật, lưu trữ, thêm thông tin:
* Cập nhật danh sách hợp đồng
* Cập nhật danh sách đoàn viên
* Cập nhật danh sách đảng viên
* Cập nhật danh sách bảo hiểm y tế
* Cập nhật danh sách bảo hiểm xã hội
* Cập nhật danh sách hồ sơ nhân viên
89 trang |
Chia sẻ: aloso | Lượt xem: 1915 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đề tài Quản lý nhân sự trong công ty, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
sở hành chính sự nghiệp, cơ sở kinh tế hoặc phúc lợi…) mỗi loại hình cơ sở quan tâm đến một số thuộc tính nhất định của mỗi cán bộ để phục vụ yêu cầu cụ thể của loại hình cơ sở tương ứng.
Dựa trên mô hình quản lý của từng loại cơ sở: Thường ở cơ sở sản xuất, mô hình này phụ thuộc vào cách tổ chức của lãnh đạo ( Giúp việc là phòng tổ chức lao động), cho phù hợp yêu cầu sản xuất và kinh doanh. Điều đó yêu cầu người lập trình phải tìm hiểu để nắm được mô hình này, lấy đó làm một trong những nguyên tắc để thiết kế.
Bộ chương trình cần giao tiếp tốt với người sử dụng, vì người sử dụng trực tiếp khai thác hệ thống mà có thể là những người có trình độ tin học thấp, yêu cầu chương trình gần gũi và có sự tương ứng với công việc của họ đã làm để họ không mất quá nhiều thời gian và công sức làm quen với hệ thống mới.
1.1.3. Quy trình sử lý thông tin
Trong quy trình quản lý phổ thông (Cổ điển) các thông tin thường xuyên được đưa vào sổ sách từ sổ sách các thông tin được kiết xuất để lập các bảng biểu, báo cáo cần thiết. Việc quản lý phổ thông có nhiều công đoạn chồng chéo lên nhau chẳng hạn trong công tác kế toán một chứng từ phải vào nhiều sổ sách để phục vụ cho mục đích khác nhau. Do đó các sai sót có thể xảy ra ở nhiều công đoạn do việc dư thừa thông tin trong quá trình quản lý do khối lượng công việc lớn nên nhiều khi chỉ chú trọng vào một số khâu và đối tượng quan trọng vì thế mà không đáp ứng được yêu cầu thời điểm. Thông tin chồng chéo nhiều mà chưa đủ, quản lý thủ công dễ mất mát thông tin, khó sửa, dễ có khả năng xảy ra sự cố nhất, ít có khả năng tra cứu gợi mở, khi tính toán thống kê mất nhiều công sức mà không chính xác, có nhiều thông tin không tổng hợp được đầy đủ.
1.2. Mô hình một hệ thống thông tin quản lý
1.2.1. Mô hình luân chuyển dữ liệu
Mô hình luân chuyển dữ liệu trong hệ thống quản lý có thể mô tả qua modul sau:
- Cập nhật thông tin có tính chất cố định để lưu trữ tra cứu
- Cập nhật thông tin có tính chất thay đổi thường xuyên
- Lập sổ sách báo cáo
Mỗi modul và hệ thống cũng cần phải có giải pháp kĩ thuật riêng tương ứng.
1.2. 2. Cập nhật thông tin động
Modul loại này có chức năng xử lý các thông tin luân chuyển chi tiết và tổng hợp.
Thông tin chi tiết thường rất lớn về số lượng cần xử lý thường xuyên đòi hỏi tốc độ nhanh và độ tin cậy nhanh. Khi thiết kế Modul này cần quan tâm đến các yêu cấu sau:
- Phải biết rõ thông tin cần lọc từ thông tin động.
- Giao diện màn hình vào số liệu phải đơn giản và hợp lý giảm tối thiểu các thao tác cho người nhập dữ liệu. Tự động nạp các thông tin đã biết và các giá trị lập. Kiểm tra và phát hiện tối đa sai sót có thể sảy ra trong quá trình nhập dữ liệu. Ví dụ tuyển nhân viên vào cơ quan không nhỏ hơn 18 tuổi.
- Cập nhật thông tin cố định có tính chất tra cứu
Thông tin loại này cần cập nhật nhưng không thường xuyên. Yêu cầu chủ yếu với thông tin này là phải tổ chức hợp lý để có nhất các thông tin cần thiết.
1.3. các nguyên tắc đảm bảo
Xây dựng một hệ thống thông tin quản lý hoàn chỉnh là một việc làm hết sức khó khăn chiếm nhiều thời gian và công sức chứ không đơn thuần là việc mua và lắp đặt một thiết bị máy tính, nói chung việc xây dựng một hệ thống thông tin quản lý dựa trên một số nguyên tắc cơ bản sau:
1.3.1.Nguyên tắc cơ sở thông tin thống nhất
Nguyên tắc này thể hiện ở chỗ thông tin được tích luỹ thường xuyên cập nhật. Đó là các thông tin cần thiết phục vụ cho việc giải quyết bài toán quản lý vì vậy thông tin trùng lặp phải được loại trừ. Một điều cần được loại trừ nữa là để đảm bảo thông tin là sự không nhất quán.
Ví dụ: như một đại lượng ở mảng thông tin này thì mang một giá trị nhưng ở mảng thông tin khác lại mang giá trị khác, do vậy ta phải tổ chức các mảng thông tin cơ bản mà trong đó các trường hợp trùng lặp hoặc không nhất quán về thông tin đã được loại trừ.
1.3.2.Nguyên tắc linh hoạt của thông tin
Thực chất nguyên tắc này là ngoài mảng ta cần phải có công cụ đặc biệt để tạo ra được các mảng làm việc cố định hay tạm thời dựa trên cơ sở những mảng thông tin cơ bản đã có và chỉ trích từ mảng cơ bản các thông tin cần thiết tạo ra mảng làm việc để sử dụng trực tiếp trong bài toán có thể.
Việc theo nguyên tắc thống nhất và linh hoạt đối với cơ sở thông tin của hệ sẽ làm giảm nhẹ rất nhiều cho nhiệm vụ hoàn thành và phát triển hệ sau này.
1.4.Các bước xây dựng hệ thống thông tin quản lý
Một cách tổng quát về hệ thống thông tin quản lý tự động hoá thường qua 5 giai đoạn đã được học trong phân tích thiết kế hệ thống.
1.4.1. Nghiên cứu sơ bộ và xác lập dự án
ở bước này người ta tiến hành tìm hiểu khảo sát hệ thống phát hiện nhược điểm còn tồn tại từ đó đề xuất các giải pháp khắc phục cần cân nhắc tính khả thi của dự án có định hướng cho các giai đoạn tiếp theo.
1.4.2. Phân tích hệ thống
Tiến hành phân tích một cách chi tiết hệ thống hiện tại để xây dựng các lược đồ khái niệm. Trên cơ sở đó tiến hành xây dựng lược đồ cho hệ thống mới.
1.4.3.Thiết kế tổng thể
Nhằm xác định vai trò vị trí của máy tính trong hệ thống mới phải định rõ công việc nào sẽ được sử lý bằng máy tính, phàn việc nào sẽ được sử lý thủ công.
1.4.4.thiết kế chi tiết
Thiết kế các thủ tục thủ công nhằm xử lý thông tin trước khi nhập vào máy tính .
Thiết kế các phương pháp cập nhật và xử lý thông tin chi tiết trên máy tính.
Thiết kế chương trình và giao diện người sử dụng, các tệp dữ liệu.
Chạy thử chương trình.
1.4.5.Cài đặt chương trình
Chương trình sau khi đã chạy thử phải đảm bảo tốt sẽ được cài đặt và đưa vào sử dụng.
Chương 2
khảo sát hiện trạng và xác lập dự án
Việc ứng dụng tin học trong quản lý không thể tách rời thực tế . Muốn xây dựng một hệ thống thông tin quản lý tốt có hiệu quả thì trước hết người thiết kế hệ thống phải tìm hiểu nắm bắt được các hoạt động của hệ thống hiện hành. Phải nắm bắt một cách đầy đủ tường tận cách tổ chức quản lý hệ thống từ trước tới nay.
Trong công ty cán bộ công nhân viên được chia làm 2 loại biên chế và hợp đồng
Mỗi cán bộ công nhân viên trong nhà máy có một vị trí nhất định trong một tổ sản xuất nào đó của một đơn vị xác định
Tổ chức quản lý cán bộ công nhân viên trong nhà máy là chức năng của phòng tổ chức lao động nhà máy tiến hành.
Mỗi năm có tuyển chọn cán bộ.
Cán bộ phòng nội chính thực hiện tuyển chọn nhân viên. Các đối tượng tập trung tại nhà máy mang theo hồ sơ xin việc để qua sát hạch về chuyên môn tại phòng kỹ thuật, sức khoẻ tại phòng y tế…
Khi đối tượng đã qua sát hạch được nhận vào nhà máy hồ sơ được tiếp nhận và quản lý
Nhân viên được đưa vào một đơn vị sản xuất nhất định.
Từ đó các thông tin về nhân sự được cập nhật vào các sổ lưu trữ.
Vào cuối năm hoặc khi có vấn đề đột xuất một số đối tượng không có đủ yếu tố làm việc tại nhà máy (Vi phạm kỉ luật, vì sức khẻo, tuổi tác…) việc huỷ bỏ thông tin được đặt ra.
Hàng năm trong những dịp lễ tết hoặc hết tháng, hết quý, nửa năm, cả năm…nhà máy có thưởng nhằm khuyến khích sản xuất mức thưởng dựa trên tiêu chuẩn nhất định đó có các tiêu chuẩn dựa trên các thông tin về nhân sự (Số năm làm việc, chức danh đối tượng…) hoặc khi cần người có đủ các yêu cầu: Sức khoẻ, năng lực, tuổi tác để phục vụ cho một vị trí nào đó. Yêu cầu tìm kiếm được đặt ra.
Thường thì mỗi thời điểm, một nhân viên làm việc tại một vị trí nhất định được xác định bởi một đơn vị sản xuất và tổ sản xuất, nhưng do yêu cầu của sản xuất hoặc do cần thử các năng lực của nhân viên nào đó và việc chuyển vị trí công tác trong nhà máy (Chuyển đơn vị công tác hoặc chuyển tổ trong cùng một đơn vị là khá thường xuyên) nhất là giai đoạn đầu mới nhận cán bộ hoặc giai đoạn cán bộ chuẩn bị nhận cán bộ mới. Yêu cầu chức năng chuyển đặt ra với hệ thống.
Hệ thống lưu trữ các thông tin:
Các thông tin về cá nhân bao gồm: Họ tên, ngày sinh, giới tính, số CMND, trình độ chuyên môn, trình độ ngoại ngữ, hộ khẩu thường trú, địa chỉ, dân tộc, tôn giáo, ngày vào đoàn, ngày vào đảng, cha mẹ anh chị em, con cái, số điện thoại và các thông tin khác.
Phải lưu được quá trình công tác, khen thưởng kỷ luật, ngày chuyển công tác, ngày nhận công tác.
Chương 3
Phân tích và thiết kế hệ thống thông tin quản lý
Muốn xây dựng và thiết kế một hệ thống thông tin quản lý thì vấn đề đầu tiên là phải phân tích hệ thống nhằm tìm và lựa chọn giải pháp thích hợp, biện pháp cụ thể.
Phân tích là công việc đầu tiên của quá trình xây dựng hệ quản lý trên máy vi tính. Không thể tin học hoá công tác quản lý mà không qua giai đoạn phân tích. Hiệu quả của công việc quản lý hoàn toàn phụ thuộc vào quá trính phân tích ban đầu.
Trong quá trình phân tích để chuyển sang bài toán quản lý trên máy vi tính thì các sơ đồ chức năng và sơ đồ luồng dữ liệu giúp ta dễ dàng xác định được yêu cầu của người dùng. Giúp ta có thể tổng quát về cách quản lý thực tế và hệ thống mà ta sẽ thiết kế.
3.1.Thông tin đầu vào đầu ra của hệ thống
3.1.1 Thông tin đầu vào
- Nhập số liệu, sửa, huỷ dữ liệu, chuyển.
- Các câu hỏi về tìm kiếm theo các thuộc tính từ đơn lẻ đến tổng hợp, tính toán các thông số nhân sự, hỏi đáp về một số cán bộ hoặc một số đơn vị trong nhà máy.
3.1.2. Thông tin đầu ra
Thực hiện việc xem in một số thông tin về nhân viên cụ thể, hoặc thông tin về cả nhà máy hoặc thông tin về một đơn vị trong nhà máy. Xem và in một số thuộc tính riêng lẻ (Trình độ chuyên môn, về đảng, ngày sinh…)
Thoả mãn các yêu cầu tìm kiếm.
a) Sơ đồ phân cấp quản lý
Hệ thống quản lý nhân sự
Lãnh đạo doanh nghiệp
Phòng ban và các tổ sản xuất
Cán bộ công nhân viên
Mô hình phân cấp chức năng:
b) Mô hình luồng dữ liệu mức khung cảnh
QLNS
CN Hồ sơ
Báo cáo
Tra cứu
CN Hồ sơ NV
CN DSBH
CN DS đoàn viên
TK danh bạ ĐT
TK DSNV hết hợp đồng
TK DSNV chưa có BH
TK DSNV nghỉ hưu
TC theo tên
TC theo tuổi
TC theoTĐ
TC theo NS
TC theo QQ
TC theo chức vụ
TC theo GT
CN DS chung
Chuyển CT NV
CN DS Hợp Đồng
CN DS đảng viên
TK báo cáo DSNV
Chú thích:
QLNS: Quản lý nhân sự
CN: Cập nhật
CNDS: Cập nhật danh sách
CTVN: Công tác nhân viên
CN DSBH: Cập nhật danh sách bảo hiểm
DS: Danh sách
NV: Nhân viên
TC: Tra cứu
NS: Ngày sinh
GT: Giới tính
QQ: Quê quán
c) Mô hình luồng dữ liệu mức đỉnh
Tra cứu
Tra cứu
QL hồ sơ
Thống kê
Phòng tổ chức LĐ
Phòng ban
Lý lịch
Gia đình
Hợp đồng
Nhân viên
Nhân viên
BHYT
BHXH
Ban lãnh đạo
Yêu cầu xem hồ sơ cá nhân
Thông tin trả lời
Thông tin bổ xung nhân viên mới
Thông tin sửa đổi
định
kỳ
Thông tin bổ xung nhân viên mới
Yêu cầu tra cứu, tính toán, thông kê
Thông tin trả lời
d) Mô hình luồng dữ liệu mức dưới đỉnh chức năng QL hồ sơ
Thêm mới
Sửa TTNS
Xoá TTNS
Phòng tổ chức LĐ
Nhân sự
Gia đình
Quản lý hồ sơ
Nhân viên
Lý lịch
Yêu cầu nhập thông tin ns mới
Yêu cầu nhập thông tin ns mới
Yêu cầu xoá thông tin ns
Yêu cầu sửa thông tin nhân sự
e) Mô hình luồng dữ liệu mức dưới đỉnh chức năng Thống kê
TK danh bạ ĐT
TK DSNV hết hợp đồng
TK DSNV nghỉ hưu
TK DSNV chưa có BH
Ban lãnh đạo
Ban lãnh đạo
Nhân sự
Hợp đồng
Yêu cầu tk
Yêu cầu tk
Yêu cầu tk
Yêu cầu tk
Thông tin trả lời
Thông tin trả lời
Thông tin trả lời
Thông tin trả lời
f) Mô hình luồng dữ liệu chức năng tra cứu
TC theo QQ
TC theo TĐ
TC theo NS
TC theo GT
TC theo chức vụ
TC theo tên
TC theo tuổi
Nhân sự
Nhân sự
Ban lãnh đạo
Ban lãnh đạo
Yêu cầu tìm kiếm
Yêu cầu tìm kiếm
Yêu cầu tìm kiếm
Yêu cầu tìm kiếm
Yêu cầu tìm kiếm
Yêu cầu tìm kiếm
Yêu cầu tìm kiếm
3.2. Mô hình thực thể liên kết
Chương 4
Giới thiệu và lý do lựa chọn ngôn ngữ
Visua basic
4.1.Gới thiệu về Visual basic
Để lập được một chương trình chúng ta cần phải có các thuật toán, thuật toán cang gọn nhẹ càng chuẩn xác thì càng nhanh chóng lập được chương trình để giả quyết công việc đặt ra. Với một ngôn ngữ, việc xây dựng thuật toán cụ thể sẽ có những phương thức khác nhau dựa trên những khả năng của hệ thống các hàm và của ngôn ngữ đó ví dụ như đối với ngôn ngũ pascal bạn phải dùng một chương trình dài hàng trăm lệnh để thực hiện menu lựa chọn. Nhưng đối với Visual basic thì bạn chỉ việc chuột vào trong thanh công cụ hỗ trợ Editer và thực hiện những yêu cầu hướng dẫn trực quan là dủ thực hiện công việc đó.Điều đó có nghĩa là bạn nên tìn hiểu khả năng có thể của ngôn ngữ đang sử dụng để tránh những bước đi vòng không cần thiết.
Ngôn ngữ lập trình cơ sở dữ liệu Visual basic gắn liền với khái niệm với trực quan (Visual),nghĩa là khi thiết kế chương trình, bạn đựơc nhìn thấy kết quả qua từng thao tác và giao diện chương trình thực hiện. Đây là thuận lợi lớn so với ngôn ngữ khác. Visual basic cho phép bạn chỉnh sửa đơn giản, nhanh chóng màu sắc, kích thước, hình dáng của đối tượng có mặt trong ứng dụng.
Một khả năng nữa của Visual basic là khả năng kết hợp với các thư viện liên kết động DLL(Dylamic Link Librari). Các kết nối đơn giản nhưng hiệu quả, cho việc truy cập và tìm kiếm thông tin với các thông số tuỳ chọn, cách tạo bảng chọn đơn giản mà thuận tiện là ưu điểm mà các ngôn ngữ khác như Pascal,C không thể có được đã đưa Visual basic là ngôn ngữ hàng đầu trong việc ứng dụng tin học trong việc quản lý. Điều đó dẫn đến số người sử dụng Visual basic ngày càng tăng các nhà lập trình Visual basic đã góp phần thúc đẩy các tiến độ khoa học kỹ thuật, quản lý xã hội, quản lý kinh tế.
4.2. lựa chọn ngôn ngữ
Các yếu tố được dưa vào xem xét khi khi lựa chọn ngôn ngữ cài đặt.
-Khả năng phát triển của hệ thống: Quá trình phát triển phải có sự nâng cấp, bổ sung sửa chữa.
-Ngôn ngữ lập trình cơ sở dữ liệu phải có tính kết nối với các thông tin khác.
-Giảm độ phức tạp và khả năng phát triển bảo trì chương trình.
Ngôn ngữ lập trình cơ sở dữ liệu Visual basic hội tụ đủ. Các điều kiện trên đó chính là lý do luận văn chọn ngôn ngữ Visual. Basic để quản lý nhân sự trong công ty.
Chương 5
Thiết kế cơ sở dữ liệu
5.1.Tổ chức cơ sở dữ liệu
5.1.1. Mô hình các bảng
5.1.2. Chi tiết các bảng
Do tính chất phức tạp của yêu cầu công việc sau khi xem xét và phân tích khía cạnh của công tác “Quản lý nhân sự” để giải quyết yêu câu của bài toán đặt ra một cách hợp lý và có hiệu quả thì phải toạ một cấu trúc CSDL hợp lý cho bài toán. Cấu trúc phải chứa đầy đủ các thông tin cần thiết đảm bảo cho truy nhập, kiết xuất thông tin dễ dàng nhanh chóng. Để cho bài toán được giải quyết thận lợi CSDL gồm các tệp sau.
- Cấu trúc tệp NHANSU
Stt
Tên trường
Kiểu
Độ rộng
Ghi chú
1
Mans
Text
10
Ma nhan vien
2
Ho dem
Text
30
3
Ten
Text
20
4
Ngay sinh
Date/Time
8
5
Gioi tinh
True/False
1
6
QQTinh
Text
30
7
Tinh
Text
30
8
TQTinh
Text
30
9
Tru quan
Text
30
10
DCTB
Memo
11
Dan toc
Text
30
12
Ton giao
Text
30
13
TPGD
Memo
14
SoCMND
Text
12
15
Noi cap
Text
50
16
Ngay cap
Date/Time
8
17
Dau vet
Text
10
18
Suc khoe
Text
10
19
Ngoai ngu
Text
30
20
TDNN
Text
1
21
TDHV
Text
10
22
Chuyen mon
Text
10
23
Ma CV
Text
10
24
Ma to
Text
10
25
Ngay NCT
Date/Time
8
26
BHXH
Text
10
27
BHYT
Text
10
28
Chieu cao
Number
29
Can nang
Number
30
Dien thoai
Text
10
31
Quan he CQ
Memo
32
Quoc tich
Text
10
33
Hinh
Ole Object
Tệp này có mã khoá là :MaNV+MaTo+MaDV
- Cấu trúc tệp DONVI
Stt
Tên trường
Kiểu
Độ rộng
Ghi chú
1
Madv
Text
10
Mã đơn vị
2
Tendv
Text
10
Tên đơn vị
3
Dia chi
Text
10
Địa chỉ
Mã khoá là : MaDV
- Cấu trúc tệp ToSX
Stt
Tên trường
Kiểu
Độ rộng
Ghi chú
1
Mato
Text
10
Mã tổ
2
MaDV
Text
10
Mã đơn vị
3
Tento
Text
30
Tên tổ
4
Dohai
Number
Độ nhiễm độc
Mã khoá là : Mato
- Cấu trúc tệp CHIBO
Stt
Tên trường
Kiểu
Độ rộng
Ghi chú
1
Macb
Text
10
Mã Chi Bộ
2
Tencb
Text
30
Tên chi Bộ
Mã Khoá là:Macb
- Cấu Trúc Tệp CHUCVU
Stt
Tên trường
Kiểu
Độ rộng
Ghi chú
1
Macv
Text
10
Mã chúc vụ
2
Tencv
Text
30
Tên chức vụ
3
Phucap
Number
Phụ cấp
4
Ghichu
Number
Ghi chú về chức vụ
Khoá là:Macv
-Cấu chúc tệp CHUYENMON
Stt
Tên trường
Kiểu
Độ rộng
Ghi chú
1
Macm
Text
10
Mã chuyên môn
2
Têncm
Text
50
Tên chuyên môn
Khoá là:Macm
- Cấu trúc tệp DANGVIEN
Stt
Tên trường
Kiểu
Độ rộng
Ghi chú
1
Manv
Text
10
Mã nhân viên
2
Thedang
Text
10
Thẻ đảng
3
Nguoigt1
Text
30
Người gới thiệu 1
4
Nguoigt2
Text
30
Người gới thiệu 2
5
Ghichu
Memo
Ghi chú
Mã khoá là:Thedang
- Cấu trúc tệp DANTOC
Stt
Tên trường
Kiểu
Độ rộng
Ghi chú
1
Madt
Text
10
Mã dân tộc
2
Têndt
Text
10
Tên dân tộc
Mã khoá là:Madt
- Cấu trúc tệp DSBHXH
Stt
Tên trường
Kiểu
Độ rộng
Ghi chú
1
Manv
Text
10
Mã nhân viên
2
Sobhxh
Text
10
Số BHXH
3
Ngaycap
Date/time
8
Ngày cấp
4
Noicap
Text
30
Nơi cấp
5
Giatri
Nummeric
Giá trị
Mã khoá là:Sobhxh
- Cấu trúc tệp DSBHYT
Stt
Tên trường
Kiểu
Độ rộng
Ghi chú
1
Manv
Text
10
Mã tổ
2
Sobhyt
Text
10
Mã đơn vị
3
Ngày cấp
Date/Time
8
Tên tổ
4
Noicap
Text
30
Nơi cấp
5
Giatri
Number
Giá trị
Mẫ khoá là:Sobhyt
- Cấu trúc tệp GIADINH
Stt
Tên trường
Kiểu
Độ rộng
Ghi chú
1
Manv
Text
10
Mã nhân viên
2
Sott
Text
10
Số thứ tự
3
Quan hệ
Text
30
Quan hệ với nhân viên
4
Ngaysinh
Date/time
8
Ngày sinh
5
Thuongchu
Text
20
Thường chú
Mã khoá là:Sott
- Cấu trúc tệp HOCVAN
Stt
Tên trường
Kiểu
Độ rộng
Ghi chú
1
Mahv
Text
10
Mã học vấn
2
Tenhv
Text
30
Tên học vấn
Mã khoá là:Mahv
- Cấu trúc tệp HOPDONG
Stt
Tên trường
Kiểu
Độ rộng
Ghi chú
1
Mahd
Text
10
Mã hợp đồng
2
Tenhd
Text
30
Tên hợp đồng
Mã khoá là:Mahd
- Cấu trúc tệp HOPDONGLD
Stt
Tên trường
Kiểu
Độ rộng
Ghi chú
1
Manv
Text
10
Mã nhân viên
2
Ngayky
Date/time
8
Ngày ký
3
Mahd
Text
10
Mã hợp đồng
4
Thoihan
Text
10
Thời hạn
5
Bacluong
Number
10
Bậc lương
6
Mucbhyt
Text
2
Mức BHYT
7
Mucbhxh
Text
30
Mức BHXH
8
Lương
Number
Lương
Mã khoá là:Manv+Mahd
- Cấu trúc tệp NGOAINGU
Stt
Tên trường
Kiểu
Độ rộng
Ghi chú
1
Mann
Text
10
Mã ngoại ngữ
2
Tennn
Text
30
Tên Ngoại ngữ
Mã khoá là:Mann
- Cấu trúc tệp QTCT
Stt
Tên trường
Kiểu
Độ rộng
Ghi chú
1
Manv
Text
10
Mã nhân viên
2
Tungay
Date/time
8
Từ ngày
3
Denngay
Date/time
8
Đến ngày
4
Mato
Text
10
Mã tổ
5
Macv
Text
10
Mã chức vụ
Mã khoá là:Tungay+Denngay
- Cấu trúc tệp QTHT
Stt
Tên trường
Kiểu
Độ rộng
Ghi chú
1
Manv
Text
10
Mã nhân viên
2
Tungay
Date/time
8
Từ ngày
3
Denngay
Date/time
8
Đến ngày
4
Mahv
Text
10
Mã học viên
5
Macm
Text
10
Mã chứng minh
6
Loaibang
Text
2
Loại bằng
7
Truongdt
Text
30
Trường đào tạo
Mã khoá là: Tungay+Denngay
- Cấu truc tệp QUOCGIA
Stt
Tên trường
Kiểu
Độ rộng
Ghi chú
1
Maqg
Text
10
Mã quốc gia
2
Tenqg
Text
10
Tên Quốc Gia
Mã khoá là: Mqg
-Cấu trúc tệp TINH
Stt
Tên trường
Kiểu
Độ rộng
Ghi chú
1
Matinh
Text
10
Mã tỉnh
2
Tentinh
Text
30
Tên tỉnh
Mã khoá là:Matinh
- Cấu trúc CSDL tệp TONGIAO
Stt
Tên trường
Kiểu
Độ rộng
Ghi chú
1
Matg
Text
10
Mã tôn giáo
2
Tentg
Text
30
Tên tôn giáo
Mã khoá là:matg
- Cấu Trúc tệp TRUONGDT
Stt
Tên trường
Kiểu
Độ rộng
Ghi chú
1
Matruong
Text
10
Mã trường
2
Tentruong
Text
30
Tên trường
Mã khoá là:Matruong
Chương 6
Thiết kế giao diện chương trình
6.1. các form
Từ yêu cầu đối với hệ thống, cần có các form sau để tương tác với người sử dụng:
-Form chính của chương trình:
-Form đăng nhập hệ thống:
-Form Chuyển tổ sang đơn vị mới :
-Form Cập nhật danh sách hợp đồng :
-Form Cập nhật danh sách đảng viên :
-Form Cập nhật danh sách đoàn viên :
-Form Cập nhật danh sách bảo hiểm y tế :
-Form Cập nhật danh sách bảo hiểm xã hội :
-Form Cập nhật hồ sơ nhân viên :
-Form Tra cứu nhân viên :
-Form Tra cứu thông tin :
6.2. Các báo cáo điển hình
-Report danh bạ điện thoại của cơ quan :
-Report danh sách nhân viên chưa có bảo hiểm xã hội :
-Report danh sách đảng viên :
6.3. Một Số Đoạn Mã Lệnh Trong Chương Trình
6.3.1.Phần Module
Option Explicit
Public Declare Function WinHelp Lib "user32" Alias "WinHelpA" (ByVal hwnd As Long, ByVal lpHelpFile As String, ByVal wCommand As Long, ByVal dwData As Long) As Long
Public Const HELP_CONTENTS = &H3
Public CN As New ADODB.Connection
Public F_USER, F_GROUP, F_PASS As String
Public FLAG_PASS As String
Public APDIR, APMON, APYEAR, APKEY
Public StrPathApp As String
Public Key As String
Public CQ1 As String
Public CQ2 As String
Public CQ3 As String
Public DK As String
Public TenTruong As String
Public MaTruong As String
Public i As Integer
Public s As String
Public TRACUU
Public MaHD1 As String
Public TenHD1 As String
Public MaNV1 As String
Public TenNV1 As String
Public MaTG1 As String
Public TenTG1 As String
Public MaCV1 As String
Public TenCV1 As String
Public MaTinh1 As String
Public TenTinh1 As String
Public MaDT1 As String
Public TenDT1 As String
Public MaNN1 As String
Public TenNN1 As String
Public MaHV1 As String
Public TenHV1 As String
Public MaHDT1 As String
Public TenHDT1 As String
Public MaCM1 As String
Public TenCM1 As String
Public MaQT1 As String
Public TenQT1 As String
Public MaDV1 As String
Public TenDV1 As String
Public Ma As String
Public Ten As String
Public CODK
Public Sub GOT_FOCUS(TEXT As TextBox)
TEXT.BackColor = &HC0E0FF
End Sub
Public Sub LOST_FOCUS(TEXT As TextBox)
TEXT.BackColor = &HFFFFFF
End Sub
Public Function GOS1_FOCUS(CMB As ComboBox)
CMB.BackColor = &HC0E0FF
End Function
Public Sub LOST_FOCUS1(CMB As ComboBox)
CMB.BackColor = &HFFFFFF
End Sub
Public Sub OPEN_MDB()
Dim db_name As String
Dim ddcsdl
db_name = App.Path & "\QLNS.mdb"
ddcsdl = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & db_name & ""
DE1.CN1.ConnectionString = "Provider=Microsof.Jet.OLEDB.4.0;Data Source=" & db_name & ";Persist Security Info=False"
DE1.CN1.Open
CN.Open ddcsdl
End Sub
Public Function MAHOA(pass) As String
Dim strtemp, kqua, nlen, l
nlen = Len(Key)
kqua = ""
l = 0
Do Until Len(pass) <= nlen
strtemp = Left(pass, nlen)
pass = Mid(pass, nlen + 1)
If l = 0 Then
kqua = kqua & StrReverse(strtemp)
l = 1
Else
kqua = kqua & strtemp
l = 0
End If
Loop
If l = 0 Then
MAHOA = kqua & StrReverse(pass)
Else
MAHOA = kqua & pass
End If
End Function
Public Function GIAIMA(pass) As String
Dim strtemp, kqua, nlen, l
nlen = Len(Key)
kqua = ""
l = 1
Do Until Len(pass) <= nlen
strtemp = Left(pass, nlen)
pass = Mid(pass, nlen + 1)
If l = 1 Then
kqua = kqua & StrReverse(strtemp)
l = 0
Else
kqua = kqua & strtemp
l = 1
End If
Loop
If l = 1 Then
GIAIMA = kqua & StrReverse(pass)
Else
GIAIMA = kqua & pass
End If
End Function
Public Function TACHTEN(Ten As String) As String
Dim i
Ten = Trim(Ten)
i = InStrRev(Ten, " ", -1)
If i 0 Then
Ten = Mid(Ten, i + 1, Len(Ten) - i)
End If
TACHTEN = Ten
End Function
Public Function TACHHO(Ten As String) As String
Ten = Trim(Ten)
i = InStrRev(Ten, " ", -1)
If i 0 Then
Ten = Mid(Ten, 1, i - 1)
Else
Ten = "-"
End If
TACHHO = Ten
End Function
Public Function CheckDATE(strDate As String) As String
Dim Temp As Integer
Dim strtemp As String
Temp = 3
If IsNumeric(Left(strDate, 1)) Then
If IsNumeric(Mid(strDate, 2, 1)) Then
If Left(strDate, 2) <= 31 Then
MASK1:
If Mid(strDate, Temp, 1) = "/" Then
If IsNumeric(Mid(strDate, Temp + 1, 1)) Then
If IsNumeric(Mid(strDate, Temp + 2, 1)) Then
If Mid(strDate, Temp + 1, 2) <= 12 Then
If Mid(strDate, Temp + 3, 1) = "/" Then
strtemp = Left(strDate, Temp + 3)
If IsDate(strDate) Then
CheckDATE = strtemp & Format(strDate, "yyyy")
Else
GoTo MSGDATE
End If
End If
Else
GoTo MSGDATE
End If
Else
If Mid(strDate, Temp + 2, 1) = "/" Then
strtemp = Left(strDate, Temp + 2)
If IsDate(strDate) Then
CheckDATE = strtemp & Format(strDate, "yyyy")
Else
GoTo MSGDATE
End If
End If
End If
Else
GoTo MSGDATE
End If
Else
GoTo MSGDATE
End If
Else
GoTo MSGDATE
End If
Else
If Mid(strDate, 2, 1) = "/" Then
Temp = 2
GoTo MASK1
Else
GoTo MSGDATE
End If
End If
Else
MSGDATE:
CheckDATE = "1"
End If
End Function
Public Sub HOATANH(DT As Label)
DT.FontBold = False
DT.FontItalic = False
DT.FontUnderline = False
DT.ForeColor = &H0
End Sub
Public Sub HOATANH1(DT As Label)
DT.FontBold = True
DT.FontItalic = True
DT.FontUnderline = True
DT.ForeColor = &HFF0000
End Sub
Public Function CHECKSTRING(TEXT As String)
Dim n As Integer
Dim m As String
Dim i As Integer
Dim k As String
n = Len(TEXT)
For i = 1 To n
m = Left(TEXT, i)
k = Right(TEXT, n - Len(m) + 1)
If Mid(TEXT, i, 1) = "'" Then
TEXT = m + k
Exit For
End If
Next i
CHECKSTRING = TEXT
End Function
'Public Sub FORMAT_LABEL(Label As RptLabel, Caption As String)
'With Label
'.Alignment = rptJustifyCenter
'.CanGrow = True
'.Caption = Caption
'.Font = ".VnTime"
' .Font.Bold = True
'End With
'end Sub
6.3.2. Phần mã của Form Main
Option Explicit
Private Sub MDIForm_Load()
Dim rs As New ADODB.Recordset
Dim str
Call OPEN_MDB
str = "select * from Coquan"
rs.Open str, CN, adOpenKeyset, adLockOptimistic, adCmdText
If rs.EOF = False Then
CQ1 = rs!Ten
CQ2 = rs!Diachi
If IsNull(rs!Thuocbo) = True Then
CQ3 = ""
Else
CQ3 = rs!Thuocbo
End If
End If
rs.Close
End Sub
Private Sub MDIForm_Unload(Cancel As Integer)
Dim tb
tb = MsgBox(" Bạn có muốn thoát chương trình không ? ", vbYesNo + vbInformation, "Thong Bao Thoat")
If tb = vbNo Then
Cancel = 1
Else
Cancel = 0
End If
End Sub
Private Sub MnuBCao_Click(Index As Integer)
Dim str
Select Case Index
Case 0
Report_DienThoai.Sections(2).Controls("LBThuocbo").Caption = CQ3
Report_DienThoai.Sections(2).Controls("LBTenCQ").Caption = CQ1
Report_DienThoai.Sections(2).Controls("LBDiachi").Caption = CQ2
Report_DienThoai.Show
Case 2
Report_Nhanvien.Sections(2).Controls("LBThuocbo").Caption = CQ3
Report_Nhanvien.Sections(2).Controls("LBTenCQ").Caption = CQ1
Report_Nhanvien.Sections(2).Controls("LBDiachi").Caption = CQ2
Report_Nhanvien.Show
End Select
End Sub
Private Sub MnuBCao1_Click(Index As Integer)
Dim rs As New ADODB.Recordset
Dim str
Select Case Index
Case 0
DE1.rsHETHD.Open
If DE1.rsHETHD.RecordCount = 0 Then
MsgBox " trong co quan chua co nhan vien nao het han hop dong ", vbExclamation, "Thong bao"
DE1.rsHETHD.Close
Exit Sub
Else
Report_HHHD.Sections(2).Controls("LBThuocbo").Caption = CQ3
Report_HHHD.Sections(2).Controls("LBTenCQ").Caption = CQ1
Report_HHHD.Sections(2).Controls("LBDiachi").Caption = CQ2
Report_HHHD.Show
End If
Case 2
str = "SELECT Nhansu.MaNv, Nhansu.Hodem, Nhansu.Ten, Nhansu.Ngaysinh, Nhansu.Truquan, tinh.tentinh, Nhansu.Gioitinh, Chucvu.Tencv, TOSX.Tento, Donvi.Tendv, Nhansu.BHXH"
str = str & " FROM tinh INNER JOIN (Chucvu INNER JOIN ((Donvi INNER JOIN TOSX ON Donvi.Madv = TOSX.MaDv) INNER JOIN Nhansu ON TOSX.Mato = Nhansu.Mato) ON Chucvu.Macv = Nhansu.MaCV) ON (tinh.matinh = Nhansu.TQTinh) AND (tinh.matinh = Nhansu.TQTinh)"
str = str & " WHERE (((Nhansu.BHXH)='" & "-" & "')) ORDER BY Nhansu.Ten;"
DE1.Commands(10).CommandText = str
DE1.rsABC.Open
If DE1.rsABC.RecordCount = 0 Then
MsgBox " Trong co quan tat ca nhan vien deu co bao hiem xa hoi ", vbExclamation, "Thong bao"
DE1.rsABC.Close
Exit Sub
Else
DE1.rsABC.Requery
Report_ABC.Sections(2).Controls(2).Caption = "( Chua co bao hiem xa hoi )"
Report_ABC.Sections(2).Controls("LBThuocbo").Caption = CQ3
Report_ABC.Sections(2).Controls("LBTenCQ").Caption = CQ1
Report_ABC.Sections(2).Controls("LBDiachi").Caption = CQ2
Report_ABC.Show
End If
Case 3
str = "SELECT Nhansu.MaNv, Nhansu.Hodem, Nhansu.Ten, Nhansu.Ngaysinh, Nhansu.Truquan, tinh.tentinh, Nhansu.Gioitinh, Chucvu.Tencv, TOSX.Tento, Donvi.Tendv, Nhansu.BHYT"
str = str & " FROM tinh INNER JOIN (Chucvu INNER JOIN ((Donvi INNER JOIN TOSX ON Donvi.Madv = TOSX.MaDv) INNER JOIN Nhansu ON TOSX.Mato = Nhansu.Mato) ON Chucvu.Macv = Nhansu.MaCV) ON (tinh.matinh = Nhansu.TQTinh) AND (tinh.matinh = Nhansu.TQTinh)"
str = str & " WHERE (((Nhansu.BHYT)='" & "-" & "')) ORDER BY Nhansu.Ten;"
DE1.Commands(10).CommandText = str
DE1.rsABC.Open
If DE1.rsABC.RecordCount = 0 Then
MsgBox " Tat ca nhan vien trong co quan deu co bao hien y te", vbExclamation, "Thong bao"
DE1.rsABC.Close
Exit Sub
Else
DE1.rsABC.Requery
Report_ABC.Sections(2).Controls(2).Caption = "( Chua co bao hiem y te)"
Report_ABC.Sections(2).Controls("LBThuocbo").Caption = CQ3
Report_ABC.Sections(2).Controls("LBTenCQ").Caption = CQ1
Report_ABC.Sections(2).Controls("LBDiachi").Caption = CQ2
Report_ABC.Show
End If
Case 4
Report_HETBHYT.Sections(2).Controls("LBThuocbo").Caption = CQ3
Report_HETBHYT.Sections(2).Controls("LBTenCQ").Caption = CQ1
Report_HETBHYT.Sections(2).Controls("LBDiachi").Caption = CQ2
Report_HETBHYT.Show
Case 6
str = "SELECT Nhansu.MaNv, Nhansu.Hodem, Nhansu.Ten, Nhansu.Ngaysinh, Nhansu.Gioitinh, Nhansu.Truquan, tinh.tentinh, Chucvu.Tencv, TOSX.Tento, Donvi.Tendv"
str = str & " FROM (Donvi INNER JOIN TOSX ON Donvi.Madv = TOSX.MaDv) INNER JOIN (Chucvu INNER JOIN (tinh INNER JOIN Nhansu ON (tinh.matinh = Nhansu.TQTinh) AND (tinh.matinh = Nhansu.TQTinh)) ON Chucvu.Macv = Nhansu.MaCV) ON TOSX.Mato = Nhansu.Mato"
str = str & " WHERE (((Nhansu.Gioitinh)=IIf([Nhansu]![Gioitinh]=True,(Year(Date())-Year([Nhansu]![Ngaysinh]))>55,(Year(Date())-Year([Nhansu]![Ngaysinh]))<=50)));"
DE1.Commands(10).CommandText = str
DE1.rsABC.Open
If DE1.rsABC.RecordCount = 0 Then
MsgBox " Trong co quan chua co nhan viennao den tuoi nghi huu ", vbExclamation, "Thong bao"
DE1.rsABC.Close
Exit Sub
Else
DE1.rsABC.Requery
Report_ABC.Sections(2).Controls(2).Caption = "( Den tuoi nghi huu ) "
Report_ABC.Sections(2).Controls("LBThuocbo").Caption = CQ3
Report_ABC.Sections(2).Controls("LBTenCQ").Caption = CQ1
Report_ABC.Sections(2).Controls("LBDiachi").Caption = CQ2
Report_ABC.Show
End If
Case 8
Report_Dangvien.Sections(2).Controls("LBThuocbo").Caption = CQ3
Report_Dangvien.Sections(2).Controls("LBTenCQ").Caption = CQ1
Report_Dangvien.Sections(2).Controls("LBDiachi").Caption = CQ2
Report_Dangvien.Show
Case 9
Report_Doanvien.Sections(2).Controls("LBThuocbo").Caption = CQ3
Report_Doanvien.Sections(2).Controls("LBTenCQ").Caption = CQ1
Report_Doanvien.Sections(2).Controls("LBDiachi").Caption = CQ2
Report_Doanvien.Show
Case 13
str = "SELECT Nhansu.MaNv, Nhansu.Hodem, Nhansu.Ten, Nhansu.Ngaysinh, Nhansu.Gioitinh, Dantoc.TenDT, Tongiao.TenTG, Nhansu.Truquan, tinh.tentinh, Chuyenmon.TenCM, TOSX.Tento, Donvi.Tendv, Chucvu.Tencv"
str = str & " FROM Chucvu INNER JOIN (Chuyenmon INNER JOIN (Donvi INNER JOIN (TOSX INNER JOIN (Tongiao INNER JOIN (Dantoc INNER JOIN (tinh INNER JOIN Nhansu ON (tinh.matinh = Nhansu.TQTinh) AND (tinh.matinh = Nhansu.TQTinh)) ON Dantoc.MaDT = Nhansu.Dantoc) ON Tongiao.MaTG = Nhansu.Tongiao) ON TOSX.Mato = Nhansu.Mato) ON Donvi.Madv = TOSX.MaDv) ON Chuyenmon.MaCM = Nhansu.Chuyenmon) ON Chucvu.Macv = Nhansu.MaCV"
str = str & " ORDER BY Nhansu.Ten;"
DE1.Commands(10).CommandText = str
If DE1.rsABC.State = 0 Then
DE1.rsABC.Open
End If
DE1.rsABC.Requery
Report_ABC.Sections(2).Controls(2).Caption = "( Theo thứ tự ABC )"
Report_ABC.Sections(2).Controls("LBThuocbo").Caption = CQ3
Report_ABC.Sections(2).Controls("LBTenCQ").Caption = CQ1
Report_ABC.Sections(2).Controls("LBDiachi").Caption = CQ2
Report_ABC.Show
Case 15
Report_Quequan.Sections(2).Controls("LBThuocbo").Caption = CQ3
Report_Quequan.Sections(2).Controls("LBTenCQ").Caption = CQ1
Report_Quequan.Sections(2).Controls("LBDiachi").Caption = CQ2
Report_Quequan.Show
Case 17
Report_HOCVAN.Sections(2).Controls("LBThuocbo").Caption = CQ3
Report_HOCVAN.Sections(2).Controls("LBTenCQ").Caption = CQ1
Report_HOCVAN.Sections(2).Controls("LBDiachi").Caption = CQ2
Report_HOCVAN.Show
Case 19
Frm_Thamnien.Show
End Select
End Sub
Private Sub MnuBCao2_Click(Index As Integer)
Select Case Index
Case 0
CODK = "LLNV"
Frm_ChonTH.Show
End Select
End Sub
Private Sub MnuCCT_Click(Index As Integer)
Dim rs As New ADODB.Recordset
Dim str
Select Case Index
Case 0
str = "select * from Nhansu"
rs.Open str, CN, adOpenKeyset, adLockOptimistic, adCmdText
If rs.RecordCount = 0 Then
MsgBox " Chú ý : Ban khong the chuyen nhan vien sang" + Chr$(10) + "Don vi moi khi chua co thong tin", vbExclamation, "Thong Bao"
Else
Frm_ChuyenDV.Show
End If
Case 2
str = "select * from Donvi"
rs.Open str, CN, adOpenKeyset, adLockOptimistic, adCmdText
If rs.RecordCount = 0 Then
MsgBox " Chu y : Du lieu cua ban chua day du " + Chr$(10) + "de thuc hien viec chuyen to cho nhan vien", vbCritical, "Thong Bao"
Else
CODK = "DV1"
Frm_ChonTH.Show
End If
End Select
End Sub
Private Sub MnuCN1_Click(Index As Integer)
Dim rs As New ADODB.Recordset
Dim str
Select Case Index
Case 3
str = "select * from TOSX"
rs.Open str, CN, adOpenKeyset, adLockOptimistic, adCmdText
If rs.RecordCount = 0 Then
MsgBox "Chú ý : Ban khong the thuc hien viec chuyen to " + Chr$(10) + "sang don vi moi khi to do chua ton tai", vbCritical, "Thong bao"
Else
rs.Close
Frm_ChuyenTOSDV.Show
End If
Case 13
CODK = "DV3"
Frm_ChonTH.Show
Case 5
Frm_HopDongLD.Show
Case 7
Frm_Dangvien.Show
Case 8
Frm_Doanvien.Show
Case 10
Frm_BHYT.Show
Case 11
Frm_BHXH.Show
End Select
End Sub
Private Sub MnuDS_Click(Index As Integer)
Dim rs As New ADODB.Recordset
Dim str
Select Case Index
Case 0
Frm_ChiBo.Show
Case 2
Frm_Donvi.Show
Case 3
str = "select * from Donvi"
rs.Open str, CN, adOpenKeyset, adLockOptimistic, adCmdText
If rs.RecordCount = 0 Then
MsgBox "Chu y : Ban khong the cap nhat to khi chua cap nhat don vi", vbCritical, "Thong bao"
Else
rs.Close
Frm_To.Show
End If
Case 4
Frm_ChucVu.Show
Case 6
Frm_HeDT.Show
Case 7
Frm_Truong.Show
Case 8
Frm_HocVan.Show
Case 9
Frm_ChuyenMon.Show
Case 10
Frm_NgoaiNgu.Show
Case 12
Frm_QuocGia.Show
Case 13
Frm_Tinh.Show
Case 14
Frm_Dantoc.Show
Case 15
Frm_TonGiao.Show
Case 17
Frm_HopDong.Show
End Select
End Sub
Private Sub MnuHT1_Click(Index As Integer)
Dim rs As New ADODB.Recordset
Dim str
Dim tb
Select Case Index
Case 7
CMDIN.ShowPrinter
Case 11
tb = MsgBox(" Bạn có muốn thoát hay không? ", vbYesNo + vbInformation, "Thong Bao Thoat")
If tb = vbNo Then
Exit Sub
Else
End
End If
End Select
End Sub
Private Sub MnuTC1_Click(Index As Integer)
Select Case Index
Case 0
Frm_Tracuu.Show
Case 2
Frm_Timkiem.Show
End Select
End Sub
Private Sub MnuTG1_Click(Index As Integer)
Select Case Index
Case 2
Frm_GioiThieu.Show
Case 4
Dim Vari As Long
App.HelpFile = StrPathApp & "Help.hlp"
Vari = WinHelp(FRM_MAIN.hwnd, App.HelpFile, HELP_CONTENTS, 0)
End Select
End Sub
Private Sub MnuTN_Click(Index As Integer)
Select Case Index
Case 0
Report_TNTDV.Sections(2).Controls("LBThuocbo").Caption = CQ3
Report_TNTDV.Sections(2).Controls("LBTenCQ").Caption = CQ1
Report_TNTDV.Sections(2).Controls("LBDiachi").Caption = CQ2
Report_TNTDV.Show
Case 2
CODK = "LL"
Frm_ChonTH.Show
End Select
End Sub
Private Sub Timer1_Timer()
Dim l As String
Dim e As Integer
l = Me.STBNS.Panels(1)
e = Len(l)
Me.STBNS.Panels(1) = Right(l, e - 1) + Left(l, 1)
End Sub
Private Sub Timer2_Timer()
Dim l As String
Dim e As Integer
l = Me.STBNS.Panels(2)
e = Len(l)
'Me.STBNS.Panels(2) = Right(l, e - 1) + Left(l, 1)
End Sub
- Mã Form Chuyển tổ sang đơn vị mới :
Option Explicit
Private Sub CmdChuyen_Click()
If Trim(TxtMaNV) = "" Then
MsgBox " Chu y : Ban chua chon nhan vien de chuyen sang don vi moi ", vbExclamation, "Thong bao"
LvItemNV.SetFocus
Exit Sub
End If
UN_LOCK_TEXT
CmdDonvi.SetFocus
End Sub
Private Sub CmdClose_Click()
Unload Me
End Sub
Private Sub CmdDonvi_Click()
CODK = "CDV"
Frm_ChonTH.Show
End Sub
Private Sub CmdDonvi_GotFocus()
Call HOATANH1(Label6)
End Sub
Private Sub CmdDonvi_LostFocus()
Call HOATANH(Label6)
End Sub
Private Sub CmdSave_Click()
If Trim(TxtMaToDVM) = "" Then
MsgBox " Chu y : Ban chua chon to o Don vi moi cho nhan vien can chuyen ", vbExclamation, "Thong bao"
CmdTo.SetFocus
Exit Sub
End If
SAVE_DATA
End Sub
Private Sub CmdSkip_Click()
LOCK_TEXT
SET_NULL
End Sub
Private Sub CmdTo_Click()
If Trim(TxtMaDV) = "" Then
MsgBox " Chu y : Ban chua chon don vi can chuyen cua nhan vien ", vbExclamation, "Thong bao"
CmdDonvi.SetFocus
Exit Sub
End If
CODK = "CTDV"
Frm_ChonTH.Show
End Sub
Private Sub CmdTo_GotFocus()
Call HOATANH1(Label7)
End Sub
Private Sub CmdTo_LostFocus()
Call HOATANH(Label7)
End Sub
Private Sub Form_Load()
Me.Left = 1900
Me.Top = 800
TRANGTHAI
SET_NULL
DISPLAY_LISTVIEW
End Sub
Private Sub TRANGTHAI()
Dim rs As New ADODB.Recordset
Dim str
Dim n As Integer
str = "select * from Nhansu"
rs.Open str, CN, adOpenKeyset, adLockOptimistic, adCmdText
n = rs.RecordCount
If n = 0 Then
CmdChuyen.Enabled = False
CmdSave.Enabled = False
CmdSkip.Enabled = False
Else
LOCK_TEXT
End If
rs.Close
End Sub
Private Sub SET_NULL()
TxtMaNV = ""
TxtHoTen = ""
TxtMaTo = ""
TxtTenTo = ""
TxtTenDV = ""
TxtMaToDVM = ""
TxtTenToM = ""
TxtMaDV = ""
TxtTenDVM = ""
TxtNgaysinh = "__/__/____"
End Sub
Private Sub LOCK_TEXT()
CmdSave.Enabled = False
CmdChuyen.Enabled = True
CmdSkip.Enabled = False
CmdDonvi.Enabled = False
CmdTo.Enabled = False
LvItemNV.Enabled = True
End Sub
Private Sub UN_LOCK_TEXT()
CmdSave.Enabled = True
CmdChuyen.Enabled = False
CmdSkip.Enabled = True
CmdDonvi.Enabled = True
CmdTo.Enabled = True
LvItemNV.Enabled = False
End Sub
Private Sub DISPLAY_LISTVIEW()
Dim rs As New ADODB.Recordset
Dim rs1 As New ADODB.Recordset
Dim str
Dim Mitem As ListItem
Dim Temp
LvItemNV.ListItems.Clear
str = "Select * from Nhansu"
rs.Open str, CN, adOpenKeyset, adLockOptimistic, adCmdText
If rs.EOF = False Then
While Not rs.EOF
Set Mitem = LvItemNV.ListItems.Add(, , rs!MaNV)
Mitem.SubItems(1) = rs!Hodem + " " + rs!Ten
Mitem.SubItems(2) = Format(rs!Ngaysinh, "dd/mm/yyyy")
Mitem.SubItems(3) = rs!MaTo
str = "select * from TOSX where MaTo='" & Trim(rs!MaTo) & "'"
rs1.Open str, CN
If rs1.EOF = False Then
Mitem.SubItems(4) = rs1!Tento
Temp = rs1!MaDV
End If
rs1.Close
str = "select * from Donvi where MaDV='" & Trim(Temp) & "'"
rs1.Open str, CN
If rs1.EOF = False Then
Mitem.SubItems(5) = rs1!TenDV
End If
rs1.Close
rs.MoveNext
Wend
End If
End Sub
Private Sub LvItemNV_GotFocus()
LvItemNV.BackColor = &HC0E0FF
End Sub
Private Sub LvItemNV_ItemClick(ByVal Item As MSComctlLib.ListItem)
TxtMaNV = Item.TEXT
TxtHoTen = Item.SubItems(1)
TxtNgaysinh = Format(Item.SubItems(2), "dd/mm/yyyy")
TxtMaTo = Item.SubItems(3)
TxtTenTo = Item.SubItems(4)
TxtTenDV = Item.SubItems(5)
End Sub
Private Sub LvItemNV_LostFocus()
LvItemNV.BackColor = &HFFFFFF
End Sub
Private Sub SAVE_DATA()
Dim rs As New ADODB.Recordset
Dim str
str = "update Nhansu set MaDV='" & Trim(TxtMaDV) & "',MaTo='" & Trim(TxtMaToDVM) & "' where MaNV='" & Trim(TxtMaNV) & "'"
CN.Execute (str)
DISPLAY_LISTVIEW
LOCK_TEXT
SET_NULL
End Sub
-Form Cập nhật danh sách hợp đồng :
Option Explicit
Private flag As String
Dim n As Integer
Dim k As Boolean
Private Sub TRANGTHAI()
Dim rs As New ADODB.Recordset
Dim str
Dim n As Integer
str = "select * from HopdongLD"
rs.Open str, CN, adOpenKeyset, adLockOptimistic, adCmdText
n = rs.RecordCount
If n = 0 Then
CmdUpdate.Enabled = False
CmdDel.Enabled = False
Else
CmdUpdate.Enabled = True
CmdDel.Enabled = True
End If
End Sub
Private Sub CmdChonHD_Click()
CODK = "HD"
Frm_ChonTH.Show
End Sub
Private Sub CmdChonNV_Click()
CODK = "NS"
Frm_ChonTH.Show
End Sub
Private Sub CmdClose_Click()
Unload Me
End Sub
Private Sub CmdNew_Click()
UN_LOCK_TEXT
SET_NULL
LvItem.Enabled = False
End Sub
Private Sub CmdUpdate_Click()
flag = "update"
If Trim(TxtHoTen) = "" Or Trim(TxtMaHD) = "" Then
MsgBox "Chu y : Ban chua tron thong tin can thay doi", vbCritical, "Thong bao"
LvItem.SetFocus
Exit Sub
End If
UN_LOCK_TEXT
CmdChonNV.Enabled = False
CmdChonHD.Enabled = False
TxtNgayKi.Enabled = False
End Sub
Private Sub Lvitem_GotFocus()
LvItem.BackColor = &HC0E0FF
End Sub
Private Sub LvItem_LostFocus()
LvItem.BackColor = &HFFFFFF
End Sub
Private Sub DISPLAY_LISTVIEW()
Dim rs As New ADODB.Recordset
Dim rs1 As New ADODB.Recordset
Dim rs2 As New ADODB.Recordset
Dim str
Dim str1
Dim Mitem As ListItem
LvItem.ListItems.Clear
str = "select * from HopdongLD order by MaNV asc"
rs.Open str, CN, adOpenKeyset, adLockOptimistic, adCmdText
If rs.EOF = False Then
While Not rs.EOF
Set Mitem = LvItem.ListItems.Add(, , rs!MaNV)
str = "select * from Nhansu where MaNV='" & rs!MaNV & "'"
rs1.Open str, CN
If rs1.EOF = False Then
Mitem.SubItems(1) = rs1!Hodem
Mitem.SubItems(2) = rs1!Ten
End If
rs1.Close
Mitem.SubItems(3) = rs!MaHD
str1 = " select * from Hopdong where MaHD='" & rs!MaHD & "'"
rs2.Open str1, CN
If rs2.EOF = False Then
Mitem.SubItems(4) = rs2!TenHD
End If
rs2.Close
Mitem.SubItems(5) = rs!Ngayki
Mitem.SubItems(6) = rs!Thoihan
Mitem.SubItems(7) = rs!BacLuong
Mitem.SubItems(8) = rs!MucBHYT
Mitem.SubItems(9) = rs!MucBHXH
Mitem.SubItems(10) = rs!Luong
Mitem.SubItems(11) = rs!Ghichu
rs.MoveNext
Wend
rs.Close
End If
End Sub
Private Sub DEL_DATA()
Dim str
Dim response
If Trim(TxtHoTen) = "" Or Trim(TxtTenHD) = "" Then
MsgBox " Chu y : Ban chua tron thong tin can loai bo", vbCritical, "Thong bao"
LvItem.SetFocus
Exit Sub
End If
Me.MousePointer = 11
response = MsgBox("Ban co chac chan loai bo nhan vien " & TxtHoTen & "" + Chr$(10) + " ra khoi danh sach hop dong khong ?", vbYesNo + vbQuestion, "Thong bao")
If response = vbNo Then
Me.MousePointer = 0
SET_NULL
Exit Sub
Else
CN.BeginTrans
str = "delete from HopdongLD where MaHD='" & Trim(TxtMaHD) & "' and MaNV='" & Trim(TxtMaNV) & "'"
CN.Execute (str)
CN.CommitTrans
End If
SET_NULL
LOCK_TEXT
DISPLAY_LISTVIEW
Me.MousePointer = 0
End Sub
Private Sub SAVE_DATA()
Dim rs As New ADODB.Recordset
Dim str
If Trim(TxtHoTen) = "" Or Trim(TxtBL) = "" Or Trim(TxtThoiHan) = "" Then
MsgBox "Chu y : Ban phai nhap du lieu day du truoc khi luu", vbOKOnly + vbExclamation, "Thong bao"
Me.MousePointer = 0
Exit Sub
End If
TEST_NULL
str = "select * from HopdongLD where MaHD='" & Trim(TxtMaHD) & "' and MaNV='" & Trim(TxtMaNV) & "' and Ngayki=#" & Format(TxtNgayKi) & "#"
rs.Open str, CN
If rs.EOF = True Then
str = "insert into HopdongLD values('" & Trim(TxtMaNV) & "',#" & Format(TxtNgayKi, "dd/mm/yyyy") & "#,'" & Trim(TxtMaHD) & "','" & CDbl(TxtThoiHan) & "','" & CDbl(TxtBL) & "','" & Val(LBBHYT.Caption) & "','" & Val(LbBHXH.Caption) & "','" & Val(LbLuong.Caption) & "','" & Trim(TxtGhichu) & "')"
CN.Execute (str)
Else
If flag = "save" Then
MsgBox "Nhan vien " & TxtHoTen & " da nhan hop dong . Vui long kiem tra lai", vbOKOnly + vbExclamation, "Thong bao"
Me.MousePointer = 0
Exit Sub
End If
str = "update HopdongLD set Thoihan='" & CDbl(TxtThoiHan) & "',Bacluong='" & CDbl(TxtBL) & "',MucBHYT='" & CDbl(LBBHYT.Caption) & "',MucBHXH='" & CDbl(LbBHXH.Caption) & "', Ghichu='" & Trim(TxtGhichu) & "',MaHD='" & Trim(TxtMaHD) & "',Luong='" & CDbl(LbLuong.Caption) & "' where MaNV='" & Trim(TxtMaNV) & "' and Ngayki=#" & Format(TxtNgayKi, "dd/mm/yyyy") & "#"
CN.Execute (str)
End If
SET_NULL
LOCK_TEXT
DISPLAY_LISTVIEW
CmdNew.SetFocus
Me.MousePointer = 0
LvItem.Enabled = True
End Sub
Private Sub LOCK_TEXT()
TxtThoiHan.Enabled = False
TxtNgayKi.Enabled = False
CmdChonNV.Enabled = False
TxtBL.Enabled = False
TxtGhichu.Enabled = False
CmdChonHD.Enabled = False
CmdSave.Enabled = False
CmdSkip.Enabled = False
CmdNew.Enabled = True
CmdUpdate.Enabled = True
CmdDel.Enabled = True
flag = ""
End Sub
Private Sub UN_LOCK_TEXT()
TxtThoiHan.Enabled = True
TxtNgayKi.Enabled = True
TxtGhichu.Enabled = True
TxtBL.Enabled = True
CmdChonNV.Enabled = True
CmdChonHD.Enabled = True
CmdSave.Enabled = True
CmdSkip.Enabled = True
CmdNew.Enabled = False
CmdUpdate.Enabled = False
CmdDel.Enabled = False
End Sub
Private Sub SET_NULL()
TxtMaNV = ""
TxtHoTen = ""
TxtMaHD = ""
TxtThoiHan = ""
TxtGhichu = ""
TxtTenHD = ""
TxtBL = ""
LBBHYT.Caption = ""
LbBHXH.Caption = ""
LbLuong.Caption = ""
TxtNgayKi = "__/__/____"
End Sub
Private Sub CmdDel_Click()
DEL_DATA
TRANGTHAI
End Sub
Private Sub CmdSave_Click()
If flag "update" Then
flag = "save"
End If
SAVE_DATA
End Sub
Private Sub CmdSkip_Click()
SET_NULL
LOCK_TEXT
TRANGTHAI
LvItem.Enabled = True
End Sub
Private Sub Form_Load()
LOCK_TEXT
DISPLAY_LISTVIEW
SET_NULL
TRANGTHAI
Me.Left = 2200
Me.Top = 700
End Sub
Private Sub LvItem_ItemClick(ByVal Item As MSComctlLib.ListItem)
Dim rs As New ADODB.Recordset
Dim rs1 As New ADODB.Recordset
Dim rs2 As New ADODB.Recordset
Dim str
Dim str1
str = "select * from HopdongLD"
rs.Open str, CN, adOpenKeyset, adLockOptimistic, adCmdText
If rs.EOF = False Then
TxtMaNV = Item.TEXT
str = " select * from Nhansu where MaNV='" & rs!MaNV & "'"
rs1.Open str, CN
If rs1.EOF = False Then
TxtHoTen = Item.SubItems(1) + " " + Item.SubItems(2)
End If
rs1.Close
TxtMaHD = Item.SubItems(3)
str1 = "select * from Hopdong where MaHD='" & rs!MaHD & "'"
rs2.Open str1, CN
If rs2.EOF = False Then
TxtTenHD = Item.SubItems(4)
End If
rs2.Close
TxtNgayKi = Format(Item.SubItems(5), "dd/mm/yyyy")
TxtThoiHan = Item.SubItems(6)
TxtBL = Item.SubItems(7)
LBBHYT.Caption = Item.SubItems(8)
LbBHXH.Caption = Item.SubItems(9)
LbLuong.Caption = Item.SubItems(10)
TxtGhichu = Item.SubItems(11)
End If
rs.Close
End Sub
Private Sub TEST_NULL()
If Trim(TxtThoiHan) = "" Then TxtThoiHan = CDbl("1.0")
If Trim(TxtGhichu) = "" Then TxtGhichu = "-"
If TxtNgayKi = "__/__/____" Then TxtNgayKi = "01/01/1900"
End Sub
Private Sub TxtBL_Change()
If IsNumeric(TxtBL) = False Then
TxtBL = ""
End If
LbLuong.Caption = Val(TxtBL) * 210000 - (Val(LBBHYT.Caption) * 210000 / 100) - (Val(LbBHXH.Caption) * 210000 / 100)
End Sub
Private Sub TxtBL_GotFocus()
Call GOT_FOCUS(TxtBL)
End Sub
Private Sub TxtBL_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
End If
End Sub
Private Sub TxtBL_LostFocus()
Call LOST_FOCUS(TxtBL)
End Sub
Private Sub TxtHoten_GotFocus()
Call GOT_FOCUS(TxtHoTen)
End Sub
Private Sub TxtHoten_LostFocus()
Call LOST_FOCUS(TxtHoTen)
End Sub
Private Sub TxtMaNV_Change()
Dim rs As New ADODB.Recordset
Dim str
str = "select * from Nhansu where MaNV='" & Trim(TxtMaNV) & "'"
rs.Open str, CN, adOpenKeyset, adLockOptimistic, adCmdText
If rs.EOF = False Then
If Trim(rs!BHYT) = "-" Then
LBBHYT.Caption = 0
Else
LBBHYT.Caption = 3
End If
If Trim(rs!BHXH) = "-" Then
LbBHXH.Caption = 0
Else
LbBHXH.Caption = 2
End If
End If
rs.Close
End Sub
Private Sub TxtNgayKi_GotFocus()
TxtNgayKi.BackColor = &HC0E0FF
End Sub
Private Sub TxtNgayKi_LostFocus()
TxtNgayKi.BackColor = &HFFFFFF
End Sub
Private Sub TxtThoiHan_GotFocus()
Call GOT_FOCUS(TxtThoiHan)
End Sub
Private Sub TxtThoiHan_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
TxtGhichu.SetFocus
End If
End Sub
Private Sub TxtThoiHan_LostFocus()
Call LOST_FOCUS(TxtThoiHan)
End Sub
Private Sub TxtTenHD_GotFocus()
Call GOT_FOCUS(TxtTenHD)
End Sub
Private Sub TxtGhichu_LostFocus()
Call LOST_FOCUS(TxtGhichu)
End Sub
Private Sub TxtGhichu_GotFocus()
Call GOT_FOCUS(TxtGhichu)
End Sub
Private Sub TxtGhichu_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
CmdSave.SetFocus
End If
End Sub
Private Sub TxtTenHD_LostFocus()
Call LOST_FOCUS(TxtTenHD)
End Sub
Private Sub TxtThoiHan_Change()
If IsNumeric(TxtThoiHan) = False Then
TxtThoiHan = ""
End If
End Sub
Kết Luận
Mặc dù đã rất cố gắng tìm hiểu công việc "Quản lý nhân sự" nhưng không sao tránh khỏi những thiếu sót. Mong quý Thầy , Cô và các bạn đóng góp ý kiến để em rút ra được nhiều kinh nghiệm quý báu khi bước vào cuộc sống mới.
Quá trình khảo sát, phân tích - thiết kế và cài đặt bài toán quản lý nhân sự cơ bản đã hoàn thành những công việc sau :
- Cập nhật, lưu trữ, thêm thông tin:
* Cập nhật danh sách hợp đồng
* Cập nhật danh sách đoàn viên
* Cập nhật danh sách đảng viên
* Cập nhật danh sách bảo hiểm y tế
* Cập nhật danh sách bảo hiểm xã hội
* Cập nhật danh sách hồ sơ nhân viên
- Báo biểu:
* Danh bạ điện thoại
* Danh sách báo cáo chung
* Danh sách lý lịch cá nhân
- Tra cứu :
* Tra cứu thông tin
* Tìm kiếm thông tin
Do thời gian hạn chế và trình độ hiểu biết của bản thân chưa nhiều nên việc phân tích thiết kế và cài đặt bài toán quản lý nhân sự chưa hoàn thiện như một phần mềm quản lý. Nó mang tính chất học hỏi, trao đổi và bắt đầu làm quen với thực tế. Nhưng qua đợt thực tập này, em đã học hỏi được nhiều kinh nghiệm trong quá trình phân tích thiết kế và cài đặt một chương trình quản lý, đồng thời cũng bổ sung kiến thức cho bản thân.
Em xin chân thành cảm ơn thầy Nguyễn Đình Thuận đã tận tình giúp đỡ để em hoàn thành đồ án của mình.Tôi cảm ơn các bạn đã đóng góp ý kiến và động viên để tôi hoàn thành đồ án này.
Hướng phát triển
- Mở rộng bài toán cho nhiều cơ quan
- Mở rộng chương trình mang tính chuyên nghiệp cao hơn .
Tài Liệu tham khảo
[1] - " Microsoft Visual Basic & Lập trình cơ sở dữ liệu 6.0 ", Nguyễn Thị Ngọc Mai (chủ biên), Nhà xuất bản lao động -Xã hội.
[2] - " Những bài thực hành cơ sở dữ liệu Visual Basic căn bản ", Ks. Đinh Xuân Lâm, Nhà xuất bản thống kê.
[3] - " Bài giảng Microsoft Access ", Ths.Nguyễn Đình Thuân
[4] - "Bài giảng cơ sở dữ liệu & phân tích và thiết kế hệ thống thông tin quản lý ", Ths. Nguyễn Hữu Trọng.
[5] - " Phân tích thiết kế hệ thống thông tin quản lý ", Ths. Đinh Thế Hiển, Nhà xuất bản thống kê - 2000.
[6] - " Một số bài luận văn tốt nghiệp " của anh chị các khoá trước.
Các file đính kèm theo tài liệu này:
- 32702.doc