Đồ án Quản lý nhân sự - Trần Thanh Thủy

MỤC LỤC

Lời nói đầu

ChươngI. Mở đầu

I.Lí do chọn đề tài.

II.Khảo sát hệ thống

1. Giới thiệu chung về hoạt động hệ thống

2. Nhiệm vụ của hệ thống

3. Nhược điểm của hệ thống cũ

4. Ưu điểm của hệ thống mới

5. Cơ cấu tổ chức và cách tiến hành

6. Mô hình tiến ttrình nghiệp vụ

III.Mô hình tiến trình tin học hoá

IV.Hướng giải quyết và phạm vi giải quyết

Chương II.Phân tích và thiết kế hệ thống

I. Sơ đồ phân cấp chức năng

II. Các chức năng chính của hệ thống và nhiệm vụ cơ bản của hệ thống

1. Các chức năng chính của hệ thống

2. Nhiệm vụ cơ bản của các chức năng

2.1. Chức năng hệ thống

2.2. Chức năng quản lí hồ sơ

2.3. Chức năng quản lí lương

2.4. Chức năng thống kê báo cáo

III. Phân tích dữ liệu

1. Mô hình luồng dữ liệu mức khung cảnh

2. Mô hình luồng dữ liệu mức đỉnh

3. Mô hình luồng dữ liệu mức dưới đỉnh

3.1. mô hình luồng dữ liệu mức dưới đỉnhchức năng quản lí hồ sơ

3.2. Mô hình luồng dữ liệu mức dưới đỉnh chức năng quản lí lương

3.3. Mô hình luồng dữ liệu mức dưới đỉnh chức năng báo cáo thống kê

ChươngIII. Thiết kế hệ thống

Chương IV. Cài đặt và ứng dụng

 

 

doc51 trang | Chia sẻ: lynhelie | Lượt xem: 1383 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đồ án Quản lý nhân sự - Trần Thanh Thủy, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
rung bỡnh (20 đến 30 nhõn viờn). CHƯƠNG II. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG Để xõy dựng 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 ra và lựa chọn một giải phỏp thớch hợp và 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ệ thống mỏy tớnh. Nú là giai đoạn quan trọng nhất, vỡ kết quả cả giai đoạn này cho ta mụ tảlogic của hệ thống mới dựa trờn kết quả đú là căn cứ cho ta thiết kế sau này. Khụng thể dựng tin học trong cụng tỏc quản lớ mà khụng qua giai đoạn phõn tớch, hiệu quả cụng việc tin học 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 này, để chuyển từ bài toỏn thực tế sang bài toỏn quản lớ trờn mỏy tớnh thỡ cỏc sơ đồ luồng dữ liệu và thực thể liờn kết giỳp ta dễ dàng xỏc định chức năng của hệ thống và cú cỏi nhỡn tổng quỏt về cỏch quản lớ thực tế về hệ thống ta đang thiết kế. Biểu đồ phõn cấp chức năng của hệ thống quản lớ nhõn sự quản lí nhân sự hồ sơ nhân sự quản lí lương tìm kiếm báo cáo thống kê quản trị người dùng từ điển dữ liệu nhập dữ liệu sửa dữ liệu thông tin ngày công cập nhật lương tìm kiếm theo ma nv tìm kiếm theo mã lưong thống kê theo trình độ báo cáo lương nhân sự hệ thống trợ giúp bản quyền hướng dẫn thống kê danh sách đến tuổi nghỉ chế độ tìm kiếm theo trình độ in bảng lương nghỉ việc thoát thống kê danh sách lên lương hàng năm II. Cỏc chức năng chớnh của hệ thống và nhiờm vụ cơ bản của cỏc chức năng. Cỏc chức năng chớnh của hệ thống -Hệ thống -Quản lớ hồ sơ -Quản lớ lương -Bỏo cỏo thống kờ -Trợ giỳp 2. Nhiệm vụ cơ bản của cỏc chức năng 2.1. Chức năng hệ thống. Chức năng này cú nhiệm vụ giỳp người xem truy cập vào hệ thống dễ dàng. -Chức năng quản trị người dựng: -Chức năng này cú nhiệm vụ quản lớ người đăng nhập vào hệ thống. -Chức năng từ điển dữ liệu: Chức năng này cú nhiệm vụ tra cứu dữ liệu của từng nhõn viờn theo mó của nhõn viờn -Chức năng thoỏt: Chức năng này cú nhiệm vụ thoỏt ra khỏi chương trỡnh khi người dựng đó tra cứu xong hoặc khụng muốn tra cứu nữa. 2.2. Chức năng quản lớ hồ sơ. Chức năng này cú nhiệm vụ quản lớ tất cả cỏc thụng tin của nhõn viờn trong cơ quan. Cú thể tra cứu về nhõn viờn theo: lớ lịch, quan hệ gia đỡnh, quỏ trỡnh cụng tỏc -Chức năng nhập hồ sơ Chức năng này làm nhiệm vụ nhập tất cả thụng tin ban đầu cú liờn quan đến nhõn viờn mới đến làm việc tại cơ quan (ten, tuổi, cụng việc) theo cỏc loại hồ sơ biờn chế, hợp đồng ngắn hạn và hợp đồng dài hạn. thụng tin cỏ nhõn cú sự khỏc nhau cơ bản về lương và cụng việc. -Chức năng sửa hồ sơ Chức năng này làm nhiệm vụ sửa lại cỏc thụnh tin cú liờn quan đến cụng việc, lớ lịch, quan hệ gia đỡnh của nhõn viờn trong cơ quan (thụng tin mới về cụng việc, thay đổi về lớ lịch, quan hệ gia đỡnh như lấy vợ, lấy chồng). -Chức năng nghỉ việc Chức năng này cú nhiệm vụ thụng bỏo lớ do nghỉ việc của nhõn viờn trong cụng ty. 2.3. Chức năng quản lớ lương Chức năng này cú nhiệm vụ dựa vào số ngày cụng trong thỏng của từng nhõn viờn để tớnh lương cho nhõn viờn và phỏt lương cho nhõn viờn trong quỏ trỡnh cụng tỏc. -Chức năng thụng tin ngày cụng cú nhiệm vụ hàng ngày phải chấm cụng cho nhõn viờn trong cụng ty và nhập số ngày cụng của mỗi nhõn viờn trong một thỏng hay trong cả quỏ trỡnh cụng tỏc. -Chức năng cập nhật lương Chức năng này cú nhiệm vụ lấy cỏc thụng tin của từng nhõn viờn như số ngày cụng, hệ số lươngđể tớnh lương cho nhõn viờn trong cụng ty.Lương được tớnh như sau: +Lương cơ bản cố định là: 290000đ  +Mức lươnh chớnh= lương cơ bản * hệ số lương +Mức phụ cấp chức vụ= lương cơ bản * hệ số phụ cấp +Tổng mức lương= lương cơ bản +phụ cấp chức vụ (nếu cú) +Bảo hiểm xó hội = tổng mức lương * 5% +Tổng mức lương thực lĩnh = tổng mức lương – mức bảo hiểm xó hội. -Chức năng nhập bảng lương Chức năng này cú nhiệm vụ lấy thụng tin về lương của mỗi nhõn viờn để lập ra một bảng lương của toàn nhõn viờn trong cụng ty. -Chức năng thống kờ danh sỏch lờn lương hàng năm Chức năng này cú nhiệm vụ cập nhật thụng tin của nhõn viờn như trỡnh độ, quỏ trỡnh cụng tỏc, ưu tiờnđể tổng kết xem những nhan viờn nào được tăng lương trong năm. 2.4. Chức năng thống kờ bỏo cỏo Chức năng này cú nhiệm vụ đưa ra danh sỏch nhõn viờn, đưa ra bỏo cỏo thống kờ về nhõn viờn, thống kờ về trỡnh độ của nhõn viờn theo yờu cầu của ban lónh đạo phục vụ cho cụng tỏc quản lớ và hoạt độn của cụng ty. -Chức năng thống kờ theo trỡnh độ Chức năng này cú nhiệm vụ khi cú yờu cầu, chức năng này sẽ in ra những bỏo cỏo thống kờ theo trỡnh độ của nhõn viờn theo yờu cầu của ban lónh đạo.chẳng hạn nú sẽ đưa ra trong cơ quan cú bao nhiờu người là tiến sĩ, thạc sĩ, cú bao nhiờu người trỡnh độ đại học. -Chức năng thống kờ danh sỏch nhõn viờn đến tuổi nghỉ chế độ Chức năng này cú nhiệm vụ mối năm sẽ in ra một danh sach cỏc nhõn viờn đến tuổi nghỉ chế độ.chức năng này sẽ lấy thụng tin về quỏ trỡnh cụng tỏc của nhõn viờn từ kho dữ liệu hồ sơ trong chức năng quản lớ hồ sơ để thống kờ lờn danh sỏch đú và nộp cho ban lónh đạo. -Chức năng bỏo cỏo lương nhõn sự Chức năng này cú nhiệm vụ sẽ chỉ in ra bỏo cỏo về lương của nhõn viờn theo yờu cầu của ban giỏm đốc. dữ liệu đầu vào của chức năng này được lấy ra từ kho dữ liệu bảng lương do chức năng quản lớ lương cung cấp. III. Phõn tớch dữ liệu 1. Mụ hỡnh luồng dữ liệu mức khung cảnh Nhân viên Hồ sơ nhân viên Quản lý nhân sự Nhà quản lý Thông tin nhân viên Thông tin trả lời Các quyết định 2. Mụ hỡnh luồng dữ liệu mức đỉnh QLHS Thông tin NV Các quyết định Nhân viên T/tin trả lời T/t NV Quản lý lương Thông tin yêu cầu Thông tin trả lời Thông tin về lương Ngày công Thông tin yêu cầu Thông tin ngày công Hồ sơ T/tin trả lời Thông tin yêu cầu Báo cáo thống kê Báo cáo yêu cầu Các yêu cầu Nhà quản lý 3. Mụ hỡnh luồng dữ liệu mức dưới đỉnh 3.1 Mụ hỡnh luồng dữ liệu mức dưới đỉnh chức năng quản lớ hồ sơ Nhà quản lý Nhán viên Nhập HS Sửa HS Thông tin NV Thông tin NV Thông tin cá nhân cần nhập Thông tin cá nhân cần sửa Hồ sơ Thông tin hồ sơ được nhập Thông Tin hồ sơ được sửa Tìm kiếm Thông tin hồ sơ đã được tìm Thông tin hồ sơ cần tìm kiếm Yêu cầu tìm kiếm Thông tin cá nhân 3.2 Mụ hỡnh luồng dữ liệu mức dưới đỉnh chức năng quản lớ lương Tổng số ngày công Thông tin về hệ số lương của NV Cập nhật lương Thông tin ngày công Nhân viên Ngày công Hồ sơ Lập bảng lương nhân sự Bảng lương TK danh sách lên lương Tìm kiếm Ban lãnh đạo Danh sách những người được lên đường Thông tin theo yêu cầu Thông tin theo yêu cầu Thông tin theo yêu cầu 3.3 Mụ hỡnh luồng dữ liệu mức dưới đỉnh chức năng bỏo cỏo thống kờ Quản lý lương Bảng lương T.tin y/c T/tin trả lời Báo cáo lương nhân sự Nhà quản lý Thông tin y/c Thống kê theo trình độ Thông tin yêu cầu Bảng lương của NV In Thông tin về trình đọ của NV Hồ sơ TK theo trình độ NN Thống kê đến tuổi nghỉ chế độ Thông tin yêu cầu trình độ Thông tin yêu cầu Danh sách nhân viên đến tuổi nghỉ chế độ Chương III: Thiết kế hệ thống I.Thiết kế cơ sở dữ liệu Sơ đồ liên kết thực thể Để xây dựng một hệ cơ sở dữ liệu giúp cho máy tính làm việc có hiệu quả cao trong quá trình xử lý các công việc, ta phải thiết kế một hệ cơ sở dữ liệu đảm bảo được những yêu cầu sau. Tránh được sự dư thừa thông tin, dữ liệu Đảm bảo được sự an toàn dữ liệu, tránh sự mất mát thông tin khi thực hiện công việc. Đảm bảo giảm được độ phức tạp tính toán, dễ sử dụng khi khai thác dữ liệu. Giai đoạn này dựa trên các mẫu biểu thu thập thông tin đầu vào của hệ thống. Ngoài thông tin nhận được khi tiến hành phân tích các mẫu biểu thì quá trình tiếp xúc cũng là nguồn thông tin quan trọng giúp xác định các thực thể, kiểu thực thể, mỗi quan hệ các thực thể. Với mỗi thực thể cần xác định các thông tin như: Tên thực thể, thuộc tính, quan hệ giữa các thực thể, khóa. Sau khi chuẩn hóa mô hình thực thể liên kết dựa theo dạng chuẩn 3 của mô hình dữ liệu quan hệ ta thu được mô hình thực thể liên kết. Mô hình thực thể liên kết Dùng để xác định các thông tin cơ sở có ích cho hệ thống giúp ta nhận rõ mối quan hệ bên trong hoặc các tham trỏ chéo giữa chúng. Mô hình luồng dữ liệu chứa đầy đủ các thuộc tính hay các cơ sở dữ liệu cần thiết cho công tác quản lý. Tránh được mức dư thừa hay tổn thất nhất định, thuận lợi cho việc xây dựng và thiết kế chương trình. Từ sự phân tích về hệ thống chức năng xử lý của hệ thống biểu đồ phân cấp chức năng, biểu đồ luồng dữ liệu ta có thể xây dựng mô hình thực thể liên kết để lưu trữ các thông tin về các thực thể như sau: Luong Maluong Hsluong Tongiao Matongiao Tentongiao Phongban Mapb Tenpb Trinhdong.. Matdnn Tentdnn Dantoc Madantoc Tendantoc Trinhdoch.. Matdcm Tentdcm Ngaycong Manv Ngaycong Thang Nam 1 1 1 1 1 1 ∞ ∞ ∞ ∞ ∞ ∞ Hoso Manv Maluong Mapb Hoten Ngaysinh Gioitinh Socmnd Matdcm Matdnn Hktt Diachi Madantoc Matongiao Ngayvaodoan Ngayvaodang Khenthuong Kyluat Qtct ∞ 1 Thiết kế tệp Mục đích: Xây dựng dữ liệu từ biểu đồ cấu trúc dữ liệu có thông tin đầy đủ và cho phép truy nhập nhanh. Phương thức tiến hành dựa trên hệ quản trị cơ sở dữ liệu có sẵn sử dụng các ngôn ngữ định nghĩa dữ liệu để xây dựng các tệp dữ liệu. 1. Bảng HOSO HOSO Thuộc tính Loại Độ rộng Giải thích Thực thể MANV C 5 mã nhân viên MAPB C 5 mã phòng ban MALUONG C 5 mã lương HOTEN C 22 họ tên NGAYSINH D 8 ngày sinh GIOITINH C 8 giới tính DIACHI C 28 địa chỉ CHUCDANH C 10 chức danh MATDCM C 6 mã trình độ chuyên môn MATDNN C 6 mã trình độ ngoại ngữ HKTT C 20 hộ khẩu thường trú DANTOC C 10 dân tộc TONGIAO C 10 tôn giáo NVDOAN D 8 ngày vào đoàn NVDANG D 8 ngày vào đảng KHENTHUONG M khen thưởng KYLUAT M kỷ luật QTCT M quá trình công tác 2. Bảng LUONG LUONG Thuộc tính Loại Độ rộng Giải thích Thực thể MALUONG C 5 mã lương HSLUONG N 5 hệ số lương LUONGCB N 10 lương cơ bản 3. Bảng PHONGBAN PHONGBAN Thuộc tính Loại Độ rộng Giải thích Thực thể MAPB C 5 mã phòng ban TENPB C 5 tên phòng ban 4. Bảng TONGIAO TONGIAO Thuộc tính Loại Độ rộng Giải thích Thực thể MATONGIAO C 5 mã tôn giáo TENTONGIAO C 5 tên tôn giáo 5. Bảng NGAYCONG NGAYCONG Thuộc tính Loại Độ rộng Giải thích Thực thể MANV C 5 mã nhân viên NGAYCONG C 5 ngày công THANG C 5 tháng NAM C 5 năm 6. Bảng TRINHDOCM TRINHDOCM Thuộc tính Loại Độ rộng Giải thích Thực thể MATDCM C 5 mã trình độ chuyên môn TENTDCM C 5 tên trình độ chuyên môn 7. Bảng TRINHDONN TRINHDONN Thuộc tính Loại Độ rộng Giải thích Thực thể MATDNN C 5 mã trình độ ngoại ngữ TENTDNN C 5 tên trình độ ngoại ngữ 8. Bảng DANTOC DANTOC Thuộc tính Loại Độ rộng Giải thích Thực thể MADANTOC C 5 mã dân tộc TENDANTOC C 5 tên dân tộc Chương IV. CàI ĐặT Và ứNG DụNG I. Một số giao diện chính và hoạt động 1. Form hồ sơ cho phép nhập, sửa, xoá thông tin nhân viên Dim fag As Integer Private Sub cmdAE_Click() Dim sql As String Dim sex As Integer Call Opendb Select Case cmdAE.Caption Case "Tạo mới" fag = 0 cmdAE.Caption = "Lưu lại" Call AddEnableT 'txtSex = txtSex.List(0) 'txtTG = txtTG.List(0) 'txtDT = txtDT.List(0) 'txtPB = txtPB.List(0) 'txtTDCM = txtTDCM.List(0) 'txtTDNN = txtTDNN.List(0) 'txtLuong = txtLuong.List(0) txtHoTen.SetFocus lstNV.Enabled = False Case "Sửa đổi" fag = 1 cmdAE.Caption = "Lưu lại" Call AddEnableT txtHoTen.SetFocus lstNV.Enabled = False Case "Lưu lại" If Trim(txtHoTen) = "" Or Trim(txtDiachi) = "" _ Or Trim(txtCMND) = "" Or Trim(txtHKTT) = "" _ Or txtSex.ListIndex < 0 Or txtLuong.ListIndex < 0 _ Or txtPB.ListIndex < 0 Or txtDT.ListIndex < 0 _ Or txtTG.ListIndex < 0 Or txtTDCM.ListIndex < 0 _ Or txtTDNN.ListIndex < 0 Then MsgBox " Bạn phải điền đầy đủ thông tin vào các ô trống.", vbInformation, "Thông báo" Exit Sub End If If txtSex = "Nam" Then sex = 1 Else sex = 0 End If If fag = 0 Then sql = "insert into hoso(maluong,mapb,hoten,ngaysinh,gioitinh,socmnd,matdcm,matdnn,hktt,diachi,madantoc,matongiao,ngayvaodoan,ngayvaodang)" sql = sql & "Values(" & txtLuong.ItemData(txtLuong.ListIndex) & "," & txtPB.ItemData(txtPB.ListIndex) & ",'" & txtHoTen & "','" & txtNgaysinh & "','" sql = sql & sex & "'," & txtCMND & "," & txtTDCM.ItemData(txtTDCM.ListIndex) & "," & txtTDNN.ItemData(txtTDNN.ListIndex) & ",'" & txtHKTT & "','" sql = sql & txtDiachi & "'," & txtDT.ItemData(txtDT.ListIndex) & "," & txtTG.ItemData(txtTG.ListIndex) & ",'" & txtDoan & "','" & txtDang sql = sql & "')" db.Execute sql cmdAE.Caption = "Tạo mới" ElseIf fag = 1 Then sql = "Update hoso set maluong=" & txtLuong.ItemData(txtLuong.ListIndex) & ",mapb=" & txtPB.ItemData(txtPB.ListIndex) & ",hoten='" & txtHoTen & "',ngaysinh='" & txtNgaysinh sql = sql & "',gioitinh='" & sex sql = sql & "',socmnd=" & txtCMND sql = sql & ",matdcm=" & txtTDCM.ItemData(txtTDCM.ListIndex) sql = sql & ",matdnn=" & txtTDNN.ItemData(txtTDNN.ListIndex) sql = sql & ",hktt='" & txtHKTT sql = sql & "',diachi='" & txtDiachi & "',madantoc=" & txtDT.ItemData(txtDT.ListIndex) & ",matongiao=" & txtTG.ItemData(txtTG.ListIndex) & ",ngayvaodoan='" & txtDoan & "',ngayvaodang ='" & txtDang & "'" sql = sql & " where manv=" & txtManv db.Execute sql cmdAE.Caption = "Sửa đổi" End If Call Form_Load Call AddEnableF lstNV.Enabled = True Call ClearTT End Select Call Closedb End Sub Private Sub cmdCancel_Click() If fag = 0 Then cmdAE.Caption = "Tạo mới" Call ClearTT Else cmdAE.Caption = "Sửa đổi" End If Call AddEnableF End Sub Private Sub cmdDel_Click() Dim a, sql As String Dim rs As Recordset Dim i As Integer If lstNV.ListIndex < 0 Then MsgBox "Chọn tên trên danh sách để đưa vào danh sách những người" & Chr(13) & "không làm việc nữa.", vbInformation, "Thông báo" Exit Sub End If a = MsgBox("Bạn có chắc chắn không?", vbQuestion + vbYesNo, "Chú ý") If a = vbYes Then Call Opendb sql = "Select * from hoso where manv=" & lstNV.ItemData(lstNV.ListIndex) Set rs = db.OpenRecordset(sql) sql = "insert into nghiviec(manv,maluong,mapb,hoten,ngaysinh,gioitinh,socmnd,matdcm,matdnn,hktt,diachi,madantoc,matongiao,ngayvaodoan,ngayvaodang)" sql = sql & "Values(" & rs("manv") & "," & rs("maluong") & "," & rs("mapb") & ",'" & rs("hoten") & "','" & rs("ngaysinh") & "','" sql = sql & rs("gioitinh") & "'," & rs("socmnd") & "," & rs("matdcm") & "," & rs("matdnn") & ",'" & rs("hktt") & "','" sql = sql & rs("Diachi") & "'," & rs("madantoc") & "," & rs("matongiao") & ",'" & rs("ngayvaodoan") & "','" & rs("ngayvaodang") sql = sql & "')" db.Execute sql db.Execute "Delete * from hoso where manv=" & lstNV.ItemData(lstNV.ListIndex) Call Closers(rs) MsgBox "Hoàn thành công việc." Call Closedb Call Form_Load End If End Sub Private Sub Form_Load() Dim sql, term, tu, toi As String Dim rs1 As Recordset Dim i, dem As Integer Call Opendb sql = "Select * from tdcm" Set rs1 = db.OpenRecordset(sql) txtTDCM.Clear i = 0 While Not rs1.EOF txtTDCM.AddItem rs1(1) txtTDCM.ItemData(i) = rs1(0) rs1.MoveNext i = i + 1 Wend 'luong sql = "Select * from luong" Set rs1 = db.OpenRecordset(sql) txtLuong.Clear i = 0 While Not rs1.EOF txtLuong.AddItem rs1(1) & " * " & rs1(2) txtLuong.ItemData(i) = rs1(0) rs1.MoveNext i = i + 1 Wend sql = "Select * from tdnn" Set rs1 = db.OpenRecordset(sql) txtTDNN.Clear i = 0 While Not rs1.EOF txtTDNN.AddItem rs1(1) txtTDNN.ItemData(i) = rs1(0) rs1.MoveNext i = i + 1 Wend sql = "Select * from dantoc" Set rs1 = db.OpenRecordset(sql) txtDT.Clear i = 0 While Not rs1.EOF txtDT.AddItem rs1(1) txtDT.ItemData(i) = rs1(0) rs1.MoveNext i = i + 1 Wend sql = "Select * from phongban" Set rs1 = db.OpenRecordset(sql) txtPB.Clear i = 0 While Not rs1.EOF txtPB.AddItem rs1(1) txtPB.ItemData(i) = rs1(0) rs1.MoveNext i = i + 1 Wend sql = "Select * from tongiao" Set rs1 = db.OpenRecordset(sql) txtTG.Clear i = 0 While Not rs1.EOF txtTG.AddItem rs1(1) txtTG.ItemData(i) = rs1(0) rs1.MoveNext i = i + 1 Wend txtSex.Clear txtSex.AddItem "Nam" txtSex.AddItem "Nu" If Len(sTim) > 0 Then term = right(sTim, 1) sTim = Left(sTim, Len(sTim) - 1) Select Case term Case "M" sql = "Select manv,hoten from hoso where manv=" & sTim Case "T" sql = "Select manv,hoten from hoso where matdcm=" & sTim Case "L" dem = InStr(1, sTim, "A", vbTextCompare) tu = Mid(sTim, 1, dem - 1) toi = Mid(sTim, dem + 1) With frmTimL If .optB = True Then sql = "Select s.manv,s.hoten from hoso s,luong l where l.maluong=s.maluong and l.luong =" & tu If .optL = True Then sql = "Select s.manv,s.hoten from hoso s,luong l where l.maluong=s.maluong and l.luong >=" & tu If .optN = True Then sql = "Select s.manv,s.hoten from hoso s,luong l where l.maluong=s.maluong and l.luong <=" & tu If .optK = True Then sql = "Select s.manv,s.hoten from hoso s,luong l where l.maluong=s.maluong and l.luong >= " & tu & " and l.luong <= " & toi End With End Select Else sql = "Select manv,hoten from hoso" End If Set rs1 = db.OpenRecordset(sql) lstNV.Clear i = 0 While Not rs1.EOF lstNV.AddItem rs1(1) lstNV.ItemData(i) = rs1(0) rs1.MoveNext i = i + 1 Wend Call Closers(rs1) Call Closedb Call AddEnableF cmdCancel.Enabled = False End Sub Sub AddEnableT() 'txtManv.Enabled = True txtHoTen.Enabled = True txtNgaysinh.Enabled = True txtDiachi.Enabled = True txtSex.Enabled = True txtPB.Enabled = True txtTDCM.Enabled = True txtTDNN.Enabled = True txtCMND.Enabled = True txtHKTT.Enabled = True txtDang.Enabled = True txtDoan.Enabled = True txtDT.Enabled = True txtTG.Enabled = True txtLuong.Enabled = True cmdCancel.Enabled = True End Sub Sub AddEnableF() txtManv.Enabled = False txtHoTen.Enabled = False txtNgaysinh.Enabled = False txtDiachi.Enabled = False txtSex.Enabled = False txtPB.Enabled = False txtTDCM.Enabled = False txtTDNN.Enabled = False txtCMND.Enabled = False txtHKTT.Enabled = False txtDang.Enabled = False txtDoan.Enabled = False txtDT.Enabled = False txtTG.Enabled = False txtLuong.Enabled = False cmdCancel.Enabled = False End Sub Sub ClearTT() txtHoTen = "" txtDiachi = "" txtHKTT = "" txtDoan = "" txtDang = "" txtCMND = "" txtManv = "" End Sub Private Sub lstNV_Click() Dim rs As Recordset Dim sql, a As String Dim i As Integer Call Opendb With lstNV If .ListIndex >= 0 Then sql = "select * from hoso where manv=" & .ItemData(.ListIndex) Set rs = db.OpenRecordset(sql) If Not rs.EOF Then txtManv = rs("manv") txtHoTen = rs("hoten") txtNgaysinh = rs("ngaysinh") If rs("gioitinh") = False Then txtSex = "Nu" Else txtSex = "Nam" End If txtDiachi = rs("diachi") txtCMND = rs("socmnd") txtHKTT = rs("hktt") txtDoan = rs("ngayvaodoan") txtDang = rs("ngayvaodang") 'tdcm For i = 0 To txtTDCM.ListCount - 1 If rs("matdcm") = txtTDCM.ItemData(i) Then txtTDCM = txtTDCM.List(i) Next 'tdnn For i = 0 To txtTDNN.ListCount - 1 If rs("matdnn") = txtTDNN.ItemData(i) Then txtTDNN = txtTDNN.List(i) Next 'dt For i = 0 To txtDT.ListCount - 1 If rs("madantoc") = txtDT.ItemData(i) Then txtDT = txtDT.List(i) Next 'tg For i = 0 To txtTG.ListCount - 1 If rs("matongiao") = txtTG.ItemData(i) Then txtTG = txtTG.List(i) Next 'pb For i = 0 To txtPB.ListCount - 1 If rs("mapb") = txtPB.ItemData(i) Then txtPB = txtPB.List(i) Next 'luong For i = 0 To txtLuong.ListCount - 1 If rs("maluong") = txtLuong.ItemData(i) Then txtLuong = txtLuong.List(i) Next End If End If End With Call Closers(rs) Call Closedb cmdAE.Enabled = True End Sub 2. Form bảng lương theo tháng Sub loadBL() With txtBL .Clear .Cols = 5 .Rows = 2 .ColWidth(0) = 3000 .ColAlignment(0) = 3 .ColWidth(1) = 3000 .ColWidth(2) = 1500 .ColWidth(3) = 1500 .ColWidth(4) = 1500 .ColAlignment(1) = 3 .ColAlignment(2) = 3 .ColAlignment(3) = 3 .ColAlignment(4) = 3 .TextMatrix(0, 0) = "Tên nhân viên" .TextMatrix(0, 1) = "Ngày công" .TextMatrix(0, 2) = "Lương cb" .TextMatrix(0, 3) = "Hs Lương" .TextMatrix(0, 4) = "Lương" End With End Sub Private Sub Form_Load() Dim i As Integer Call loadBL txtNam.Clear For i = 2000 To 2200 txtNam.AddItem i Next txtThang.Clear For i = 1 To 12 txtThang.AddItem i Next txtThang = txtThang.List(7) txtNam = txtNam.List(4) End Sub Private Sub txtNam_Click() Dim sql As String Dim rs As Recordset Dim i, j As Integer Call Opendb sql = "Select s.hoten,c.songaycong,l.luongcb,l.hsluong from hoso s,luong l,ngaycong c where s.maluong=l.maluong and s.manv=c.manv and c.thang='" & txtThang & "' and c.nam='" & txtNam & "'" Set rs = db.OpenRecordset(sql) Call loadBL i = 1 With txtBL While Not rs.EOF .TextMatrix(i, 0) = rs("hoten") .TextMatrix(i, 1) = rs("songaycong") .TextMatrix(i, 2) = rs("luongcb") .TextMatrix(i, 3) = rs("hsluong") .TextMatrix(i, 4) = Val(rs("luongcb")) * Val(rs("hsluong")) rs.MoveNext i = i + 1 Wend End With Call Closedb End Sub Private Sub txtThang_Click() Call txtNam_Click End Sub 3. Form bảng chấm công và bảng cập nhật lương cơ bản Private Sub back_Click() Frame1.Enabled = True Frame2.Enabled = False txtC = "" End Sub Private Sub cmdCham_Click() Dim sql As String Dim rs As Recordset Call Opendb If Trim(txtC) = "" Then Exit Sub Set rs = db.OpenRecordset("select manv from ngaycong where manv=" & lstDs.ItemData(lstDs.ListIndex) & " and thang='" & txtThang.ItemData(txtThang.ListIndex) & "' and nam='" & txtNam & "'") If Not rs.EOF Then MsgBox "Nhân viên này đã được chấm công." Exit Sub End If sql = "Insert into ngaycong(manv,songaycong,thang,nam)values(" & lstDs.ItemData(lstDs.ListIndex) & "," & txtC & ",'" & txtThang.ItemData(txtThang.ListIndex) & "','" & txtNam & "')" db.Execute sql Frame1.Enabled = True Frame2.Enabled = False txtC = "" Call Closedb End Sub Private Sub Form_Load() Dim i As Integer Dim rs As Recordset Dim sql As String Call Opendb txtNam.Clear For i = 2000 To 2200 txtNam.AddItem i Next txtThang.Clear For i = 1 To 12 txtThang.AddItem "Tháng " & i txtThang.ItemData(i - 1) = i Next txtNam = txtNam.List(4) txtThang = txtThang.List(7) lstDs.Clear sql = "select manv,hoten from hoso" Set rs = db.OpenRecordset(sql) i = 0 While Not rs.EOF lstDs.AddItem rs(1) lstDs.ItemData(i) = rs(0) rs.MoveNext i = i + 1 Wend lstDs = lstDs.List(0) Frame2.Enabled = False Call Closedb End Sub Private Sub lstDs_DblClick() Frame2.Enabled = True Frame1.Enabled = False End Sub Private Sub Command2_Click() Dim sql As String Call Opendb If txtLcb = "" Or txtHsl = "" Then MsgBox "Bạn phải điền đầy đủ thông tin." Exit Sub End If sql = "Insert into luong (luongcb,hsluong,luong)values(" & txtLcb & "," & txtHsl & "," & Val(txtLcb) * Val(txtHsl) & ")" db.Execute sql Call Closedb Call Form_Load End Sub Private Sub Form_Load() Dim rs As Recordset Call Opendb Set rs = db.OpenRecordset("select * from luong") lstLcb.Clear lstHsl.Clear While Not rs.EOF lstLcb.AddItem rs(1) lstHsl.AddItem rs(2) rs.MoveNext Wend txtLcb = "" txtHsl = "" Call Closedb End Sub Private Sub lstLcb_Click() lstHsl = lstHsl.List(lstLcb.ListIndex) End SuB 4. Tìm kiếm theo lương và trình độ chuyên môn Private Sub cmdOK_Click() If Val(txtTu) < 0 Or Val(txtToi) < 0 Then Exit Sub If Val(txtTu) > Val(txtToi) And optK = True Then MsgBox "Giá trị bắt đầu phải lớn hơn hoặc bằng giá trị cuối.", vbInformation, "Thông báo" Exit Sub End If sTim = Trim(txtTu & "A" & txtToi & "L") frmHoso.Show End Sub Private Sub cmdTDOK_Click() sTim = txtTDCM.ItemData(txtTDCM.ListIndex) & "T" frmHoso.Show End Sub Private Sub Form_Load() Dim rs As Recordset Dim i As Integer Call Opendb Set rs = db.OpenRecordset("select * from TDCM") txtTDCM.Clear i = 0 While Not rs.EOF txtTDCM.AddItem rs(1) txtTDCM.ItemData(i) = rs(0) rs.MoveNext i = i + 1 Wend txtTu = 0 txtToi = 0 optB_Click Closedb End Sub Private Sub optB_Click() txtToi.Enabled = False End Sub Private Sub optK_Click() txtToi.Enabled = True End Sub Private Sub optL_Click() txtToi.Enabled = False End Sub Private Sub optN_Click() txtToi.Enabled = False End Sub 5. Form tìm kiếm theo trình độ Private Sub cboTD_Click() Dim rs As Recordset Dim sql As String Dim i, j As Integer Call Opendb sql = "Select s.hoten,p.tenpb,s.ngaysinh,s.gioitinh,s.socmnd,cm.diengiai,nn.diengiai,s.hktt,s.diachi,dt.diengiai,t.diengiai,s.ngayvaodoan,s.ngayvaodang from phongban p,hoso s,luong l,tdcm cm,tdnn nn,tongiao t,dantoc dt where s.maluong=l.maluong and s.matongiao=t.matongiao and s.madantoc=dt.madantoc And s.mapb = p.mapb and cm.matdcm=s.matdcm and s.matdnn=

Các file đính kèm theo tài liệu này:

  • doc4063.doc