Quản lý nhân sự-lương trên hệ quản trị cơ sở dữ liệu MICROSOFT ACCESS

Quá trình khảo sát, thực hiện và hoàn thành đề tài, thì chương trình đã cho chúng ta có được cái nhìn tổng quát về hệ thống quản lý cán bộ tiền lương của một doanh nghiệp. Chương trình đã giúp rất nhiều cho cán bộ nghiệp vụ nhân sự, tiền lương trong việc cập nhập, chỉnh sửa, tính lương, quản lý, tìm kiếm, đưa ra các báo cáo, báo biểu về thông tin cán bộ rất dễ dàng và chính xác.Nhưng do thời gian có hạn và kiến thức còn hạn hẹp nên chương trình không tránh khỏi những thiếu xót.như chương trình c hưa đưa ra được phần quản trị hệ thống, phân quy ền cho cho người sử dụng, chưa đưa ra được một quy trình quản lý sao lưu backup dữ liệu Trong thời gian tới, e sẽ cố gắng hoàn thiện chương trình và phát triển chương trình thêm nhiều module nữa.như xây dựng hệ thống chấm công tự động, hệ thống quản lý đơn hàng.tạo dựng database chung cho chương trình để chương trình ngày một ưu việt.

pdf86 trang | Chia sẻ: lylyngoc | Lượt xem: 2926 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Quản lý nhân sự-lương trên hệ quản trị cơ sở dữ liệu MICROSOFT ACCESS, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
t câu lệnh SQL hoặc một tham chiếu đến một truy vấn đã lưu trữ nhưng bản thân nó vẫn dựa vào một câu lệnh SQL. Nơi thích hợp nhất để đặt một câu lệnh SQL, dựa trên các kỹ thuật truy cập dữ liệu, là thuộc tính RecordSource của một điều khiển dữ liệu. Vì vậy, thay vì chỉ ra thuộc tính RecordSource là tên của một bảng, có thể đổi thuộc tính này thành tên của một câu truy vấn chứa sẵn hay một câu lệnh SQL như : SELECT * FROM TEN_BANG ORDER BY KEY. Điều này cho ta sự linh hoạt đáng kể khi chọn lựa một nguồn mẩu tin. ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 39 Sử dụng câu lệnh SQL trong các ngữ cảnh khác nhau của chương trình  Tham số Source của phương thức OpenRecordSet của đối tượng DataBase của DAO được sử dụng phổ biến nhất khi truy vấn các mẩu tin từ một cơ sở dữ liệu Access.  Sử dụng thuộc tính Source của một đối tượng RecordSet của ADO. Sử dụng câu lệnh SELECT để lấy về các mẩu tin Câu lệnh SELECT là cốt lõi của mọi truy vấn lấy về dữ liệu. Nó thông báo cho bộ máy cơ sở dữ liệu những trường nào sẽ được lấy về. Dạng thông dụng nhất của câu lệnh SELECT là : SELECT * Mệnh đề có ý nghĩa là “trả về tất cả các trường tìm thấy trong nguồn mẩu tin chỉ định”. Dạng lệnh này rất tiện dụng vì không cần biết tên của trường để lấy chúng về từ một bảng. Tuy nhiên, lấy về tất cả các cột trong một bảng có thể không hiệu quả, nhất là trong trường hợp mà ta chỉ cần 2 cột mà truy vấn của ta trả về quá nhiều. Vì vậy, ngoài việc thông báo cho bộ máy cơ sở dữ liệu để trả về tất cả các trường trong nguồn mẩu tin, ta còn có khả năng chỉ ra chính xác trường nào cần lấy về. Hiệu ứng lọc bớt này cải tiến hiệu quả của một truy vấn, nhất là trên bảng lớn có nhiều trường trong chương trình, bởi vì trong chương trình ta chỉ cần lấy về trường nào cần thiết. Sử dụng mệnh đề FROM để chỉ nguồn mẩu tin Mệnh đề FROM làm việc với câu lệnh SELECT để trả về các mẩu tin trong bảng, ví dụ : SELECT * FROM TEN_BANG . Vì một câu truy vấn SELECT FROM không xếp theo thứ tự nên thứ tự trả về là không xác định. Để câu truy vấn có hiệu quả, cần phải giới hạn số trường lấy về bằng cách sử dụng mệnh đề WHERE. Sử dụng mệnh đề WHERE để chỉ ra tiêu chí lọc ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 40 Mệnh đề WHERE thông báo với bộ máy cơ sở dữ liệu để giới hạn số mẩu tin trả về theo một hay nhiều tiêu chí lọc do người lập trình cung cấp. Kết quả trả về của tiêu chí lọc là TRUE/FALSE. 6. Cài đặt và chạy chương trình Frm.MDImain : Màn hình giao diện chính của chương trình ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. Frm.phucap: Màn hình nhập thông tin phụ cấp ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. Frm.nhapheso : Màn hình nhập hệ số lương ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. Frm.thuong: Màn hình nhập loại thưởng ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. Frm.hosocb: Màn hình nhập hồ sơ cán bộ ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. Frm.luong: Màn hình nhập lương cho cán bộ ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 46 Frm.tracuucb: Màn hình tra cứu cán bộ ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 47 Frm.xemhoso: Màn hình hiện thị xem hồ sơ cán bộ ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 48 Frm.tracuuluong: Màn hình tra cứu lương cán bộ ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. Frm.xemluong: Màn hình hiển thị xem lương cán bộ CHƯƠNG V: ĐÁNH GIÁ VÀ PHÁT TRIỂN ĐỀ TÀI Quá trình khảo sát, thực hiện và hoàn thành đề tài, thì chương trình đã cho chúng ta có được cái nhìn tổng quát về hệ thống quản lý cán bộ tiền lương ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 50 của một doanh nghiệp. Chương trình đã giúp rất nhiều cho cán bộ nghiệp vụ nhân sự, tiền lương trong việc cập nhập, chỉnh sửa, tính lương, quản lý, tìm kiếm, đưa ra các báo cáo, báo biểu về thông tin cán bộ rất dễ dàng và chính xác..Nhưng do thời gian có hạn và kiến thức còn hạn hẹp nên chương trình không tránh khỏi những thiếu xót..như chương trình chưa đưa ra được phần quản trị hệ thống, phân quyền cho cho người sử dụng, chưa đưa ra được một quy trình quản lý sao lưu backup dữ liệu…Trong thời gian tới, e sẽ cố gắng hoàn thiện chương trình và phát triển chương trình thêm nhiều module nữa..như xây dựng hệ thống chấm công tự động, hệ thống quản lý đơn hàng..tạo dựng database chung cho chương trình để chương trình ngày một ưu việt. Cuối cùng, em xin chân thành cảm ơn Ths. Nguyễn Thanh Hương giảng viên bộ môn Công nghệ thông tin Trường Đại Học Kinh Tế Quốc Dân đã tận tình chỉ bảo hướng dẫn em hoàn thành đề tài này.Cám ơn quý công ty TNHH Minh Trí đã tạo điều kiện cho e khảo sát và thực tập tại công ty để e có thể hoàn thành được đề tài này. NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 51 ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… XÁC NHẬN CỦA CƠ QUAN THỰC TẬP ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 52 ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… KÝ VÀ ĐÓNG DẤU TÀI LIỆU THAM KHẢO 1. Cơ Sở Dữ Liệu Quan Hệ Lê Tiến Vương 2. Phân Tích & Thiết Kế Hệ Thống Ngô Trung Việt ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 53 3. Cơ Sở Dữ Liệu & Phân Tích Thiết Kế Hệ Thống Thông Tin Quản Lý Nguyễn Hữu Trọng 4. Tự Học Lập Trình Cơ Sở Dữ Liệu Visual Basic 6.0 tập 1&2 Nguyễn Đình Tê(chủ biên) 5. Những Bài Thực Hành Cơ Sở Dữ Liệu Cơ Sở Visual Basic Đinh Xuân Lâm 6. Cơ Sở Dữ Liệu Visual Basic Nguyễn Thị Ngọc Mai 7. Tin Học Văn Phòng Access 2000 Nguyễn Sĩ Dũng 8. Lập Trình Access 2000 Ông Văn Thông PHỤ LỤC CODE CỦA CHƯƠNG TRÌNH Dim ketthuc Dim myPathhoso As String Dim myPathluong As String ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 54 Private Sub MDIForm_Load() ' Load frmgioithieu MDImain.WindowState = 2 Language (True) End Sub Sub MDIForm_Unload(Cancel As Integer) Me.mnuexit_Click End Sub Private Sub mnuAboutSalary_Click() frmAbout.Show End Sub Private Sub mnuAccordingSalary_Click() ' frmTCsach.Show End Sub Private Sub mnuAllowanceFiles_Click() frmPhuCap.Show End Sub Private Sub mnuArrangeIcon_Click() Me.Arrange 3 'dbArrangeIcon End Sub Private Sub mnucascade_Click() Me.Arrange 0 End Sub Private Sub mnuCoefficientforsalary_Click() frmnhapheso.Show End Sub Private Sub mnuEnglish_Click() If MDImain.mnuEnglish.Checked = False Then MDImain.mnuVietnamese.Checked = False MDImain.mnuEnglish.Checked = True Language (False) End If End Sub Sub mnuexit_Click() ketthuc = MsgBox("B¹n muèn kÕt thóc t¹i ®©y! ", vbYesNo, "Th«ng b¸o") If ketthuc = vbYes Then End End If End Sub Private Sub mnuLookUppersonal_Click() frmTracuuCb.Show ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 55 End Sub Private Sub mnuLookupSalary_Click() frmTraCuuLuong.Show End Sub Private Sub mnuOpenFilesPersonal_Click() cdlmain.ShowOpen myPathhoso = cdlmain.FileName End Sub Private Sub mnupersonalfile_Click() frmhosocb.Show End Sub Private Sub mnurewardforsalary_Click() frmthuong.Show End Sub Private Sub mnusalaryfile_Click() frmluong.Show End Sub Private Sub mnusave_Click() Me.cdlmain.ShowSave End Sub Private Sub mnuStatus_Click() If Me.StatusBar1.Visible = False Then Me.mnuStatus.Checked = True Me.StatusBar1.Visible = True Else Me.StatusBar1.Visible = False Me.mnuStatus.Checked = False End If End Sub Private Sub mnuTileHozizontally_Click() Me.Arrange 1 End Sub Private Sub mnuTileVertically_Click() Me.Arrange 2 End Sub Private Sub mnuToolsbars_Click() If Me.tlbmain.Visible = False Then Me.mnuToolsbars.Checked = True Me.tlbmain.Visible = True Else Me.tlbmain.Visible = False Me.mnuToolsbars.Checked = False End If ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 56 End Sub Private Sub mnuVietnamese_Click() If MDImain.mnuVietnamese.Checked = False Then MDImain.mnuEnglish.Checked = False MDImain.mnuVietnamese.Checked = True Language (True) End If End Sub Private Sub tlbmain_ButtonClick(ByVal Button As ComctlLib.Button) Select Case Button.Key Case "New" file = InputBox(" NhËp vµo Tªn CSDL cÇn t¹o", "Tao b¶ng cSDL míi") If Trim(file) = "" Then Exit Sub Else Maketable (file) End If Case "Open" MsgBox "Banj chon mo" Case "Save" MsgBox "Ban cho ghi" Case "Print" MsgBox "ban cho in" Case "PrintReview" MsgBox "PhÇn nµy dµnh cho b¹n" Case "Exit" MsgBox "choa bai" mnuexit_Click End Select End Sub '§o¹n ch­¬ng tr×nh nh»m chuÈn ho ¸tiÕng viÖt Function Chuan(XauVao As String, Thamso As Byte) As String Dim xau(1 To 50) As String Dim kTdau Dim KTV Dim k As Byte Chuan = "" KTV = Trim(XauVao) For k = 1 To Len(KTV) ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 57 xau(k) = Mid(KTV, k, 1) Next k Select Case Thamso Case 1 'tÊt c¸c ký tù ®Çu ®­îc biÕn thµnh ch÷ hoa For k = 1 To Len(KTV) xau(k) = Mid(KTV, k, 1) Next k For i = 1 To Len(KTV) If Asc(xau(1)) >= 168 And Asc(xau(1)) <= 174 Then xau(1) = Chr(Asc(xau(1)) - 7) Else xau(1) = UCase(xau(1)) End If If Asc(xau(i)) = 32 Then If (Asc(xau(i + 1))) >= 168 And Val(Asc(xau(i + 1))) <= 174 Then xau(i + 1) = Chr(Asc(xau(i + 1)) - 7) Else xau(i + 1) = UCase(xau(i + 1)) End If End If Chuan = Chuan + xau(i) Next i Case 2 ' chuÈn ho ¸c¸c ký tù ®Çu tiªn kTdau = Left(Trim(KTV), 1) If Asc(kTdau) >= 168 And Asc(kTdau) <= 174 Then Chuan = Chr(Asc(kTdau) - 7) + Right(Trim(KTV), Len(Trim(KTV)) - 1) Else Chuan = UCase(kTdau) + Right(Trim(KTV), Len(Trim(KTV)) - 1) End If Case 3 ' tÊ c¶ lµ ch÷ hoa Chuan = UCase(KTV) End Select End Function Public Const myPathhoso = "c:\qlluong\QLuong.mdb" Public Const rptfilename = "c:\qlluong\" Public PathReport As String Public Co As Boolean Public coghi As Boolean ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 58 Public Chiso As Byte Function Doi_date(sdate As Variant) As Date Dim i As Byte Dim vitri, k As Byte Dim Thang As String * 2 Dim Ngay As String * 2 Dim Nam As String * 4 sdate = Trim(sdate) Ngay = Mid(sdate, 1, 2) Thang = Mid(sdate, 4, 2) Nam = Mid(sdate, 7, 10) Doi_date = Thang & "/" & Ngay & "/" & Nam End Function Public Function CheckDate(sdate As String) As String If IsDate(sdate) = False Then CheckDate = "" Exit Function End If Dim i As Byte Dim vitri, k As Byte Dim Thang As String * 2 Dim Ngay As String * 2 Dim Nam As String * 4 Dim Sign(1) As String * 1 Sign(0) = "-" Sign(1) = "/" Thang = "" Ngay = "" vitri = 1 For i = 0 To 1 vitri = InStr(1, sdate, Sign(i)) If vitri 0 Then Ngay = Mid(sdate, 1, vitri - 1) k = vitri + 1 vitri = InStr(vitri + 1, sdate, Sign(i)) If vitri 0 Then Thang = Mid(sdate, k, vitri - k) Nam = Mid(sdate, vitri + 1, Len(Trim(sdate)) - vitri) Exit For End If Else End If Next i ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 59 If Len(Ngay) = 0 Or Len(Thang) = 0 Then CheckDate = "" Exit Function End If If Len(Trim(Ngay)) = 1 Then Ngay = "0" & Ngay If Len(Trim(Thang)) = 1 Then Thang = "0" & Thang If Int(Val(Thang)) > 12 Then CheckDate = "" Exit Function Else If Int(Val(Ngay)) > 31 Then CheckDate = "" Exit Function End If CheckDate = Trim(Ngay & "/" & Thang & "/" & Nam) End If End Function Public Sub Language(Language As Boolean) Select Case Language Case True With MDImain .mnuEnglish.Checked = False .mnuVietnamese.Checked = True .mnufiles.Caption = "Files" .mnuexit.Caption = "&KÕt Thóc" .mnuView.Caption = "&HiÖn Èn" .mnuStatus.Caption = "T&r¹ng Th i¸" .mnutask.Caption = "&NhiÖm vô" .mnuInput.Caption = "NhËp D÷ LiÖu" .mnuAllowanceFiles.Caption = "&NhËp Phô CÊp ..." .mnuCoefficientforsalary.Caption = "&HÖ Sè L­¬ng ..." .mnupersonalfile.Caption = "Hå &S¬ Can Bo ..." .mnurewardforsalary.Caption = "Møc th­ëng ..." .mnusalaryfile.Caption = "L­¬ng ..." .mnuLookUp.Caption = "&Tra Cøu ..." .mnuLookUppersonal.Caption = "Tra cøu theo hå &S¬ Nh©n viªn..." .mnuLookupSalary.Caption = "Tra cøu theo &l­¬ng ..." .MnuTools.Caption = "C«ng Cô" .MnuLanguage.Caption = "&Ng«n ng÷ HiÓn ThÞ" .mnuEnglish.Caption = "&English" .mnuVietnamese.Caption = "&ViÖt Nam" .mnuhelps.Caption = "&Trî Gióp" ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 60 .mnuAboutSalary.Caption = "Th«ng Tin VÒ &Ch­¬ng Tr×nh ..." End With Case False With MDImain .mnuEnglish.Checked = True .mnuVietnamese.Checked = False .mnufiles.Caption = "Files" .mnuexit.Caption = "E&xit" .mnuView.Caption = "&View" .mnuStatus.Caption = "&Status" .mnutask.Caption = "&Task" .mnuInput.Caption = "Input" .mnuAllowanceFiles.Caption = "&Allowance Files ..." .mnuCoefficientforsalary.Caption = "&Ceofficient Fo Salary ..." .mnupersonalfile.Caption = "&Personal Files ..." .mnurewardforsalary.Caption = "&Raward for Salary ..." .mnusalaryfile.Caption = "&Salary files ..." .mnuLookUp.Caption = "&Look Up..." .mnuLookUppersonal.Caption = "Look Up According &Personal ..." .mnuLookupSalary.Caption = "Look Up According &Salary ..." .MnuTools.Caption = "&Tools" .MnuLanguage.Caption = "&Language " .mnuEnglish.Caption = "&English" .mnuVietnamese.Caption = "&VietNamese" .mnuhelps.Caption = "&Helps" .mnuAboutSalary.Caption = "&About Salry ..." End With End Select End Sub Public Sub chao() Dim rec As Recordset Dim MySql As String 'N¹p Giãi tÝnh With frmTracuuCb .cbotracuucb(0).AddItem "Nam" .cbotracuucb(0).AddItem "Nu" MsgBox "Chao Cac B¹n" End With End Sub Public Sub KiemTraNgay(dong As String) Dim ok ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 61 Dim i As Integer With frmhosocb If Len(dong) 10 Then MsgBox "B¹n NhËp sai DL ngµy th¸ng råi! H·y NhËp l¹i nh­ sau: dd/mm/yyyy", vbCritical, "Chó ý" .txthoso(2).SetFocus ok = False End If nam1 = Val(Mid(dong, 7, 5)) dong = Format(dong, "dd/mm/yyyy") Ngay = Val(Mid(dong, 1, 2)) Thang = Val(Mid(dong, 4, 2)) Nam = Val(Mid(dong, 7, 4)) Select Case Thang Case 4, 6, 9, 11 If Ngay > 30 And Len(nam1) = 4 Then MsgBox "B¹n nhËp sai ngµy, th¸ng nµy chØ cã 30 ngµy!", vbCritical, "Chó ý" .txthoso(2).SetFocus Else If (Thang = 4) Or (Thang = 6) Or (Thang = 9) Or (Thang = 11) And (Len(nam1) = 4) Then .cbohoso(0).SetFocus ok = True End If End If Case 1, 3, 5, 7, 8, 10, 12 If Ngay > 31 And Len(nam1) = 4 Then MsgBox "B¹n nhËp sai ngµy, th¸ng nµy chØ cã 31 ngµy!", vbCritical, "Chó ý" .txthoso(2).SetFocus Else If (Thang = 1) Or (Thang = 3) Or (Thang = 5) Or (Thang = 7) Or (Thang = 8) Or (Thang = 10) Or (Thang = 12) And (Len(nam1) = 4) Then .cbohoso(0).SetFocus ok = True End If End If Case 2 If (Nam Mod 4 = 0) And (Ngay > 29) And (Thang = 2) Then ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 62 MsgBox "B¹n nhËp sai DL, th¸ng 2 chØ cã 28 ngµy", vbCritical, "Chó ý" .txthoso(2).SetFocus Else If (Nam Mod 4 = 0) And (Ngay <= 29) And (Thang = 2) Then .cbohoso(0).SetFocus ok = True End If If (Nam Mod 4 0) And (Ngay > 28) And (Thang = 2) Then MsgBox "B¹n nhËp sai DL, th¸ng 2 chØ cã 28 ngµy", vbCritical, "Chó ý" .txthoso(2).SetFocus Else If (Nam Mod 4 0) And (Ngay <= 28) And (Thang = 2) Then ok = True .txthoso(2).SetFocus End If End If End If Case Else If Val((Thang > 12) And (Len(nam1) = 4)) Then MsgBox "B¹n NhËp sai kiÓu th¸ng !", vbCritical, "Chó ý" .txthoso(2).SetFocus End If End Select If ok = True Then frmhosocb.cbohoso(0).SetFocus Else .txthoso(2).SetFocus MsgBox "xay ra o Toi" End If End With End Sub Dim myPathhoso As String Dim db As Database Dim rec As Recordset Dim mypath As String Dim dongsql As String Dim coghi 'Dim dongxoa ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 63 Private Sub cbohoso_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer) Select Case Index Case 0 ' Gioi tinh If KeyCode = 13 Then If cbohoso(0).Text = "" Then MsgBox "B¹n Ph¶i nhËp DL Vao !" cbohoso(0).SetFocus Else If (UCase(Trim(cbohoso(0).Text)) = UCase("Nam")) Or (UCase(Trim((cbohoso(0).Text))) = UCase("N÷")) Then cbohoso(1).SetFocus Else MsgBox "DL chØ nhËn lµ : Nam hoÆc N÷ ", vbCritical, "Th«ng B¸o" cbohoso(0).SetFocus End If End If End If Case 1 'D©n Téc If KeyCode = 13 Then If cbohoso(1).Text = "" Then MsgBox "B¹n Ph¶i nhËp DL Vao !" cbohoso(1).SetFocus Else cbohoso(1).Text = Chuan(cbohoso(1), 2) txthoso(3).SetFocus End If End If Case 2 ' Phong If KeyCode = 13 Then If cbohoso(2).Text = "" Then MsgBox "B¹n Ph¶i nhËp DL Vao !" cbohoso(2).SetFocus Else cbohoso(2).Text = Chuan(cbohoso(2), 1) cbohoso(3).SetFocus End If End If Case 3 'Chuc vu If KeyCode = 13 Then If cbohoso(3).Text = "" Then MsgBox "B¹n Ph¶i nhËp DL Vao !" ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 64 cbohoso(3).SetFocus Else cbohoso(3).Text = Chuan(cbohoso(3), 2) cbohoso(4).SetFocus End If End If Case 4 ' trinh Do If KeyCode = 13 Then If cbohoso(4).Text = "" Then MsgBox "B¹n Ph¶i nhËp DL Vao !" cbohoso(4).SetFocus Else cbohoso(4).Text = Chuan(cbohoso(4), 2) cbohoso(5).SetFocus End If End If Case 5 ' Chuyen mon If KeyCode = 13 Then If cbohoso(5).Text = "" Then MsgBox "B¹n Ph¶i nhËp DL Vao !" cbohoso(5).SetFocus Else cbohoso(5).Text = Chuan(cbohoso(5), 2) txthoso(5).SetFocus End If End If End Select End Sub Sub cmdchucnang_Click(Index As Integer) Select Case Index Case 0 ' NhËp míi 'MsgBox " B¹n võa chän nhËp míi " Set db = OpenDatabase(mypath) Set rec = db.OpenRecordset("hosocanbo") For i = 0 To 5 txthoso(i).Text = "" Next i For i = 0 To 5 cbohoso(i).Text = "" Next i NapNhapHSCB txthoso(0).SetFocus ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 65 Case 1 ' chän chøc n¨ng söa IDMacb = InputBox(" NhËp vµo m· C¸n bé cÇn söa ", "Söa ch÷a") If Len(Trim(IDMacb)) = 0 Then Exit Sub Set rec = db.OpenRecordset("SELECT * FROM HosoCanBo WHERE [MaCB]='" & IDMacb & "'") If rec.RecordCount = 0 Then MsgBox "Kh«ng tån t¹i m· c¸n bé ®ã trong l­u tr÷ ", vbCritical, "Kh«ng thÊy" txthoso(0).SetFocus Exit Sub End If Set dathoso.Recordset = rec Me.dathoso.Refresh On Error Resume Next Case 2 ' chän chøc n¨ng Ghi MsgBox " B¹n võa chän ghi" Set db = DBEngine.Workspaces(0).OpenDatabase(mypath) Set rec = db.OpenRecordset("HoSoCanBo") ' KiÓm tra Xem Da co ®ñ Thong tin For k = 0 To 5 If cbohoso(i).Text = "" Then cbohoso(i).SetFocus End If If txthoso(i).Text = "" Then txthoso(i).SetFocus End If Next k dongsql = "Insert into hosocanbo (macb,Hoten,ngaysinh,Gioitinh,DanToc,Quequan,NoiOhiennay,Phong,ChucV u,TrinhDo,Chuyenmon,NgayvaoBienChe) Values ('" & UCase(Trim(txthoso(0).Text)) & "','" & Trim(txthoso(1).Text) & "','" & Trim(txthoso(2).Text) & "','" & Trim(cbohoso(0).Text) & "','" & Trim(cbohoso(1).Text) & "','" & Trim(txthoso(3).Text) & "','" & Trim(txthoso(4).Text) & "','" & Trim(cbohoso(2).Text) & "','" & Trim(cbohoso(3).Text) & "','" & Trim(cbohoso(4).Text) & "','" & Trim(cbohoso(5).Text) & "','" & Trim(txthoso(5).Text) & "')" Me.dathoso.Recordset.MoveFirst For j = 0 To dathoso.Recordset.RecordCount - 1 If UCase(Trim(txthoso(0).Text)) UCase(dathoso.Recordset.Fields(0).Value) Then coghi = True Else ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 66 coghi = False If coghi = False Then MsgBox " §· Cã trong c¬ së d÷ liÖu cña b¹n !" Exit For End If End If Me.dathoso.Recordset.MoveNext Next j If coghi = True Then db.Execute dongsql dathoso.Refresh End If db.Execute dongsql db.Execute "Insert Into Luong(macb,luong,kynhan)Values ('" & UCase(Trim(txthoso(0).Text)) & "',100,'No')" db.Close txthoso(0).SetFocus Case 3 'Xo¸ Set db = OpenDatabase(mypath) Set rec = db.OpenRecordset("Hosocanbo") With rec If Not .EOF Or Not .BOF Then xoa = MsgBox("B¹n Muèn xo ¸?", vbYesNo, "Chó ý") If xoa = vbYes Then Me.dathoso.Recordset.MoveFirst .Delete End If ' .Update End If End With Case 4, Xem frmXemhoso.Show Case 5 ' In Ên frmXemhoso.cmdchucnang_Click Case 6 'KÕt Thóc Unload Me End Select End Sub Private Sub dathoso_Reposition() dongxoa = Me.dathoso.Recordset.RecordCount + 1 End Sub ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 67 Private Sub DBGrid1_Click() If Not Me.dathoso.Recordset.BOF Or Not Me.dathoso.Recordset.EOF Then txthoso(0).Text = Me.dathoso.Recordset.Fields(0).Value txthoso(1).Text = Me.dathoso.Recordset.Fields(1).Value Else MsgBox "§©y la qu ¸b¶n ghi cuèi råi", vbCritical, "Chó ý" End If End Sub Sub Form_Activate() Me.Width = 11100 Me.Height = 7500 Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 20 End Sub Private Sub Form_Load() mypath = "c:\qlluong\QLLuong.mdb" Form_Activate For i = 0 To 5 txthoso(i).Text = "" Next i For i = 0 To 5 cbohoso(i).Text = "" Next i Me.NapNhapHSCB HienData End Sub Private Sub txthoso_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer) Select Case Index Case 0 ' ma Can Bo If KeyCode = 13 Then If txthoso(0).Text = "" Then MsgBox "B¹n Ph¶i nhËp DL Vao !" txthoso(0).SetFocus Else txthoso(0).Text = Chuan(txthoso(0), 3) txthoso(1).SetFocus End If End If Case 1 'Ho Ten If KeyCode = 13 Then If txthoso(0).Text = "" Then MsgBox "B¹n Ph¶i nhËp DL Vao !" txthoso(1).SetFocus ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 68 Else txthoso(1).Text = Chuan(txthoso(1), 1) txthoso(2).SetFocus End If End If Case 2 'Ngay sinh If KeyCode = 13 Then If txthoso(2).Text = "" Then MsgBox "B¹n Ph¶i nhËp DL Vao !" txthoso(2).SetFocus Else cbohoso(0).SetFocus End If KiemTraNgay (Trim(txthoso(2).Text)) End If Case 3 ' Que quan If KeyCode = 13 Then If txthoso(3).Text = "" Then MsgBox "B¹n Ph¶i nhËp DL Vao !" txthoso(3).SetFocus Else txthoso(3).Text = Chuan(txthoso(3), 1) txthoso(4).SetFocus End If End If Case 4 'noi O If KeyCode = 13 Then If txthoso(4).Text = "" Then MsgBox "B¹n Ph¶i nhËp DL Vao !" txthoso(4).SetFocus Else txthoso(4).Text = Chuan(txthoso(4), 1) cbohoso(2).SetFocus End If End If Case 5 If KeyCode = 13 Then If txthoso(5).Text = "" Then MsgBox "B¹n Ph¶i nhËp DL Vao !" txthoso(5).SetFocus Else txthoso(0).SetFocus ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 69 If KiemTraNgayvaoBC(Trim(txthoso(5).Text)) = True Then cmdchucnang_Click (2) cmdchucnang_Click (0) Else Me.txthoso(5).SetFocus End If End If End If End Select End Sub Public Sub HienData() dathoso.DatabaseName = mypath dathoso.RecordSource = "Hosocanbo" End Sub Public Sub NapNhapHSCB() With frmhosocb.cbohoso(0) .AddItem "Nam" .AddItem "N÷" End With ' N¹p D©n Téc Set db = DBEngine.Workspaces(0).OpenDatabase(mypath) MySql = "SELECT DISTINCT [DanToc] FROM HosoCanBo" Set rec = db.OpenRecordset(MySql, dbOpenSnapshot) If rec.RecordCount 0 Then With rec .MoveLast .MoveFirst Do While Not .EOF frmhosocb.cbohoso(1).AddItem (.Fields(0).Value) .MoveNext Loop End With End If 'Nap Phßng Ban Set db = DBEngine.Workspaces(0).OpenDatabase(mypath) MySql = "SELECT DISTINCT [Phong] FROM HosoCanBo" Set rec = db.OpenRecordset(MySql, dbOpenSnapshot) If rec.RecordCount 0 Then With rec .MoveLast .MoveFirst ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 70 Do While Not .EOF frmhosocb.cbohoso(2).AddItem (.Fields(0).Value) .MoveNext Loop End With End If Set db = DBEngine.Workspaces(0).OpenDatabase(mypath) MySql = "SELECT DISTINCT [ChucVu] FROM HosoCanBo" Set rec = db.OpenRecordset(MySql, dbOpenSnapshot) If rec.RecordCount 0 Then With rec .MoveLast .MoveFirst Do While Not .EOF frmhosocb.cbohoso(3).AddItem (.Fields(0).Value) .MoveNext Loop End With End If 'Nap Trinh D« Set db = DBEngine.Workspaces(0).OpenDatabase(mypath) MySql = "SELECT DISTINCT [TrinhDO] FROM HosoCanBo" Set rec = db.OpenRecordset(MySql, dbOpenSnapshot) If rec.RecordCount 0 Then With rec .MoveLast .MoveFirst Do While Not .EOF frmhosocb.cbohoso(4).AddItem (.Fields(0).Value) .MoveNext Loop End With End If 'Nap Chuyen Mon Set db = DBEngine.Workspaces(0).OpenDatabase(mypath) MySql = "SELECT DISTINCT [ChuyenMon] FROM HosoCanBo" Set rec = db.OpenRecordset(MySql, dbOpenSnapshot) If rec.RecordCount 0 Then With rec .MoveLast .MoveFirst Do While Not .EOF frmhosocb.cbohoso(5).AddItem (.Fields(0).Value) ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 71 .MoveNext Loop End With End If End Sub Sub Nhaplai(dk As Boolean) If dk = True Then txthoso(2).SetFocus Else cbohoso(1).SetFocus End If End Sub Public Function KiemTraNgayvaoBC(dong As String) As Boolean Dim ok Dim i As Integer With frmhosocb If Len(dong) 10 Then MsgBox "B¹n NhËp sai DL ngµy th¸ng råi! H·y NhËp l¹i nh­ sau: dd/mm/yyyy", vbCritical, "Chó ý" .txthoso(5).SetFocus ok = False End If nam1 = Val(Mid(dong, 7, 5)) dong = Format(dong, "dd/mm/yyyy") Ngay = Val(Mid(dong, 1, 2)) Thang = Val(Mid(dong, 4, 2)) Nam = Val(Mid(dong, 7, 4)) Select Case Thang Case 4, 6, 9, 11 If Ngay > 30 And Len(nam1) = 4 Then MsgBox "B¹n nhËp sai ngµy, th¸ng nµy chØ cã 30 ngµy!", vbCritical, "Chó ý" .txthoso(5).SetFocus Else If (Thang = 4) Or (Thang = 6) Or (Thang = 9) Or (Thang = 11) And (Len(nam1) = 4) Then .txthoso(0).SetFocus ok = False End If End If ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 72 Case 1, 3, 5, 7, 8, 10, 12 If Ngay > 31 And Len(nam1) = 4 Then MsgBox "B¹n nhËp sai ngµy, th¸ng nµy chØ cã 31 ngµy!", vbCritical, "Chó ý" .txthoso(5).SetFocus Else If (Thang = 1) Or (Thang = 3) Or (Thang = 5) Or (Thang = 7) Or (Thang = 8) Or (Thang = 10) Or (Thang = 12) And (Len(nam1) = 4) Then .txthoso(0).SetFocus ok = True End If End If Case 2 If (Nam Mod 4 = 0) And (Ngay > 29) And (Thang = 2) Then MsgBox "B¹n nhËp sai DL, th¸ng 2 chØ cã 28 ngµy", vbCritical, "Chó ý" .txthoso(5).SetFocus Else If (Nam Mod 4 = 0) And (Ngay <= 29) And (Thang = 2) Then .txthoso(5).SetFocus ok = True End If If (Nam Mod 4 0) And (Ngay > 28) And (Thang = 2) Then MsgBox "B¹n nhËp sai DL, th¸ng 2 chØ cã 28 ngµy", vbCritical, "Chó ý" .txthoso(5).SetFocus Else If (Nam Mod 4 0) And (Ngay <= 28) And (Thang = 2) Then ok = True .txthoso(5).SetFocus End If End If End If Case Else If Val((Thang > 12) And (Len(nam1) = 4)) Then MsgBox "B¹n NhËp sai kiÓu th¸ng !", vbCritical, "Chó ý" .txthoso(5).SetFocus End If End Select If ok = True Then ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 73 .txthoso(0).SetFocus Else .txthoso(5).SetFocus End If KiemTraNgayvaoBC = ok End With End Function Option Compare Text Option Explicit Dim them As Boolean 'In danh muïc chöùng töø Private Sub cmdRepheso_Click() heso.Show End Sub Private Sub Command1_Click() he_so_luong.Show End Sub 'Thuû tuïc naïp Form Private Sub Form_Load() Dim n Dim n1 n = 0 n1 = 0 txtSBG.Text = n 'Khoa End Sub Private Sub Khoa() Dataheso.AllowDelete = False Dataheso.AllowUpdate = False Dataheso.AllowAddNew = False cmdthem.Enabled = True cmdsua.Enabled = True cmdxoa.Enabled = True cmdghi.Enabled = False cmdkhong.Enabled = False cmdthoat.Enabled = True 'Töï ñoäng caäp nhaät baûn ghi trong DataGrid cuûa Danh muïc chöùng töø Dataheso.Refresh End Sub Private Sub Mo_Khoa() Dataheso.AllowDelete = True ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 74 Dataheso.AllowUpdate = True Dataheso.AllowAddNew = True cmdthem.Enabled = False cmdsua.Enabled = False cmdxoa.Enabled = False cmdghi.Enabled = True cmdkhong.Enabled = True cmdthoat.Enabled = False 'Töï ñoäng caäp nhaät baûn ghi trong DataGrid cuûa Danh muïc chöùng töø Dataheso.Refresh End Sub Private Sub cmdthem_click() On Error GoTo Loi_Them Mo_Khoa 'Töï ñoäng caäp nhaät laïi baûn ghi trong Form hay DataSheet khi döõ lieäu thay ñoåi Ado_heso.Refresh 'Theâm baûn ghi môùi Ado_heso.Recordset.AddNew 'DataGrid cuûa heso nhaän tieâu ñieåm Dataheso.SetFocus them = True Thoat_Them: Exit Sub Loi_Them: MsgBox Err.Description Resume Thoat_Them End Sub Private Sub cmdsua_click() Dim recnum On Error GoTo Loi_Sua 'Bieán ñaùnh daáu baûn ghi caàn thay ñoåi recnum = Ado_heso.Recordset.Bookmark Mo_Khoa them = False Thoat_Sua: Exit Sub Loi_Sua: MsgBox Err.Description Resume Thoat_Sua End Sub Private Sub cmdxoa_click() On Error GoTo Loi_Xoa ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 75 Dim traloi traloi = MsgBox("Baïn muoán xoùa chöùng töø " + Ado_heso.Recordset.Fields("heso") + " ?", 48 + 4, "Thoâng baùo") 'Neáu choïn YES If traloi = 6 Then 'Xoùa baûn ghi Ado_heso.Recordset.Delete Ado_heso.Recordset.Clone Ado_heso.Recordset.Requery Ado_heso.Recordset.MoveNext If Ado_heso.Recordset.EOF Then Ado_heso.Recordset.MoveLast End If End If 'Duøng phöông thöùc Refresh cuûa ñoái töôïng Adodc ñeå caäp nhaät laïi döõ lieäu Ado_heso.Refresh Thoat_Xoa: Exit Sub Loi_Xoa: MsgBox "Khoâng theå xoùa maãu tin naøy !" Resume Thoat_Xoa End Sub Private Sub cmdghi_click() On Error GoTo Loi_Ghi Ado_heso.Recordset.UpdateBatch adAffectAll Khoa cmdthem.SetFocus them = False Thoat_Ghi: Dataheso.SetFocus Exit Sub Loi_Ghi: MsgBox "Döõ lieäu khoâng hôïp leä !" MsgBox "Maõ chöùng töø coù toái 10 kyù töï soá !" Resume Thoat_Ghi End Sub Private Sub cmdkhong_click() If them Then Ado_heso.Refresh 'Duøng phöông thöùc CancelUpdate ñeå boû qua vieäc caäp nhaät döõ lieäu Ado_heso.Recordset.CancelUpdate ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 76 End If Khoa cmdthem.SetFocus them = False Ado_heso.Refresh End Sub Private Sub cmdthoat_click() Ado_heso.Refresh Unload Me End Sub 'Khi click vaøo DataGrid cuûa heso ñoàng thôøi ñeám soá baûn ghi vaø 'ñaùnh daáu baûn ghi hieän haønh Private Sub Dataheso_click() Dim n Dim n1 n = 0 n1 = 0 n = Ado_heso.Recordset.RecordCount If (Ado_heso.Recordset.EOF = False) And (Ado_heso.Recordset.BOF = False) Then n1 = Ado_heso.Recordset.Bookmark End If txtBGHH.Text = n1 txtSBG.Text = n End Sub Dim db As Database Dim rec As Recordset Dim sql As String Private Sub CBoTC_KeyUp(Index As Integer, KeyCode As Integer, Shift As Integer) Select Case Index Case 0 'hä tªn If KeyCode = 13 Then If Not Trim(CBoTC(0).Text) = "" Then CBoTC(0).Text = Chuan(CBoTC(0).Text, 1) End If CBoTC(1).SetFocus End If Case 1 ' thoe ma If KeyCode = 13 Then If Not Trim(CBoTC(1).Text) = "" Then CBoTC(1).Text = Chuan(CBoTC(1).Text, 3) ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 77 End If CBoTC(2).SetFocus End If Case 2 'theo he so luong If KeyCode = 13 Then If Not Trim(CBoTC(2).Text) = "" Then If Len(Trim(CBoTC(2).Text)) 0 Then CBoTC(2).Text = Chuan(Trim(CBoTC(2).Text), 2) End If End If txtTC(0).SetFocus End If Case 3 ' theo phu cap If KeyCode = 13 Then If Not Trim(CBoTC(3).Text) = "" Then CBoTC(3).Text = Chuan(CBoTC(3).Text, 2) End If CBoTC(4).SetFocus End If Case 4 ' theo laoi thuong If KeyCode = 13 Then If Not Trim(CBoTC(4).Text) = "" Then CBoTC(4).Text = Chuan(CBoTC(4).Text, 2) End If CBoTC(5).SetFocus End If Case 5 ' con lao If KeyCode = 13 Then If Not Trim(CBoTC(5).Text) = "" Then CBoTC(5).Text = Chuan(CBoTC(5).Text, 2) End If Me.cmdTCLuong.SetFocus End If End Select End Sub Private Sub CBoTC_LostFocus(Index As Integer) Select Case Index Case 0 CBoTC(0).Text = Chuan(CBoTC(0).Text, 1) Case 1 CBoTC(1).Text = Chuan(CBoTC(1).Text, 3) Case 2 ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 78 CBoTC(2).Text = Chuan(CBoTC(2).Text, 2) Case 0 CBoTC(3).Text = Chuan(CBoTC(3).Text, 2) Case 0 CBoTC(4).Text = Chuan(CBoTC(4).Text, 2) Case 0 CBoTC(5).Text = Chuan(CBoTC(5).Text, 2) End Select End Sub Private Sub cmdexit_Click() Unload Me End Sub Private Sub cmdInLuong_Click() MsgBox "b¹n muèn In" End Sub Private Sub cmdTCLuong_Click() Dim db As Database Dim rec As Recordset Dim IDMacb As String, IDHoTen As String Dim IDHSL As String, IDMPC As String Dim IDLT As String, IDLuong As String Dim IDConLai As String, IDDnd As String Dim pheptoan1 As String, pheptoan2 As String Dim sql As String, i As Byte sql = "SELECT DISTINCTROW HosoCanBo.macb, HosoCanBo.HoTen, HosoCanBo.Ngaysinh, HosoCanBo.Phong, HosoCanBo.Chucvu, HosoCanBo.NgayVaoBienChe, Luong.hesoluong, Luong.Loaithuong, Luong.MucPhuCap, Luong.SoNgayNghi, Luong.Luong, Luong.TamUng, Luong.Conlai " sql = sql & " FROM Luong INNER JOIN HosoCanBo ON Luong.Macb = HosoCanBo.macb WHERE " IDHoTen = Chuan(Trim(CBoTC(0).Text), 1) IDMacb = Chuan(Trim(CBoTC(1).Text), 3) IDHSL = (Trim(CBoTC(2).Text)) IDMPC = Trim(CBoTC(3).Text) IDLT = Trim(CBoTC(4).Text) IDDnd = Trim(CBoTC(5).Text) ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 79 pheptoan1 = Mid(Trim(txtTC(0).Text), 1, 2) IDLuong = Mid((Trim(txtTC(0).Text)), 3, Len(Trim(txtTC(0).Text))) pheptoan2 = Mid(Trim(txtTC(1).Text), 1, 2) IDConLai = Mid((Trim(txtTC(1).Text)), 3, Len(Trim(txtTC(1).Text))) 'MsgBox IDHSL Select Case Me.OptAND.Value Case True If Len(IDHoTen) > 0 Then sql = sql & " HosoCanBo.[HoTen] LiKe '" & IDHoTen & "' And " If Len(IDMacb) > 0 Then sql = sql & " HosoCanBo.[Macb] LiKe '" & IDMacb & "' And " If Len(IDHSL) > 0 Then sql = sql & " Luong.[Hesoluong] Like '" & IDHSL & "' And " If Len(IDMPC) > 0 Then sql = sql & " Luong.[MucPhuCap] LiKe '" & IDMPC & "' And " If Len(IDLT) > 0 Then sql = sql & " Luong.[LoaiThuong] LiKe '" & IDLT & "' And " If Len(IDDnd) > 0 Then sql = sql & " Luong.[KyNhan] LiKe '" & IDDnd & "' And " If Len(IDLuong) > 0 Then sql = sql & " val(Luong.[Luong]) " & pheptoan1 & " " & Val(IDLuong) & " And " If Len(IDConLai) > 0 Then sql = sql & " val(Luong.[ConLai]) " & pheptoan2 & " " & Val(IDConLai) & " And " MsgBox sql sql = sql & " HosocanBo.[Macb]=luong.[Macb] ORDER BY HosoCanBo.[HoTen]" 'MsgBox sql Case False If Len(IDHoTen) > 0 Then sql = sql & " HosoCanBo.[HoTen] LiKe '" & IDHoTen & "' or " If Len(IDMacb) > 0 Then sql = sql & " HosoCanBo.[Macb] LiKe '" & IDMacb & "' or " If Len(IDHSL) > 0 Then sql = sql & " Luong.[Hesoluong] Like '" & IDHSL & "' Or " If Len(IDMPC) > 0 Then sql = sql & " Luong.[MucPhuCap] LiKe '" & IDMPC & "' OR " If Len(IDLT) > 0 Then sql = sql & " Luong.[LoaiThuong] LiKe '" & IDLT & "' OR " If Len(IDDnd) > 0 Then sql = sql & " Luong.[KyNhan] LiKe '" & IDDnd & "' OR " If Len(IDLuong) > 0 Then sql = sql & " val(Luong.[Luong]) " & pheptoan1 & " " & Val(IDLuong) & " OR " ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 80 If Len(IDConLai) > 0 Then sql = sql & " val(Luong.[ConLai]) " & pheptoan2 & " " & Val(IDConLai) & " OR " sql = Mid(sql, 1, Len(Trim(sql)) - 2) MsgBox sql sql = sql & " AND HosocanBo.[Macb]=luong.[Macb] ORDER BY HosoCanBo.[HoTen]" End Select Set db = OpenDatabase("c:\Qlluong\Qlluong.mdb") Set rec = db.OpenRecordset(sql, dbOpenSnapshot) If rec.RecordCount = 0 Then MsgBox " Kh«ng cã c¸n bé tho¶ m·n th«ng tin t×m kiÕm", vbCritical, "Th«ng b¸o" Exit Sub End If Set DatTCLuong.Recordset = rec Me.DbgTCLuong.Refresh Me.txtTong.Text = Me.DatTCLuong.Recordset.RecordCount Me.DbgTCLuong.SetFocus End Sub Private Sub cmdview_Click() LUONG.Show End Sub Sub Form_Activate() Me.Width = 11000 Me.Height = 7500 Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 200 'NapDK End Sub Private Sub Form_Load() Dim rec As Recordset Dim sql As String Me.OptAND.Value = True Me.OptOR.Value = False Me.Frame1.Enabled = False mypath = "c:\QLluong\Qlluong.mdb" For k = 0 To 5 Me.CBoTC(k).Text = "" Next k Me.txtTC(0).Text = "" Me.txtTC(1).Text = "" Me.DatTCLuong.RecordSource = mypath ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 81 Me.DbgTCLuong.Columns(0).DataField = "HoTen" sql = "SELECT DISTINCTROW HosoCanBo.macb, HosoCanBo.HoTen, HosoCanBo.Ngaysinh, HosoCanBo.Phong, HosoCanBo.Chucvu, HosoCanBo.NgayVaoBienChe, Luong.hesoluong, Luong.Loaithuong, Luong.MucPhuCap, Luong.SoNgayNghi, Luong.Luong, Luong.TamUng, Luong.Conlai " sql = sql & " FROM HosoCanBo,Luong WHERE " sql = sql & "HosoCanBo.[Macb]=Luong.[Macb] ORDER BY HosoCanBo.[Hoten]" Set db = DBEngine.Workspaces(0).OpenDatabase("c:\QLluong\Qlluong.mdb") Set rec = db.OpenRecordset(sql, dbOpenSnapshot) If rec.RecordCount = 0 Then MsgBox " Kh«ng cã ®Çu s¸ch tho¶ m·n th«ng tin t×m kiÕm", vbCritical, "Th«ng b¸o" Exit Sub End If Set Me.DatTCLuong.Recordset = rec 'Me.DatTCLuong.Refresh With Me.DatTCLuong Me.DbgTCLuong.Columns(0).DataField = .Recordset.Fields(1).Name Me.DbgTCLuong.Columns(0).Width = 3000 ' .Refresh Me.DbgTCLuong.Refresh TxtTCLuong(0).DataField = "Macb" For i = 0 To 12 Step 1 TxtTCLuong(i).DataField = .Recordset.Fields(i).Name Next i Me.DbgTCLuong.Refresh End With Me.txtTong.Text = Me.DatTCLuong.Recordset.RecordCount NapDK End Sub Public Sub NapDK() 'n¹p Th«ng Tin Ho tªn For i = 1 To 5 Me.CBoTC(i).Clear Next i mypath = "c:\QLluong\Qlluong.mdb" frmTraCuuLuong.CBoTC(0).AddItem "" Set db = DBEngine.Workspaces(0).OpenDatabase(mypath) ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 82 MySql = "SELECT DISTINCT [Hoten] FROM HosoCanBo ORDER BY HosoCanBo.[HoTen]" Set rec = db.OpenRecordset(MySql, dbOpenSnapshot) If rec.RecordCount 0 Then With rec .MoveLast .MoveFirst Do While Not .EOF frmTraCuuLuong.CBoTC(0).AddItem (.Fields(0).Value) .MoveNext Loop End With frmTraCuuLuong.CBoTC(0).AddItem "" End If 'n¹p Th«ng Tin MaCB frmTraCuuLuong.CBoTC(1).AddItem "" Set db = DBEngine.Workspaces(0).OpenDatabase(mypath) MySql = "SELECT DISTINCT [Macb] FROM Luong ORDER BY Luong.[Macb]" Set rec = db.OpenRecordset(MySql, dbOpenSnapshot) If rec.RecordCount 0 Then With rec .MoveLast .MoveFirst Do While Not .EOF frmTraCuuLuong.CBoTC(1).AddItem (.Fields(0).Value) .MoveNext Loop End With ' frmTraCuuLuong.CBoTC(1).AddItem "" End If 'n¹p Th«ng Tin HÖ sè l­¬ng Set db = DBEngine.Workspaces(0).OpenDatabase(mypath) MySql = "SELECT DISTINCT [Heso] FROM HesoLuong ORDER BY HesoLuong.[Heso]" Set rec = db.OpenRecordset(MySql, dbOpenSnapshot) If rec.RecordCount 0 Then With rec .MoveLast .MoveFirst Do While Not .EOF ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 83 frmTraCuuLuong.CBoTC(2).AddItem (.Fields(0).Value) .MoveNext Loop End With frmTraCuuLuong.CBoTC(2).AddItem "" End If 'n¹p Th«ng Tin Møc phô cÊp Set db = DBEngine.Workspaces(0).OpenDatabase(mypath) MySql = "SELECT DISTINCT [MucPhucap] FROM PhuCap ORDER BY PhuCap.[MucPhuCap]" Set rec = db.OpenRecordset(MySql, dbOpenSnapshot) If rec.RecordCount 0 Then With rec .MoveLast .MoveFirst Do While Not .EOF frmTraCuuLuong.CBoTC(3).AddItem (.Fields(0).Value) .MoveNext Loop End With frmTraCuuLuong.CBoTC(3).AddItem "" End If 'n¹p Th«ng Tin Lo¹i th­ëng Set db = DBEngine.Workspaces(0).OpenDatabase(mypath) MySql = "SELECT DISTINCT [LoaiThuong] FROM Thuong" ' ORDER BY Thuong.[LoaiThuong]" Set rec = db.OpenRecordset(MySql, dbOpenSnapshot) If rec.RecordCount 0 Then With rec .MoveLast .MoveFirst Do While Not .EOF frmTraCuuLuong.CBoTC(4).AddItem (.Fields(0).Value) .MoveNext Loop End With frmTraCuuLuong.CBoTC(4).AddItem "" End If 'n¹p Th«ng Tin §a nh©n frmTraCuuLuong.CBoTC(5).AddItem "" ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 84 Set db = DBEngine.Workspaces(0).OpenDatabase(mypath) MySql = "SELECT DISTINCT [KyNhan] FROM Luong ORDER BY Luong.[KyNhan]" Set rec = db.OpenRecordset(MySql, dbOpenSnapshot) If rec.RecordCount 0 Then With rec .MoveLast .MoveFirst Do While Not .EOF Me.CBoTC(5).AddItem (.Fields(0).Value) .MoveNext Loop End With ' frmTraCuuLuong.CBoTC(5).AddItem "" End If End Sub Private Sub OptAND_Click() Me.OptAND.Value = True Me.OptOR.Value = False End Sub Private Sub OptOR_Click() Me.OptOR.Value = True Me.OptAND.Value = False End Sub Private Sub txtTC_KeyUp(Index As Integer, KeyCode As Integer, Shift As Integer) Select Case Index Case 0 If KeyCode = 13 Then txtTC(1).SetFocus End If Case 1 If KeyCode = 13 Then CBoTC(3).SetFocus End If End Select End Sub Private Sub Command1_Click() Unload Me End Sub Sub cmdchucnang_Click() outputdestination = 0 ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 85 rptxemhoso.Destination = outputdestination rptxemhoso.DataFiles(0) = mypath rptxemhoso.ReportFileName = rptfilename + "hscb.rpt" rptxemhoso.Action = 1 End Sub Sub Form_Activate() Me.Width = 11900 Me.Height = 7500 With DBGXemHoso .Top = frmXemhoso.Top - 100 .Left = frmXemhoso.Left - 200 .Width = Me.Width - 100 .Height = Me.Height - 1500 End With Me.Move (Screen.Width - Me.Width) / 200, (Screen.Height - Me.Height) / 200 Me.Frame1.Top = Me.Height - 1500 Me.Frame1.Left = Me.Left + 100 Me.Frame1.Width = Me.Width - 400 Me.datxemhoso.Visible = False 'Form_Load End Sub Sub Form_Load() mypath = "c:\QLluong\qlluong.mdb" datxemhoso.DatabaseName = mypath datxemhoso.RecordSource = "HoSoCanBo" Me.DBGXemHoso.Font.Name = ".vntime" Me.DBGXemHoso.Font.Size = 12 Form_Activate HienTieuDe End Sub Public Sub HienTieuDe() With Me.DBGXemHoso .Columns(0).Caption = "M· C¸n Bé" .Columns(0).DataField = "Macb" .Columns(0).Width = 1000 .Columns(1).Caption = "Hä Tªn" .Columns(1).DataField = "Hoten" .Columns(1).Width = 2500 .Columns(2).Caption = "Ngµy Sinh" .Columns(2).DataField = "Ngaysinh" .Columns(2).Width = 1500 .Columns(3).Caption = "Giíi TÝnh" ***TRƯỜNG ĐẠI HỌC KINH TẾ QUỐC DÂN - BỘ MÔN CÔNG NGHỆ THÔNG TIN.*** ĐỀ TÀI: QUẢN LÝ CÁN BỘ TIỀN LƯƠNG -- GVHD: THS. NGUYỄN THANH HƯƠNG. 86 .Columns(3).DataField = "Gioitinh" .Columns(3).Width = 1000 .Columns(4).Caption = "D©n Téc" .Columns(4).DataField = "DanToc" .Columns(4).Width = 1200 .Columns(5).Caption = "Quª Qu¸n" .Columns(5).DataField = "QueQuan" .Columns(5).Width = 2000 .Columns(6).Caption = "N¬i ë " .Columns(6).DataField = "noioHienNay" .Columns(6).Width = 2000 .Columns(7).Caption = "Phßng" .Columns(7).DataField = "Phong" .Columns(7).Width = 2000 .Columns(8).Caption = "Chøc Vô" .Columns(8).DataField = "ChucVu" .Columns(8).Width = 2000 .Columns(9).Caption = "Tr×nh §é" .Columns(9).DataField = "trinhDO" .Columns(10).Caption = "Chuyªn M«n" .Columns(10).DataField = "ChuyenMon" .Columns(11).Caption = "Ngµy Vµo biªn chÕ" .Columns(11).DataField = "Ngayvaobienche" End With End Sub

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

  • pdftin_01_2884.pdf