Đề tài Quản lý nhân sự trong công ty

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

doc89 trang | Chia sẻ: aloso | Lượt xem: 1790 | Lượt tải: 1download
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:

  • doc32702.doc