Đề tài Xây dựng chương trình Quản lí nhân sự cho công ty trung bình (20 đến 30 nhân viên)

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.

doc51 trang | Chia sẻ: Dung Lona | Lượt xem: 1317 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Đề tài Xây dựng chương trình Quản lí nhân sự cho công ty trung bình (20 đến 30 nhân viên), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Lêi nãi ®Çu Với nội dung đồ án thực tập”Quản lí nhân sự”, em đã thiết kế chương trình quản lí nhân sự cho công ty phát triển phần mềm EDT với mong muốn giúp người quản lí nhân sự của công ty có thể quản lí được nhân viên của công ty một cách tốt hơn. Mặc dù rất cố gắng để hòan thành công việc, xong thời gian có hạn và kinh nghiệm kiến thức chưa nhiều nên việc phân tích thiết kế và đặc biệt là việc cài đặt, ứng dụng còn nhiều thiếu sót cần được bổ xung. Vì vậy em mong được ý kiến đóng góp của các thấy cô và các bạn để đề tài ngày càng hoàn thiện hơn. Cuối cùng em xin chân thành cảm ơn các thầy cô giáo trong khoa Công Nghệ Thông Tin trường Cao đẳng Công Nghiệp Hà Nội, đặc biệt là thầy Ngô Đức Vĩnh đã trực tiếp tận tình chỉ bảo hướng dẫn em hoàn thành đề tài này. Sinh viên thực hiện Trần Thanh Thủy CHƯƠNG I. MỞ ĐẦU I. Lí do chọn đề tài. Ngày nay song song với sự phát triển của khoa học kĩ thuật, ngành công nghệ máy tính cũng phát triển và giữ vai trò quan trọng trong cuộc sống của chúng ta, nó đã đạt được những thành khoa học kĩ thuật rực rỡ với những bước tiến nhảy vọt. việc áp dụng những công nghệ khoa học kĩ thuật vào lĩnh vực đời sống của con người ngày càng tăng và không ngừng can thiệp vào hầu hết các công việc trong cuộc sống. Công nghệ thông tin là một trong những ngành khoa học đó. Đi đôi với sự phát triển của công nghệ chế tạo các thiết bị máy tính thì việc sản phẩm phần mềm ứng dụng ra đời có tính chất quyết định đối với việc áp dụng ngành khoa học này. Trên thế giới cũng như ở Việt Nam, công nghệ thông tin đã trở thành một ngành công nghiệp mũi nhọn, nó là một ngành khoa học kĩ thuật không thể thiếu trong việc áp dụng vào các hoạt động xã hội như: quản lí, kinh tế, thông tin Ở nước ta hiện nay, việc áp dụng vi tính hóa trong việc quản lí tại các cơ quan, xí nghiệp đang rất phổ biến và trở nên cấp thiết. nhưng một vấn đề đặt ra trong việc quản lí là làm thế nào để chuẩn hóa cách xử lí dữ liệu ở các cơ quan xí nghiệp, bởi với hàng ttrăm cơ quan, hàng trăm xí nghiệp là hàng trăm cách xử lí khác nhau. ở đây, em chỉ muốn đề cập tới tầm quan trọng của việc đưa máy tính vào trong các cơ quan để xử lí thông tin. Quản lí nhân sự là một công việc vô cùng quan trọng, nó gắn liền với sự phát triển của chính công ty đó. Nên việc ứng dụng tin học vào việc quản lí lại càng trở nên bức thiết, nhằm giúp cho công việc quản lí phát huy được tính hiệu quả. II. Khảo sát hệ thống 1. Giới thiệu chung về hoạt động cuả hệ thống Ứng dụng máy tính trong vấn đề quản lí không thể tách rời việc tìm hiểu hoạt động của công ty và cách thức sử dụng thông tin của các bộ phận chức năng trong công ty đó. Muốn sử dụng máy tính vào việc trợ giúp quản lí có hiệu quả không chỉ có trình độ nhất định về chuyên môn và các chức năng, các bộ phận trong hệ thống cần nghiên cứu. mức độ hiệu quả của công việc ứng dụng trong máy nhanh hay chậm là phụ thuộc vào sự hiểu biết của người biết về lĩnh vực chuyên môn. Trong quản lí nhân sự việc ứng dụng công cụ để lưu trữ hồ sơ, sơ yếu lý lịch, về thành phần gia đình, quá trình công tác. Để thiết kế được đòi hỏi người thiết kế phải nắm bắt được chế độ quyết định của một cơ quan, phải tìm hiểu được cách làm thủ công trước đây của cán bộ làm nhiệm vụ quản lí nhân sự. Xử lý công việc bằng máy có thể cho ta quản được nhiều dữ liệu hơn và dữ liệu được lưu trữ một cách an toàn, việc tìm kiếm thông tin nhanh hơn rất nhiều, giảm được số lượng cán bộ làm công tác quản lí này. Bên cạnh những ưư điểm quản lí bằng máy tính thì không thể tránh khỏi những nhược điểm là đòi hỏi là cán bộ quản lí phải có trình độ nhất định về tin học. vì vậy trong công tác quản lí nhân sự đòi hỏi cán bộ quản lí phải thu thập số liệu xử lí và cung cấp thông tin cần thiết và kịp thời. 2. Nhiệm vụ của hệ thống -Hệ thống :tức là có nhiệm vụ giúp cho người dùng truy cập vào hệ thống dễ dàng hơn . Ta có thể xem thông tin về bất cứ nhân viên nào mà ta cần trong công ty khi ta vào từ điển dữ liệu. -Quản lí hồ sơ có nhiệm vụ quản lí tất cả các thông tin của nhân viên về lí lịch như: họ tên, năm sinh, quê quán, trình độ. Trong quản lí hồ sơ có thể nhập thêm hồ sơ của nhân viên theo biên chế hoặc hợp đồng dài hạn, hợp đồng ngắn hạn, sửa hồ sơ nhân viên. Lưư trữ thông tin của nhân viên về tất cả các mặt như: mã nhân viên, ttrình độ chuyên môn. -Quản lí lương tức là quản lí tiền lương của từng nhân viên trong công ty, có thể cập nhật lương, lập bảng lương. Ngoài ra có thể thống kê ngày công của nhân viên theo bảng theo dõi ngày công của họ. bộ phận thống kê lương cũng phải làm nhiệm vụ thống kê danh sách lên lương hàng năm. Ttìm kiếm: tức là ta có thể tìm kiếm thông tin về nhân viên theo mã nhân sự, tìm kiếm theo mã lương, tìm kiếm theo trình độ. -Báo cáo thống kê: báo cáo thống ke tức là có thể thống kê theo trình độ của nhân viên, thống kê danh sách nhân sự đến tuổi nghỉ hưu, thống kê theo lương của nhân sự. 3. Nhược diểm của hệ thống cũ Ngày nay nhờ sự ra đời và phát triển của máy tính các bài toán quản lí dần dần được xử lí một cách tự động. Thay vì việc phải tự mình ghi chép, tìm kiếm, tính toán, tổng hợpcon người có thể sử dụng phần mềm ứng dụng trên máy tính để thực hiện, điều này tăng khả năng xử lí thông tin, nhằm đáp ứng lượng thông tin ngày càng nhiều -Thời gian chi phí cho việc lưư trữ, tìm kiếm quá lớn. -Số thao tác trùng lặp nhiều. -Chi phí thời gian cho việc truy xuất cơ sở dữ liệu nhiều nên khó đáp ứng được tính nhanh nhậy của thông tin. -Kết xuất khó đảm bảo độ tin cậy theo yêu cầu. 4. Ưu điểm của hệ thống mới Hệ thống quản lí với sự giúp đỡ của tin học đã đáp ứng được các yêu cầu sau: -Tự động hóa các thao tác phép tính số học mà từ trước tới nay phải làm bằng tay. -Thực hiện các chức năng hỏi đáp nhanh (như nhu cầu lấy thông tin về nhân sự). -Tổng hợp đầy đủ, chính xác, kịp thời về lương của nhân viên. -Đưa ra danh sách cán bộ công nhân viên khi cần tìm kiếm theo yêu cầu. -Bảng tổng hợp chi trả lương hàng tháng một cách chính xác đầy đủ. -Có khả năng bổ xung thêm một nhân viên mới, xóa bỏ thông tin của một nhân viên. -Có khả năng lưư trữ thông tin của nhân viên toàn công ty trong nhiều năm công tác. -Phải đảm bảo được tính an toàn của dữ liệu (không bị dư thừa, không sai lệch). 5. Cơ cấu tổ chức và cách tiến hành. Công việc quản lí nhân sự là công việc hết sức khó khăn và mất rất nhiều thời gian, công sức. mục đích của quản lí nhân sự là làm sao lưư trữ được thông tin về nhân viên của công ty sao cho hiệu quả, công việc đạt được cao nhất trong cùng một thời gian làm việc và thỏa mãn các điều kiện cho người lao động. Quản lí nhân sự bao gồm nhiều hệ thống có phân biệt ứng với mục tiêu và nhiệm vụ cụ thể của công tác quản lí. Với mỗi cơ quan hệ thống được chia ra nhiều phòng ban, các nhân viên ở mỗi phòng ban đều được hệ thống chung quản lí, trong hệ thống quản lí chung này thì các chức năng làm việc như sau: -Hệ thống: được sử dụng như là một cách tra cứu. - Quản lí hồ sơ của nhân viên cả biên chế và hợp đồng. Hồ sơ của từng nhân viên sẽ được lưu lại. - Ta có thể tra cứu nhân viên theo một số tiêu thức như: tên, bậc lương, trình độ, phòng công tác, công việc. - Bộ phận quản lí lương: dựa vào quá trình công tác và trình độ của từng cán bộ trong công ty mà chức năng sẽ tính lương, chi phí phụ cấp, các loại bảo hiểm cho từng nhân viên được hưởng. - Bộ phận báo cáo thống kê: hàng tháng hệ thống phải in ra bảng lương của nhân viên gồm hai loại hợp đồng và biên chế. 6. Mô hình tiến trình nghiệp vụ Hå s¬ nh©n sù B¸o c¸o hå s¬ lý lÞch cña c¸n bé c«ng nh©n viªn B¶ng b¸o c¸o thèng kª theo tõng ®¬n vÞ c«ng t¸c B¸o c¸o vÒ lương cña nh©n viªn B¶ng b¸o c¸o nhanh theo ®Þnh kú, theo yªu cÇu nµo ®ã HÖ thèng qu¶n lý nh©n sù III. Nhu cầu tin học hóa Ngày nay trong các cơ quan người cán bộ làm các công tác quản lí nhân sự họ phải xử lí một khối lượng công việc rất lớn từ công tác quản lí hồ sơ, công tác quản lí quỹ lương đến công tác quản lí cơ cấu tổ chức và cả việc in ra báo cáo. Như vậy khi có sự thay đổi trong công tác quản lí thì phải mất rất nhiêu thời gian, công sức cho việc cập nhật lại, xem xét và tìm kiếmNhờ có nghành tin học ứng dụng vào thực tế mà khối lượng công việc giảm đi rất nhiều và hết sức cần thiết với mọi cơ quan và đặc biệt không thể thiếu được vào công tác quản lí nhân sự. IV. Hướng giải quyết và phạm vi giải quyết -Sử dụng công cụ là máy tính. -Tin học hóa công tác nhân sự và lương. -Sử dụng cơ sở dữ liệu chung cho toàn công ty. -Quản lí nhân sự cho công ty trung 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=nn.matdnn and cm.matdcm=" & cboTD.ItemData(cboTD.ListIndex) Set rs = db.OpenRecordset(sql) Call loadBL If rs.EOF Then Exit Sub rs.MoveLast rs.MoveFirst i = 1 With txtBL .Rows = rs.RecordCount + 1 While Not rs.EOF For j = 0 To rs.Fields.Count - 1 .TextMatrix(i, j) = rs(j) Next rs.MoveNext i = i + 1 Wend End With Call Closedb End Sub Private Sub Form_Load() Dim rs As Recordset Dim i As Integer loadBL Call Opendb Set rs = db.OpenRecordset("Select * from tdcm") i = 0 cboTD.Clear While Not rs.EOF cboTD.AddItem rs(1) cboTD.ItemData(i) = rs(0) rs.MoveNext i = i + 1 Wend cboTD = cboTD.List(0) optTim(2) = True Call Closedb End Sub Sub loadBL() Dim i As Integer With txtBL .Clear .Cols = 13 .Rows = 2 .ColWidth(0) = 3000 .ColWidth(1) = 2000 .ColWidth(2) = 1500 .ColWidth(3) = 1000 .ColWidth(4) = 1500 .ColWidth(5) = 3000 .ColWidth(6) = 3000 .ColWidth(7) = 3000 .ColWidth(8) = 3000 .ColWidth(9) = 3000 .ColWidth(10) = 3000 .ColWidth(11) = 2000 .ColWidth(12) = 2000 For i = 0 To .Cols - 1 .ColAlignment(i) = 3 Next .TextMatrix(0, 0) = "Tªn nh©n viªn" .TextMatrix(0, 1) = "Phßng ban" .TextMatrix(0, 2) = "Ngµy sinh" .TextMatrix(0, 3) = "Giíi tÝnh" .TextMatrix(0, 4) = "Sè CMND" .TextMatrix(0, 5) = "Tr×nh ®é chuyªn m«n" .TextMatrix(0, 6) = "Tr×nh ®é ngo¹i ng÷" .TextMatrix(0, 7) = "Hé khÈu th­êng tró" .TextMatrix(0, 8) = "§Þa chØ" .TextMatrix(0, 9) = "D©n téc" .TextMatrix(0, 10) = "T«n gi¸o" .TextMatrix(0, 11) = "Ngµy vµo §oµn" .TextMatrix(0, 12) = "Ngµy vµo §¶ng" End With End Sub Private Sub optTim_Click(Index As Integer) Dim rs As Recordset Dim sql As String Dim i, j As Integer Select Case Index Case 2 cboTD.Enabled = True Case 1 cboTD.Enabled = False 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,nghiviec 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=nn.matdnn" ' and cm.matdcm=" & cboTD.ItemData(cboTD.ListIndex) Set rs = db.OpenRecordset(sql) Call loadBL If rs.EOF Then Exit Sub rs.MoveLast rs.MoveFirst i = 1 With txtBL .Rows = rs.RecordCount + 1 While Not rs.EOF For j = 0 To rs.Fields.Count - 1 .TextMatrix(i, j) = rs(j) Next rs.MoveNext i = i + 1 Wend End With Call Closedb End Select End Sub 6. Qu¶n lý th«ng tin vÒ t«n gi¸o, d©n téc, chuyªn m«n Dim fag As Integer Dim sTable, f1, f2 As String Private Sub cmdAction_Click(Index As Integer) Dim sql As String Call Opendb Select Case Index Case 0 'add If cmdAction(0).Caption = "Thªm" Then cmdAction(0).Caption = "Hñy bá" fag = 0 Frame1.Enabled = False Frame2.Enabled = False Frame4.Enabled = True cmdAction(3).Enabled = True ElseIf cmdAction(0).Caption = "Hñy bá" Then cmdAction(0).Caption = "Thªm" Frame1.Enabled = True Frame2.Enabled = True Frame4.Enabled = False cmdAction(3).Enabled = False fag = 2 End If Case 1 'edit If cmdAction(1).Caption = "Thay ®æi" Then If lstDs.ListIndex >= 0 Then fag = 1 cmdAction(1).Caption = "Hñy bá" Frame1.Enabled = False Frame2.Enabled = False Frame4.Enabled = True cmdAction(3).Enabled = True cmdAction(0).Enabled = False cmdAction(2).Enabled = False txtDs = lstDs.List(lstDs.ListIndex) End If ElseIf cmdAction(1).Caption = "Hñy bá" Then cmdAction(1).Caption = "Thay ®æi" Frame1.Enabled = True Frame2.Enabled = True Frame4.Enabled = False cmdAction(3).Enabled = False cmdAction(0).Enabled = True cmdAction(2).Enabled = True fag = 2 txtDs = "" End If Case 2 'del sql = MsgBox("B¹n ch¾c ch¾n xãa kh«ng?", vbQuestion + vbYesNo, "Chó ý") If sql = vbYes Then db.Execute "delete * from " & sTable & " where " & f2 & " = " & lstDs.ItemData(lstDs.ListIndex) MsgBox "Hoµn thµnh c«ng viÖc." End If Call Form_Load Case 3 'save Select Case fag Case 0 'add sql = "Insert into " & sTable & "(" & f1 & ")values('" & txtDs & "')" db.Execute sql Call Form_Load Case 1 'edit sql = "update " & sTable & " set " & f1 & "='" & txtDs & "' where " & f2 & " = " & lstDs.ItemData(lstDs.ListIndex) db.Execute sql Call Form_Load Case 2 End Select cmdAction(0).Caption = "Thªm" cmdAction(1).Caption = "Thay ®æi" End Select Call Closedb End Sub Private Sub Form_Load() Call opt5in1_Click(0) Frame4.Enabled = False Frame1.Enabled = True Frame2.Enabled = True cmdAction(1).Enabled = False cmdAction(2).Enabled = False cmdAction(3).Enabled = False End Sub Private Sub lstDs_Click() If lstDs.ListIndex >= 0 Then cmdAction(1).Enabled = True cmdAction(2).Enabled = True End If End Sub Private Sub opt5in1_Click(Index As Integer) Dim rs As Recordset Dim sql As String Dim i As Integer Call Opendb Select Case Index Case 0 sql = "select * from phongban" sTable = "phongban" f1 = "tenpb" f2 = "mapb" Case 1 sql = "select * from tongiao" sTable = "tongiao" f1 = "diengiai" f2 = "matongiao" Case 2 sql = "select * from dantoc" sTable = "dantoc" f1 = "diengiai" f2 = "madantoc" Case 3 sql = "select * from tdcm" sTable = "tdcm" f1 = "diengiai" f2 = "matdcm" Case 4 sql = "select * from tdnn" sTable = "tdnn" f1 = "diengiai" f2 = "matdnn" End Select Set rs = db.OpenRecordset(sql) lstDs.Clear i = 0 While Not rs.EOF lstDs.AddItem rs(1) lstDs.ItemData(i) = rs(0) rs.MoveNext i = i + 1 Wend End Sub 7. Form cËp nhËt thay dæi mËt khÈu vµ quyÒn sö dông Private Sub Command1_Click() Dim sql As String Dim user, pass, right As String Call Opendb user = InputBox("NhËp tªn Ng­êi dïng") pass = InputBox("NhËp password") right = InputBox("G¸n quyÒn." & Chr(13) & " 0: Lµ qu¶n trÞ" & Chr(13) & " 1: Lµ ng­êi ®äc") If Val(right) 1 Then Exit Sub If user "" And pass "" And right "" Then sql = "insert account(user,pass,right)values('" & user & "','" & pass & "','" & right & "')" db.Execute sql MsgBox "OK" Call Form_Load Else MsgBox "Lçi." End If Call Closedb End Sub Private Sub Command2_Click() Call Opendb db.Execute "update account set pass='" & txtPass & "',right='" & cboQ.ItemData(cboQ.ListIndex) & "' where user='" & lstUser.List(lstUser.ListIndex) & "'" Call Closedb End Sub Private Sub Form_Load() Dim rs As Recordset Dim i As Integer cboQ.Clear cboQ.AddItem "Qu¶n trÞ" cboQ.AddItem "QuyÒn ®äc" cboQ.ItemData(0) = 0 cboQ.ItemData(1) = 1 Call Opendb Set rs = db.OpenRecordset("Select * from account") lstUser.Clear i = 0 While Not rs.EOF lstUser.AddItem rs(0) lstUser.ItemData(i) = rs(2) rs.MoveNext i = i + 1 Wend Call Closedb End Sub Private Sub lstUser_Click() Dim rs As Recordset Dim sql, a As String Dim i As Integer Call Opendb With lstUser If .ListIndex >= 0 Then sql = "select * from account where user='" & .List(.ListIndex) & "'" Set rs = db.OpenRecordset(sql) If Not rs.EOF Then For i = 0 To cboQ.ListCount - 1 If rs("right") = cboQ.ItemData(i) Then cboQ = cboQ.List(i) Next txtPass = rs("pass") End If End If End With Call Closedb End Sub 8. Form ®¨ng nhËp hÖ thèng Private Sub Command1_Click() Dim rs As Recordset Call Opendb Set rs = db.OpenRecordset("select * from account where user='" & txtuser & "' and pass='" & txt & "'") If rs.EOF Then Exit Sub frmMain.Show Closedb End Sub 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 Giíi thiÖu chung vÒ ho¹t ®éng hÖ thèng NhiÖm vô cña hÖ thèng Nh­îc ®iÓm cña hÖ thèng cò ¦u ®iÓm cña hÖ thèng míi C¬ cÊu tæ chøc vµ c¸ch tiÕn hµnh 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 S¬ ®å ph©n cÊp chøc n¨ng 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 C¸c chøc n¨ng chÝnh cña hÖ thèng NhiÖm vô c¬ b¶n cña c¸c chøc n¨ng Chøc n¨ng hÖ thèng Chøc n¨ng qu¶n lÝ hå s¬ Chøc n¨ng qu¶n lÝ l­¬ng Chøc n¨ng thèng kª b¸o c¸o Ph©n tÝch d÷ liÖu M« h×nh luång d÷ liÖu møc khung c¶nh M« h×nh luång d÷ liÖu møc ®Ønh M« h×nh luång d÷ liÖu møc d­íi ®Ønh m« h×nh luång d÷ liÖu møc d­íi ®Ønhchøc n¨ng qu¶n lÝ hå s¬ M« h×nh luång d÷ liÖu møc d­íi ®Ønh chøc n¨ng qu¶n lÝ l­¬ng 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

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

  • doc4063.doc