Đề tài Xây dựng chương trình quản lý nhân sự của chi cục dự trữ sóc sơn dựa trên ngôn ngữ Visual Basic

Tài liệu Đề tài Xây dựng chương trình quản lý nhân sự của chi cục dự trữ sóc sơn dựa trên ngôn ngữ Visual Basic: Lời cảm ơn Chúng tôi xin bày tỏ lòng biết ơn chân thành và sâu sắc tới thày giáo hướng dẫn Hồ Văn Hương đã giúp đỡ và chỉ dẫn tận tình cho chúng tôi trong việc hình thành bản đồ án, hướng dẫn triển khai đề tài, cách sử dụng tài liệu hệ thống hóa kiến thức và tổng kết các kết quả nghiên cứu một cách có hệ thống và khoa học. Tôi cũng xin chân thành cảm ơn Đảng uỷ, lãnh đạo, các phòng ban, CBCC Chi cục Dự trữ Sóc Sơn giúp đỡ tôi trong quá trình tìm hiểu tại Chi cục. Chúng tôi cũng xin cảm ơn các thầy cô trong khoa Công Nghệ Thông Tin_Viện Đào Tạo Công Nghệ Và Quản Lí Quốc Tế đã nhiệt tình giúp đỡ và dạy dỗ trong thời gian học tập tại trường. Tôi cảm ơn chân thành sự nhiệt tình giúp đỡ và các ý kiến đóng góp quí báu của các bạn trong lớp Thương Mại Điện Tử 1. Cuối cùng tôi xin chân thành cảm ơn tất cả các bạn đã giúp đỡ chúng tôi hoàn thành tốt đồ án này. đặt vấn đề - Ngày nay tin học là ngành khoa học đang được phát triển và ứng dụng rộng rãi tích cực vào mọi hoạt động của xã hộ...

doc94 trang | Chia sẻ: hunglv | Lượt xem: 1094 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Xây dựng chương trình quản lý nhân sự của chi cục dự trữ sóc sơn dựa trên ngôn ngữ Visual Basic, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Lời cảm ơn Chúng tôi xin bày tỏ lòng biết ơn chân thành và sâu sắc tới thày giáo hướng dẫn Hồ Văn Hương đã giúp đỡ và chỉ dẫn tận tình cho chúng tôi trong việc hình thành bản đồ án, hướng dẫn triển khai đề tài, cách sử dụng tài liệu hệ thống hóa kiến thức và tổng kết các kết quả nghiên cứu một cách có hệ thống và khoa học. Tôi cũng xin chân thành cảm ơn Đảng uỷ, lãnh đạo, các phòng ban, CBCC Chi cục Dự trữ Sóc Sơn giúp đỡ tôi trong quá trình tìm hiểu tại Chi cục. Chúng tôi cũng xin cảm ơn các thầy cô trong khoa Công Nghệ Thông Tin_Viện Đào Tạo Công Nghệ Và Quản Lí Quốc Tế đã nhiệt tình giúp đỡ và dạy dỗ trong thời gian học tập tại trường. Tôi cảm ơn chân thành sự nhiệt tình giúp đỡ và các ý kiến đóng góp quí báu của các bạn trong lớp Thương Mại Điện Tử 1. Cuối cùng tôi xin chân thành cảm ơn tất cả các bạn đã giúp đỡ chúng tôi hoàn thành tốt đồ án này. đặt vấn đề - Ngày nay tin học là ngành khoa học đang được phát triển và ứng dụng rộng rãi tích cực vào mọi hoạt động của xã hội, trong đó ứng dụng vào lĩnh vực quản lý là cần thiết. - Quản lý nhân sự là một lĩnh vực đòi hỏi xử lý nhanh những thông tin cần thiết, giải quyết một công việc đồ sộ trong một thời gian ngắn nhất, ứng dụng tin học vào quản lý là công việc phù hợp với yêu cầu thực tế. - Xã hội ngày càng phát triển thì các bài toán phát sinh ngày càng phức tạp hơn. Nhất là trong các bài toán quản lý, thống kê, kế toán... các ngôn ngữ đã có như Excel, Foxpro... có phần chưa đáp ứng được hết các yêu cầu của nó. VISUAL BASIC là hệ quản trị CSDL chạy trên môi trường WINDOWS. Trong đó có đủ các công cụ hữu hiệu và tiện lợi để tự động xây dựng các chương trình cho hầu hết các bài toán thường gặp trong quản lý, thống kê, kế toán. Để giải quyết các bài toán trên cần phải dựa vào một ngôn ngữ lập trình đủ mạnh. Trong điều kiện nước ta hiện nay thì VISUAL BASIC chính là một ngôn ngữ đủ hiệu quả và thông dụng nhất cho việc xây dựng một chương trình nói trên. Trên cơ sở đã phân tích kết hợp với nhu cầu, từ thực tế hiện nay, đồ án tốt nghiệp này sẽ giải quyết vấn đề: Xây dựng chương trình quản lý nhân sự của chi cục Dự trữ Sóc Sơn dựa trên ngôn ngữ VISUAL BASIC. Chương I khảo sát hệ thống hiện tại I. Hệ thống tổ chức cán bộ và hoạt động của cơ quan Chi cục Dự trữ Sóc Sơn là một cơ quan trung ương đóng tại địa phương, có nhiệm vụ dự trữ các mặt hàng chiến lược được xuất bán khi có yêu cầu của Chính phủ. Sơ đồ hệ thống tổ chức & quản lý nhân sự của chi cục Dự trữ Sóc Sơn Giám đốc P. giám đốc P. giám đốc Phòng tổ chức cán bộ Phòng kế hoạch Phòng biên tập Phòng kế toán tài chính Phòng kỹ thuật vi tinh Phòng thanh tra bảo vệ - Các phòng ban trên có mối quan hệ và liên hệ phụ thuộc lẫn nhau, được chuyên môn hóa, được giao trách nhiệm, quyền hạn nhất định, được bố trí theo từng cấp và tham mưu cho lãnh đạo những lĩnh vực mà mình quản lý. Nhiệm vụ quyền hạn của lãnh đạo các phòng ban của Chi cục Dự trữ Sóc Sơn: * Ban giám đốc - Trong Ban giám đốc của Chi cục Dự trữ Sóc Sơn có 3 người: Giám đốc và 2 Phó giám đốc. * Giám đốc Là người lãnh đạo cao nhất, có quyền quyết định mọi hoạt động của Chi cục và chịu hoàn toàn trách nhiệm với nhà nước. * Phó giám đốc Là người chịu trách nhiệm thi hành các công việc được giao, thay giám đốc quyết định các công việc của cơ quan khi giám đốc đi vắng. Tại Chi cục Dự trữ có 2 phó Giám đốc được phân công như sau: - Phó giám đốc kinh tế Phụ trách về mặt kinh tế cho toàn Chi cục, thay giám đốc ký kết các hợp đồng kinh tế, các văn bản pháp qui về mặt kinh tế cho toàn Chi cục. - Phó giám đốc kỹ thuật Phụ trách về mặt kỹ thuật thay giám đốc giải quyết các công việc mà mình được phân công phụ trách. - Phòng kế hoạch Tham mưu cho giám đốc trong việc tổng hợp lập kế hoạch hàng tháng, hàng quí và hàng năm, kết hợp cùng các bộ phận khác nắm bắt tình hình, nhu cầu khách hàng để xây dựng lập kế hoạch, đồng thời tổ chức việc thực hiện kiểm tra, hướng dẫn các đơn vị trực thuộc thực hiện các kế hoạch đề ra. Ngoài ra phòng kế hoạch còn soạn thảo những văn bản, thảo các hợp đồng kinh tế trong lĩnh vực mà mình phụ trách. - Phòng kế toán tài chính Có chức năng giúp giám đốc quản lý về mặt tài chính, thực hiện công tác kế toán thống kê theo đúng qui định của hệ thống kế toán tài chính, đúng qui định của pháp luật và phù hợp với kế hoạch do Cục Dự trữ Quốc gia giao cho. Phòng có nhiệm vụ ghi chép, phản ánh các nghiệp vụ kinh tế xảy ra hàng ngày, tiến hành kiểm tra tình hình thu chi ngân sách, quản lý các loại vật tư tiền vốn, từ đó cung cấp những thông tin cần thiết cho công việc điều hành của giám đốc, tiến hành kiểm tra phân tích các hoạt động kinh tế tài chính phục vụ cho công tác lập và theo dõi thực hiện kế hoạch. Phòng có quyền hạn trong việc hướng dẫn, kiểm tra, giám sát mọi hoạt động về mặt tài chính của toàn Chi cục. - Phòng hành chính Giúp giám đốc quản lý bảo vệ cơ sở vật chất phục vụ cho hoạt động của toàn chi cục, phòng có nhiệm vụ tiếp nhận và chuyển công văn, giải quyết các chế độ cho CBCC, tổ chức công tác thường trực bảo vệ an toàn cho Chi cục. - Phòng máy tính: Phòng có nhiệm vụ lập kế hoạch và thiết kế các vấn đề trong cơ quan bằng cách áp dụng CNTT trong tất cả các lĩnh vực: in ấn, bản vẽ, bản phác thảo, công văn, gửi Fax…. - Phòng biên tập: Có chức năng giúp giám đốc trong lĩnh vực biên tập lai các vấn đề liên quan đến nghiệp vụ in ấn, đó là việc chỉnh sửa nội dung có sự nhất trí của tác giả, bỏ sung và sửa đổi theo yêu cầu của Chi cục đã đề ra… - Bộ phận nhân sự, lao động tiền lương Có nhiệm vụ quản lý lao động, ký kết các hợp lao động, thực hiện đúng đắn các chế độ, chính sách của Nhà nước theo dõi về tiền lương, tiền thưởng, phân phối thu nhập, chăm lo cải thiện, tạo công ăn việc làm cho người lao động, tham mưu cho giám đốc về tổ chức nhân sự cho toàn Chi cục, có quyền đề xuất các phương án đảm bảo an toàn lao động và các chế độ bảo hiểm xã hội, lập kế hoạch mua sắm các trang thiết bị văn phòng, văn phòng phẩm phục vụ cho công tác chuyên môn nghiệp vụ cho toàn Chi cục. - Cách tính lương của Chi cục Dự trữ Sóc Sơn Lương được tính dựa theo lương cơ bản của mỗi CBCC là: 210.000đ x hệ số lương, tuỳ theo hệ số lương của từng người khác nhau có mức lương khác nhau, công thức tính mức lương của mỗi một CBCC là : Mức lương = 210.000đ x hệ số Ngoài mức lương cơ bản, mỗi CBCC còn được hưởng nhiều mức phụ cấp và các hệ số khác như: Phụ cấp chức vụ, phụ cấp thâm niên, phụ cấp trách nhiệm... nhưng cũng có khoản bắt buộc phải nộp như: 5% BHXH, 1% BHYT... Trên đây là toàn bộ khung cảnh của mô hình, cơ cấu tổ chức bộ máy quản lý nhân sự, cách tính lương của Chi cục Dự trữ Sóc Sơn II. Cách thức tổ chức và lưu trữ thông tin hiện tại Qua nghiên cứu hệ thống lưu trữ hồ sơ cán bộ của cơ quan, thấy rằng vào thời điểm này, Chi cục Dự trữ đã bắt đầu triển khai đề án áp dụng công nghệ thông tin vào công tác quản lý nhân sự như mua sắm máy tính, cử cán bộ đi đào tạo tin học, nhưng hiện tại toàn bộ hồ sơ của mỗi CBCC thì vẫn được lưu trữ trong một túi riêng gọi là túi hồ sơ cá nhân và được sắp xếp theo một trật tự nhất định. 1. Thông tin được lưu trữ trong hồ sơ Hồ sơ của mỗi cán bộ được lưu trữ trong một túi riêng gọi là túi hồ sơ cá nhân, trong mỗi túi hồ sơ gồm có: Bản lý lịch cán bộ, QĐ nâng lương, QĐ khen thưởng, bản tự đánh giá phân loại hàng năm… 1.1. Những thông tin lưu trữ trong bản lý lịch cán bộ Trong tài liệu lưu trữ về hồ sơ cá nhân, các thông tin về bản thân của từng CBCC nó được phản ánh trong lý lịch cán bộ, gồm có những thông tin sau : Họ và tên khai sinh Tên thường gọi Ngày tháng năm sinh Giới tính Nơi sinh Quê quán Dân tộc Nghề nghiệp Trình độ học vấn Ngày tham gia c/m Ngày nhập ngũ Ngày xuất ngũ Đơn vị tuyển dụng Ngày vào Đảng Chức vụ hiện tại Bậc lương Tình hình sức khoẻ Lịch sử bản thân Khen thưởng Kỷ luật Quan hệ XH Người cam đoan Xác nhận (của thủ trưởng đơn vị hoặc chính quyền địa phương). Như vậy bản lý lịch cán bộ là bảng dữ liệu gốc phản ánh đầy đủ, chi tiết các thông tin về bản thân của từng cán bộ công chức, thông thường bản lý lịch gốc phải có trong hồ sơ từ khi người đó được tuyển dụng và được lưu trữ, khi chuyển công tác thì toàn bộ hồ sơ đó sẽ chuyển đến đơn vị mới. Ngoài ra trong từng thời kỳ Cục Dự trữ Quốc Gia có chủ trương lớn về vấn đề nhân sự thì mọi cán bộ công chức trong ngành phải kê khai lý lịch bản thân theo một số mẫu nhất định. 1.2. Các bảng biểu thống kê báo cáo Khi có yêu cầu của lãnh đạo, cơ quan quản lý nhân sự cấp trên. Phòng tổ chức cán bộ phải làm báo cáo thống kê về nhân sự như : Tình hình quân số cơ quan đến một thời điểm nào đó, danh sách CB từng phòng ban, danh sách cán bộ được bổ nhiệm, đề bạt …nhìn chung các bảng biểu báo cáo thống kê đã được qui định từ trước, tuy nhiên khi làm báo cáo các cán bộ làm công tác tổ chức phải tìm kiếm thông tin từ các tập hồ sơ cá nhân theo phương pháp thủ công. Vì vậy nên mất nhiều thời gian. Xin nêu ra một số biểu mẫu sau: * Danh sách CBCC năm 2003 Danh sách CBCC được thể hiện được con số của đơn vị mình, những thông tin cụ thể về cá nhân của từng CB : Số lượng cán bộ Độ tuổi Giới tính Quê quán Nơi thường trú Trình độ Chức vụ - Chức danh - Ghi chú Mẫu biểu : phải đảm bảo thông tin - Số công văn Trích yếu nội dung (Danh sách cán bộ) Chủ thể (Ký hiệu đơn vị) Thời điểm lập biểu Đơn vị lập biểu (Phòng TCCB) Ghi chú : Vì nguyên tắc của cơ quan nên số liệu trong biểu là không có thực. Cục Dự trữ quốc gia Cộng hoà Xã hội chủ nghĩa việt nam Chi cục dự trữ Sóc Sơn Độc Lập - Tự do - Hạnh phúc Số : 135/TCCB danh sách cán bộ công chức năm 2004 STT Họ và tên Năm sinh Quê quán Nơi thường trú Giới tính Chức vụ Trình độ Chức danh 1 Lê Văn Thinh 1944 Bắc Quang Hà Nội Nam Giámđốc ĐH L. Đạo 2 Nguyễn ĐìnhThu 1960 Tuyên Quang Hà Nội Nam P.G đốc ĐH L.Đạo 3 Trần Đức Tiến 1962 Tuyên Quang Hà Nội Nam P.G đốc ĐH L.Đạo 4 Lê Sĩ Thành 1960 Vi Xuyen Hà Nội Nam TP ĐH C.viên 5 Vũ Tuấn Anh 1972 Quản Bạ Hà Nội Nam TP ĐH C.viên 6 Trịnh Xuân Bách 1970 Đồng văn Hà Nội Nam TP ĐH C.viên 7 Lê Văn Phú 1969 Bắc Mê Hà Nội Nam TP ĐH C.viên 8 Phạm Trần Vũ 1970 Xi Mần Hà Nội Nam TP ĐH C.viên 9 Nguyễn Hữu Lợi 1968 Hung An Hà Nội Nam CB CĐ C.sự 10 Do Thu Trang 1961 Yên Minh Hà Nội Nam CB CĐ C.sự 11 Lê Thi Mai 1977 Su Phi Hà Nội Nữ CB ĐH C.viên 12 Mai Đình Huy 1978 Băc Quang Hà Nội Nam CB CĐ C.sự 13 Trần Tú Nam 1974 HảI Dương Hà Nội Nam CB ĐH C.viên 14 Lê Văn Định 1978 Phú Thọ Hà Nội Nam CB CĐ C.sự 15 Nguyễn Thị Cúc 1976 Vi Xuyên Hà Nội Nữ CB ĐH C.viên 16 Lê Thị Lan 1979 Mèo Vạc Hà Nội Nữ CB CĐ C.sự 17 Lê Đức Thọ 1976 Bắc quang Hà Nội Nam CB ĐH C.viên Ngày …. tháng…. năm 2003 Thủ trưởng đơn vị TP tổ chức Lập biểu * Danh sách đề nghị xét nâng lương Xét nâng lương là việc làm thường xuyên hàng năm, nhằm đảm bảo chế độ chính sách cho cán bộ về chức vụ và hệ số lương được hưởng theo tiêu chuẩn xét duyệt, ngoài hoàn thành nhiệm vụ còn phải căn cứ vào trình độ đào tạo, chức vụ và hệ số lương đang được hưởng theo quy định. Vì vậy trong biểu mẫu này phải có các cột sau: - Số lượng cán bộ được xét duyệt - Họ và tên - Năm sinh - Trình độ đào tạo - Chức vụ - Hệ số lương đang hưởng - Khen thưởng, kỷ luật - Đề nghị xét nâng lương năm 2003 * Mã số của biểu mẫu phải thể hiện được các thông tin sau: Số công văn Thời gian thực hiện Đơn vị lập biểu * Vì nguyên tắc của cơ quan nên con số trong biểu là không thực tế Cục Dự Trữ Quốc Gia Cộng hoà Xã hội chủ nghĩa vVệt Nam Chi Cục Dự Trữ Sóc Sơn Độc Lập - Tự do - Hạnh phúc Số : 136/TCCB danh sách cán bộ đề nghị nâng lương năm 2004 STT Họ và tên Năm sinh Đơn vị Trình độ Hệ số lương hiện tại Khen thưởng Kỷ luật Đề nghị xét 1 Lê Van Thinh Nam P. kế hoạch ĐH 2,34 Không 3,12 2 Vũ Tuấn Anh Nam P. kế hoạch ĐH 3,6 Không 3,91 3 Trịnh Xuân Bách Nam P. kế hoạch ĐH 1,86 Không 2,31 4 Lê Văn Phú Nam P. tổ chức ĐH 2,1 Không 2,34 5 Phạm Trần Vũ Nam P. tổ chức ĐH 1,86 Không 2,31 6 Nguyễn Hữu Lợi Nam P. tổ chức CĐ 1,56 Không 1,78 7 Đàm Tá Thoa Nam P. xây dựng CĐ 1,78 Không 1,86 8 Lê Thi Mai Nữ P. kỹ thuật CĐ 1,78 Không 1,86 Ngày .. tháng .. năm 2004 Thủ trưởng đơn vị TP tổ chức Lập biểu Cục Dự Trữ Quốc Gia Cộng hoà Xã hội chủ nghĩa vVệt Nam Chi Cục Dự Trữ Sóc Sơn Độc Lập - Tự do - Hạnh phúc Số : 136/TCCB danh sách Đảng viên năm 2004 STT Họ và tên Năm sinh Đơn vị Trình độ Ngày vào Đảng Chức vụ 1 Lê Van Thinh Nam P. kế hoạch ĐH 26/3/1986 Bí Thư 2 Vũ Tuấn Anh Nam P. kế hoạch ĐH 19/5/1987 Phó Bí Thư 3 Trịnh Xuân Bách Nam P. kế hoạch ĐH 26/3/1990 Đảng Viên 4 Lê Văn Phú Nam P. tổ chức ĐH 19/5/1990 Đảng Viên 5 Phạm Trần Vũ Nam P. tổ chức ĐH 30/4/1996 Đảng Viên 6 Nguyễn Hữu Lợi Nam P. tổ chức CĐ 19/5/1998 Đảng Viên 7 Đàm Tá Thoa Nam P. xây dựng CĐ 26/3/2000 Đảng Viên 8 Lê Thi Mai Nữ P. kỹ thuật CĐ 19/5/2003 Đảng Viên Ngày .. tháng .. năm 2004 Thủ trưởng đơn vị TP tổ chức Lập biểu Cục Dự Trữ Quốc Gia Cộng hoà Xã hội chủ nghĩa Việt Nam Chi Cục Dự Trữ Sóc Sơn Độc Lập - Tự do - Hạnh phúc Số : 136/TCCB danh sách Theo trình độ nhân viên STT Họ và tên Năm sinh Đơn vị Trình độ Nơi đào tạo Chức vụ 1 Lê Van Thinh Nam P. kế hoạch ĐH Bách khoa HN Trưởng phòng 2 Vũ Tuấn Anh Nam P. kế hoạch ĐH Giao thông VT Phó phòng 3 Trịnh Xuân Bách Nam P. kế hoạch ĐH Xây dựng Nhân viên 4 Lê Văn Phú Nam P. tổ chức ĐH Xây dựng Nhân viên 5 Phạm Trần Vũ Nam P. tổ chức ĐH Xây dựng Nhân viên 6 Nguyễn Hữu Lợi Nam P. tổ chức CĐ Xây dựng số 2 Nhân viên 7 Đàm Tá Thoa Nam P. xây dựng CĐ Xây dựng số 2 Nhân viên 8 Lê Thi Mai Nữ P. kỹ thuật CĐ Xây dựng số 2 Nhân viên Ngày .. tháng .. năm 2004 Thủ trưởng đơn vị TP tổ chức Lập biểu 1.3. Đánh giá ưu, nhược điểm của hệ thống hiện tại Theo cách làm thủ công, việc sắp xếp hệ thống thông tin phục vụ công tác quản lý của Chi cục Dự trữ, mặc dù trong nhiều năm qua không ngừng đổi mới, có nhiều tiến bộ, đã đáp ứng được nhiệm vụ được giao. Nhưng cũng phải thừa nhận rằng có những nhược điểm sau: - Thời gian chi phí cho việc tìm kiếm rất lớn - Số lần thao tác trùng lặp quá nhiều - Chi phí thời gian cho việc truy xuất CSDL nhiều nên không đáp ứng được tính nhanh nhạy của thông tin. Tuy nhiên so với sự phát triển chung của xã hội, nhất là yêu cầu cập nhật thông tin, bổ sung, lưu trữ, khai thác xử lý thông tin về nhân sự ngày càng cao, đòi hỏi nhanh chóng, kịp thời, chính xác đầy đủ hơn, cụ thể hơn, chi tiết hơn thì hệ thống hiện tại còn chưa đáp ứng được. Do cách làm thủ công hiện nay, hồ sơ cán bộ phải lưu trên giấy tờ, sổ sách (bằng viết tay hoặc đánh máy) khi cần bổ sung người quản lý phải sửa, đổi, thêm, bớt, gạch xoá dẫn đến thông tin chưa chính xác, dễ nhầm lẫn. Đối với một khối lượng hồ sơ lớn các công việc lưu trữ bảo quản, bổ sung cập nhật, tra cứu, khai thác thông tin đòi hỏi phải tiêu tốn nhiều về vật chất và con người, như hệ thống kho tàng lưu giữ, bảo quản, số lượng cán bộ làm công tác quản lý nhân sự, thời gian công sức làm việc nhiều khi vẫn không bảo đảm được yêu cầu. 1.4. Đề xuất giải pháp Từ những nhược điểm trên, chúng ta thấy cần thiết phải xây dựng một hệ thống quản lý nhân sự mới phù hợp với sự phát triển của cơ quan và các yêu cầu ngày càng cao về quản lý nhân sự, phục vụ tốt cho công tác lãnh đạo và xây dựng cơ quan trong thời kỳ mới, mà trước hết là phải ứng dụng công nghệ thông tin vào hệ thống quản lý nhân sự, phải trang bị cho các cán bộ quản lý nhân sự những kiến thức về tin học và khả năng sử dụng thành thạo máy vi tính, thao tác tốt thiết bị kèm theo và thực hiện tốt trên phần mềm quản lý thông dụng, soạn thảo văn bản, bảng tính, in ấn giải quyết các yêu cầu của lãnh đạo. Làm được như vậy, chúng ta sẽ tiết kiệm được sức người, sức của, giảm đáng kể số lượng cán bộ làm công tác quản lý nhân sự, giảm được các công việc thủ công vất cả mất nhiều thời gian mà vẫn đảm bảo yêu cầu thông tin đầy đủ, chính xác kịp thời, chất lượng và hiệu quả tốt hơn. Nội dung đề tài gồm: Chương I : Khảo sát hiện trạng và lập dự án Chương II: Tính ứng dụng của tin học quản lý Chương III: Thiết kế tổng thể chương trình và tổ chức CSDL Chương IV: Hướng dẫn cài đặt chương trình Chương II tính ứng dụng của tin học quản lý I. Một số khái niệm cơ bản về quản lý và ứng dụng tin học trong công tác quản lý 1. Một số khái niệm về quản lý Quản lý là một thuật ngữ mang ý nghĩa tổng quát nó thường được dùng không chỉ việc điều hành hoạt động trong các tổ chức kinh tế tổ chức xã hội mà còn góp phần vào việc quản lý hành chính, quản lý điểm học sinh... Trong công tác quản lý người ta phân chia ra làm 2 loại hình lao động: - Lao động mang tính máy móc lặp đi lặp lại nhiều lần như việc thống kê sách, bảng biểu. - Lao động mang tính chất sáng tạo như việc đề ra các phương pháp mới, các công việc kiểm tra, hướng dẫn. Trong đó thời gian tiêu phí cho loại hình thứ nhất chiếm 3/4, chỉ còn lại 1/4 cho loại hình lao động thứ 2. 2. ứng dụng tin học trong công tác quản lý Ngày nay, cùng với sự phát triển của tin học phần cứng cũng như phần mềm, việc ứng dụng của máy tính trong mọi lĩnh vực trở nên phổ biến. ở nước ta tin học đã và đang khẳng định vai trò và vị trí của mình trong các lĩnh vực kinh tế xã hội. Việc áp dụng tin học vào công việc quản lý trước hết giải phóng cho các nhà lãnh đạo khỏi các công việc máy móc, tạo điều kiện, thời gian cho họ dốc sức vào quản lý chặt chẽ, khoa học, làm tăng tốc độ về xử lý thông tin đạt hiệu quả cao. Tuy nhiên từng nhiệm vụ cụ thể mà ta có thể tin học hóa từng phần hoặc tin học hóa toàn bộ. a. Tin học hóa toàn bộ Nội dung chủ yếu của phương pháp này là tin học hóa đồng thời các chức năng quản lý và thiết lập một cấu trúc hoàn toàn tự động thay thế cho các cấu trúc tổ chức của cơ quan quản lý. ưu điểm của chức năng này là các chức năng quản lý tin học một cách triệt để nhất, hệ thống bảo đảm tính chất nhất quán và tránh trùng lặp thừa thông tin. Nhưng nhược điểm của phương pháp này là thực hiện rất lâu, khó khăn và chi phí đầu tư ban đầu lớn. b. Tin học hóa từng phần Nội dung chủ yếu của phương pháp này là tin học hóa từng phần chức năng hoặc theo nhu cầu cụ thể của từng bộ phận. Việc thiết kế các phân hệ quản lý của hệ thống được thực hiện một cách độc lập và tách biệt với các giải pháp được chọn cho các phân hệ khác nhau. ưu điểm của phương pháp này là tính đơn giản khi thực hiện vì các ứng dụng được phát triển tương đối độc lập với nhau, vốn đầu tư ban đầu không lớn. Nhược điểm của phương pháp này là không bảo đảm tính nhất quán cao trong toàn bộ hệ thống và không tránh khỏi sự dư thừa và trùng lặp thông tin. Cả hai phương pháp trên còn tùy thuộc vào từng cơ sở, cơ quan cụ thể. Cho dù áp dụng theo phương pháp nào đi chăng nữa thì việc tin học hóa phải được xây dựng theo một kế hoạch chặt chẽ và thống nhất. 3. Những đặc điểm của hệ thống quản lý a. Phân cấp quản lý Hệ thống quản lý trước hết là một hệ thống được tổ chức thống nhất từ trên xuống dưới và có chức năng tổng hợp thông tin giúp nhà lãnh đạo quản lý thống nhất trong toàn bộ hệ thống. Hệ thống được phân thành nhiều cấp thông tin phải được tổng hợp từ dưới lên trên và truyền từ trên xuống dưới. b. Luồng thông tin vào ở mỗi công việc khối lượng thông tin cần xử lý thường nhật là rất lớn, đa dạng cả về chủng loại và cách xử lý hay tính toán. Có thể phân thông tin ra làm 3 loại: - Loại thông tin dùng cho tra cứu. - Loại thông tin luân chuyển chi tiết. - Loại thông tin luân chuyển tổng hợp. Cụ thể là: + Các thông tin dùng cho tra cứu: Là thông tin được dùng chung cho hệ thống và ít thay đổi, các loại thông tin này được đưa vào một lần và chỉ dùng để tra cứu. + Các loại thông tin luân chuyển chi tiết: Là loại thông tin chi tiết về các hoạt động thường nhật hàng ngày của cơ quan quản lý, khối lượng loại thông tin này rất lớn. + Các thông tin luân chuyển tổng hợp : Là loại thông tin tổng hợp về hoạt động của từng bộ phận, thông tin này cô đọng và mang nhiều thông tin. c. Luồng thông tin ra: Thông tin đầu ra được tổng hợp từ các thông tin đầu vào và phụ thuộc vào nhu cầu quản lý của từng trường hợp cụ thể. Các hình thức đầu ra chủ yếu của các bài toán quản lý là sổ sách báo cáo và các loại thông tin báo cáo. 4. Các phương pháp xây dựng hệ thống thông tin quản lý Việc xây dựng hệ thống thông tin quản lý có thể làm theo phương pháp sau: - Phương pháp phân tích: Là phương pháp trước hết đòi hỏi phải xây dựng đảm bảo khoa học trong toàn hệ thống rồi sau mới xây dựng các chương trình làm việc. Ưu điểm của phương pháp này là tránh được vịêc thiết lập các mảng làm việc một cách thủ công. Nhược điểm của phương pháp này là hệ thống chỉ hoạt động khi được đưa vào đồng thời và toàn bộ. - Phương pháp tổng hợp: Là phương pháp phải xây dựng các mảng làm việc cho những bài toán riêng biệt. Ưu điểm của phương pháp này là cho phép chúng ta có thể đưa dần hệ thống và hoạt động theo từng giai đoạn. Như vậy nhanh chóng thu được kết quả. Nhược điểm của phương pháp này là khó tránh khỏi sự trùng lặp thông tin. - Kết hợp cả hai phương pháp: Với phương pháp này người ta kết hợp đồng thời việc xây dựng các mảng cơ bản và một số mảng làm việc cần thiết. Tuy nhiên cũng cần phải có tổ chức một cách chặt chẽ. 5. Các bộ phận hợp thành của hệ thống thông tin a. Đặc điểm của hệ thống thông tin quản lý HTTT là hệ thống được tổ chức thống nhất từ trên xuống dưới có chức năng tổng hợp các thông tin giúp các nhà quản lý tốt cơ sở của mình và trợ giúp ra quyết định hoạt động kinh doanh hay hoạt động giảng dạy, học tập của học sinh. Một hệ thống quản lý được phân thành nhiều cấp từ trên xuống và chuyển từ dưới lên. b. Các thành phần của HTTT Nếu không kể con người và phương tiện thì thực chất còn lại 2 bộ phận: * Các dữ liệu: Các thông tin có cấu trúc, với mỗi cấp quản lý lượng thông tin xử lý có thể rất lớn, đa dạng và biến động cả về chủng loại, về cách thức xử lý. Thông tin cấu trúc bao gồm luồng thông tin vào và luồng thông tin ra. - Luồng thông tin vào: Có thể phân loại thông tin thành 3 loại sau: + Thông tin dùng cho tra cứu: Các thông tin dùng cho tra cứu là thông tin dùng chung cho hệ thống và ít bị thay đổi. Các thông tin này thường được cập nhật một lần và chỉ dùng cho tra cứu trong việc xử lý thông tin sau này. + Thông tin luân chuyển chi tiết: Các thông tin luân chuyển chi tiết về hoạt động của một đơn vị, khối lượng thông tin rất lớn, cần phải xử lý kịp thời. + Thông tin luân chuyển tổng hợp: Các thông tin luân chuyển tổng hợp là loại thông tin được tổng hợp và hoạt động của các cấp thấp hơn, thông tin này thường cô đọng, xử lý theo kỳ, theo lô. - Luồng thông tin ra: + Thông tin đầu ra được tổng hợp từ các thông tin đầu vào và phụ thuộc vào nhu cầu quản lý trong từng trường hợp cụ thể, từng đơn vị cụ thể. Thông tin ra là việc tra cứu nhanh về một đối tượng cần quan tâm đồng thời phải bảo đảm chính xác kịp thời. + Các thông tin đầu ra quan trọng nhất được tổng hợp trong quá trình xử lý là các báo cáo tổng hợp, thống kê, thông báo. Các mẫu biểu báo cáo thống kê phải phản ánh cụ thể trực tiếp, sát với một đơn vị. + Ngoài những yêu cầu được cập nhật thông tin kịp thời cho hệ thống, luồng thông tin ra phải được thiết kế mềm dẻo. Đây là chức năng thể hiện tính mở của hệ thống, tính giao diện của hệ thống thông tin đầu ra gắn với chu kỳ thời gian tùy ý theo yêu cầu của bài toán cụ thể, từ đó ta có thể lọc bớt thông tin thừa trong quá trình xử lý. II. Giới thiệu về microsoft access 1. Microsoft Access là gì? Microsoft Access là một phần mềm quản trị cơ sở dữ liệu theo kiểu quan hệ, nó cho phép sử dụng phối hợp các công cụ được xem là “chủ bài” của Microsoft Windows trong các ứng dụng. Microsoft Access khá rõ ràng và dễ sử dụng trong việc xử lý một cách hệ thống và có hiệu quả các cơ sở dữ liệu quan hệ. ích lợi của một số cơ sở dữ liệu quan hệ chính là ở chỗ chúng ta không cần lưu trữ các cơ sở dữ liệu có liên quan tới nhau nhiều lần trong các bảng dữ liệukhác nhau. Những thông tin cần thiết sẽ được kiến tạo nhờ tính chất liên kết giữa các bảng dữ liệu có trước đó hoặc hoàn toàn mới mà ta thêm vào đó cơ sở dữ liệu sau này. Microsoft Access chạy trên nền Windows nên mọi thế mạnh của Windows cũng được thể hiện trong Access. Ta cắt, dánh dữ liệu từ bất cứ một ứng dụng nào trong môi trường Windows cho Access và ngược lại. Ta cũng có thể liên kết các đối tượng OLE trong Excel, Paintbush và Wor for Windows vào trong môi trường Access. Để cài đặt phần mềm quản trị cơ sở dư liệu Microsoft Access 7.0 thì cấu hình của máy phải đáp ứng các điều kiện sau: - Đã cài đặt Windows 98 hay phiên bản mới hơn. - Có bộ xi xử lý 8486 lên - Bộ nhớ RAM tối thiểu là 32MB nhưng tốt nhất là từ 64 MB trở lên. - Máy phải có chuột (Mouse).bàn phím(keyboard) Một cơ sở dữ liệu của Microsofr Access được tạo lập bởi các thành phần: - Các bảng dữ liệu (Table) - Các bảng truy vấn (Queries). - Các biểu mẫu (Form). - Các tập lệnh (Macro). - Các đơn thể chương trình viết bằng ngôn ngữ Visua Basic. Tên File cơ sở dữ liệu của Microsoft Access có phần mặc định là.MDB Microsoft Access là một hệ quản trị cơ sở dữ liệu quan hệ có thể giúp ta truy nhập tới tất cả các dạng dữ liệu. Nó có thể làm việc với nhiều bảng tại cùng một thời điểm để làm bớt sức rối của dữ liệu và làm cho công việc thực hiện dễ dàng hơn. Ta có thể liên kết một bảng dữ liệu trong Access với một bảng khác trong Paradox hoặc một bảng trong Access với một bảng trong Dbase, ta có thể lấy kết quả của việc liên kết đó và kết nối các dữ liệu này với những bảng làm việc trong Excel một cách nhanh chóng, dễ dàng. Access là công cụ cho người sử dụng để quản lý cơ sở dữ liệu. Access có một bộ tạo bảng, một bộ thiết kế mẫu, một bộ quản lý và một bộ thiết kế các báo cáo. Đồng thời Access cũng là một môi trường phát triển các ứng dụng. Bằng cách sử dụng các tập lệnh tự động thực hiện các công việc, chúng ta có thể tạo các ứng dụng hướng tới người sử dụng hiệu quả tương tự là được tạo bởi các ngôn ngữ lập trình, hoàn thiện với các nút, menu và hộp thoại. Bằng cách lập trình trong Access, ta có thể tạo được các ứng dụng mạnh như chính bản thân Access. Thực tế rất nhiều công cụ trong Access được viết bằng Access Basic. 2. Những công cụ của Access * Access là một hệ quản lý cơ sở dữ liệu quan hệ thực sự Access cung cấp hệ thống quản lý cơ sở dữ liệu thực sự, hoàn thiện với những định nghĩa khóa chính, khóa ngoại lai, các loại luật quan hệ, các mức kiểm tra sự toàn vẹn của dữ liệu cũng như định dạng và những định nghĩa mặc định cho mỗi trường trong một bảng. Access cung cấp tất cả các dữ liệu cần thiết cho trường, bao gồm kiểu văn bản, kiểu số, kiểu tiền tệ, kiểu ngày/giờ, kiểu ký ức, kiểu có/không và các đối tượng OLE. Access cũng hỗ trợ cho các giá trị rộng khi các giá trị này bị bỏ quan. Việc xử lý quan hệ trong Access đáp ứng được những đòi hỏi với kiến trúc mềm dẻo của nó. Nó có thể sử dụng như một hệ quản lý cơ sở dữ liệu độc lập, hoặc theo mô hình Clien/Server. Thông qua Open Database Connectivity (ODBS) ta có thể kết nối với nhiều dạng dữ liệu bên ngoài, thậm chí với cả những cơ sở dữ liệu trên máy tính lớn. Với Access, ta có thể phân quyền cho người sử dụng và cho các nhóm trong việc xem và thay đổi rất nhiều các kiểu đối tượng dữ liệu. * Sử dụng các WIZARD Với WIZARD thì các công việc tốn hàng giờ đồng hồ có thể giảm xuống chỉ còn ít phút. WIZARD hỏi một vài câu hỏi, sau đó sẽ tự động xây dựng các đối tượng. Dùng WIZARD, ta có thể thiết kế rất nhiều các loại biểu mẫu, báo cáo, đồ họa, các kiểm tra và các thuộc tính. * Xuất nhập và kết nối các tập tin ngoài Access cho phép chúng ta xuất - nhập nhiều dạng thường gặp, bao gồm: Dbase, Paradox, Lotus 1-2-3, Excel, SQL server, Oracle, và nhiều dạng ASCII khác. Trong khi việc nhập là tạo ra một bảng trong Access thì việc xuất một bảng trong Access sẽ tạo ra một tập tin dạng như chúng ta đã xuất ra. * Các biểu mẫu và các báo cáo được thiết kế theo kiểu WYSIWYG (What you see is what you get) Khi thiết kế các Form và các báo cáo như thế nào thì lúc hiện ra sẽ hoàn toàn như vậy. Chúng ta có thể nhìn các biểu mẫu và báo cáo theo chế độ xem trước, có thể nhìn các báo cáo với các dữ liệu ví dụ mà không mất thời gian chờ đợi dữ liệu của một tập tin lớn khi ta ở chế độ thiết kế. Đặc biệt là bộ tạo báo cáo rất mạnh, có thể tạo ra được một loạt các dạng báo cáo rất chính xác và mang tính thẩm mỹ cao. * Các truy vấn liên quan đến nhiều bảng Đây là một trong những điểm mạnh của Access. Với một cửa sổ đồ họa có thể dễ dàng tạo ra liên kết các bảng với nhau, cho dù đó là bảng của Access hay của một hệ cơ sở dữ liệu nào khác. Ngoài ra có thể chọn những trường hợp cụ thể của bảng, định nghĩa một thứ tự sắp xếp, tạo các biểu thức tính toán, đưa ra các điều kiện để chọn các bảng ghi phù hợp. Kết quả của tra vấn có thể được xem thông qua Datasheet, Form hay báo cáo. Hơn nữa, các tra vấn có thể tạo được các bảng mới từ dữ liệu nhận được, có thể tính tổng, có thể cập nhật dữ liệu trong bảng, xóa các bảng ghi, chèn thêm dữ liệu từ bảng này sang bảng khác. * Khả năng DDE và OLE Với khả năng DDE và OLE, có thể chèn một đối tượng vào Form và báo cáo của Access. Những đối tượng này có thể là âm thanh, hình ảnh đồ hoạ, thậm chí cả Video. Có thể nhúng các đối tượng của OLE như ảnh Bitmap, các văn bản được tạo ra từ Word hay Word Perfeet, hoặc nối với một số ô trong Excel hay trong Lotus 1-2-3. Bằng việc nối các ứng dụng này vào các bản ghi của Access có thể tạo ra được một cơ sở dữ liệu và chia sẻ thông tin với giữa các ứng dụng của Windows. * Macro Đối với những người không phải là lập trình viên hay đơn giản là không muốn lập trình, Access cung cấp một công cụ mạnh đó là Macro (lập trình mà không phải là lập trình). Với Macro rất nhiều nhiệm vụ thường gặp có thể thực hiện được mà không cần sự can thiệp của con người. Gần 60 Macro sẽ giúp xử lý dữ liệu Menu và hộp thoại, mở Form và các báo, thực hiện tự động các công việc mà người sử dụng nghĩ ra. Macro có thể thực hiện được 90% việc xử lý. * Access basic cho phép lập trình cơ sở dữ liệu (Module) Access là một môi trường nghiêm chỉnh với một ngôn ngữ lập trình đầy đủ. Access Basic cho phép lập trình theo kiểu hướng sự kiện. Acces Basic Code là một ngôn ngữ lập trình có cấu trúc mạnh và có thể mở rộng được. Với giao diện kiểu IDE cho phép mở nhiều cửa sổ cùng một lúc để soạn Code và tìm lỗi, tự động kiểm tra cú pháp câu lệnh, đặt các điểm dừng và chạy từng bước. Access Basic cũng có sử dụng các thủ tục trong các thư viện liên kết động hợp môi trường Windows. Như vậy Access là một công cụ mạnh trong việc quản lý cơ sở dữ liệu, phù hợp với nhiều người, từ người dùng đến các lập trình viên. 3. Cốt lõi của việc quản lý cơ sở dữ liệu Access Cốt lõi của việc quản lý cơ sở dữ liệu Access là Microsoft Jet Database Engine (gọi tắt là Jet Engine) đó là một cơ chế xử lý dữ liệu. Jet Engine cho phép làm việc với nhiều dạng cơ sở dữ liệu khác nhau và cung cấp giao diện lập trình hướng đối tượng để làm việc với cơ sở dữ liệu. Jet Engine là cầu nối giữa ứng dụng và các tập tin cơ sở dữ liệu vật lý, nó bao gồm một bộ các tập tin thư viện liên kết động, có nhiệm vụ chuyển các yêu cầu xử lý cơ sở dữ liệu của ứng dụng phát triển bằng Access thành các lệnh vật lý trên cơ sở dữ liệu, truy vấn, cập nhật dữ liệu đồng thời quản lý các chỉ mục, khóa dữ liệu (cho môi trường đa người dùng) và tính toàn vẹn tham chiếu. Mặc định cơ sở dữ liệu chuẩn của Jet Engine được lưu theo dạng thức MDB mà ta gọi chung là cơ sở dữ liệu Access (Access Database). Đây là điều dễ hiểu vì Jet Engine là Database Engine của hệ quản lý cơ sở dữ liệu Access. Jet Engine cũng có thể làm việc với các dạng thức dữ liệu như Lotus, Excel, các tập tin dạng text thông quan thư viện liên kết động cài riêng. Cơ sở dữ liệu Access không phải là cơ sở dữ liệu Server. Do đó, trong mô hình Client/Server, Access được dùng để để phát triển phần Client của ứng dụng Client/Server và phải dùng chuẩn OCBC để kết nối với hệ quản lý cơ sở dữ liệu Client/Server trên Server. Thông thường Access truy nhập dữ liệu trên Server thông qua ODBC nên khá chậm. Nguyên nhân do chương trình không gọi trực tiếp các OCBC API mà thông qua Jet Engine. Jet Engine nhằm tới các cơ sở dữ liệu cục bộ như Access, ISAM Database... do đó nó tỏ ra hiệu quả khi làm với các cơ sở dữ liệu này. Tuy khi thao tác với cơ sở dữ liệu Server thông qua ODBC Jet Engine phải chuyển đổi các chức năng được thiết kế cho cơ sở dữ liệu cục bộ thành lệnh ODBC API. Làm việc với cơ sở dữ liệu Server thông qua Jet Engine tuy chậm nhưng có lợi điểm là người sử dụng cảm thấy mọi việc dường như đơn giản, các bảng trong cơ sở dữ liệu Server. Như vậy nguồn dữ liệu vật lý nằm trong cơ sở dữ liệu Server, cơ sở dữ liệu Access chỉ lưu các bảng liên kết logic nhưng chúng hoạt động như các bảng bình thường khác của cơ sở dữ liệu Access. Mặc dù khả năng hỗ trợ cho môi trường Client/Server chưa cao Access là một hệ quản trị cơ sở dữ liệu quan hệ rất mạnh. Với thế mạnh trong công nghệ phần mềm nói chung và công nghệ mạng nói riêng, trong tương lai chắc chắm các nhà phát triển của hãng Microsoft sẽ khắc phục được nhược điểm này. Vì vậy ta có thể khẳng định rằng Access là môi trường tốt cho việc xây dựng, phát triển các ứng dụng phần mềm cơ sở dữ liệu không những hiện tại mà cả trong tương lai. III.Ngôn ngữ Visual Basic 6.0 1. Microsoft Visual Basic và các phiên bản Microsoft Visual Basic là một ngôn ngữ lập trình được hãng Microsoft phát triển .Visual Basic gắn liền với khái niệm lập trình trực quan, nghĩa là khi thiết kế chương trình bạn nhìn ngay thấy ngay kết quả qua từng thao tác và giao diện khi chương trình thực hiện. Đây là thuận lợi lớn so với ngôn ngữ lập trình khác, Visual Basic cho phép bạn chỉnh sửa đơn giản, nhanh chóng màu sắc, kích thước, hình dáng của các đối tượng có mặt trong ứng dụng. Về mặt công nghệ lập trình cũng như tổ chức môi trường làm việc, phiên bản 5.0 và 6.0 có nhiều ưu điểm hơn. Mặt khác, phiên bản 5.0 32 bit và 6.0 được phép xây dựng các ứng dụng 32 bit với môi trường làm việc là Microsoft Windows 95 Window 2000. Cụ thể: - Version 5.0: Phiên bản 32 bit, phiên bản tương thích hoàn toàn trên môi trường Windows. Hệ thống thư viện sử dụng các DLL ( Dynamic Link Library ) và các thư viện OLE theo công nghệ OCX. Phiên bản 32 tỏ ra thực sự có ưu điểm trong môi trường Windows 95 & 97 nếu cấu hình máy tính của người sử dụng được các nhu cầu sử dụng cao. - Version 6.0: Là phiên bản mới hiện nay chạy trên môi trường Windows 9.X. Hệ thống sử dụng thư viện DLL và các thư viện OLE theo công nghệ OCX, nhu cầu đòi hỏi cấu hình của máy tính phải đủ mạnh (máy tính từ 586 trở lên ). 2. Tổ chức của Mirosoft Visual Basis - Project: Là sản phẩm lập trình trong môi trường Microsoft được tổ chức thành một Project bao gồm: - MDI form: Một Project có thể có một màn hình làm theo chế độ Multi Document Interfaccce. Form: Các màn hình làm việc của Project. Form: Các màn hình làm việc của Project. - Module: Được sử dụng để khai báo các Sub, Function, Type, Constant tổng quát trong Proect. Class Module: khai báo đối tượng trong Project. Controls: Các đối tượng được sử dụng trong form Prọject là các thư viện kiểu VBX hoặc OCX. Mỗi đối tượng được đặc trưng Properties và các Events. Các đối tượng của Microsoft Visual Basic có thể phân chia thành các nhóm sau: Các control chuẩn của hệ điều hành Windows. - Các đối tượng do Microsoft cung cấp ( Data control, Rich Text Control...). Các đối tượng do hãng phần mềm thứ ba hỗ trợ. 3. Khái quát lập trình trên Mirosoft Visual Basis. Xây dựng Project trên cơ sở phân tích hệ thống bài toán. Thiết kế các đối tượng. - Điều khiển tính chất các đối tượng và viết mã lệnh xử lí trên các sự kiện và các đối tượng. 4. Lập trình trên Mirosoft Visual Basis Mirosoft Visual Basis hỗ trợ sử dụng Query trong chương trình của mình. Do vậy việc xử lí dữ liệu có nhiều thuận lợi, đặc biệt CSDL của Access. Trong khi viết chương trình có một số vấn đề quan trọng cần chú ý đó là lỗi và xử lí lỗi. Công cụ gỡ rối: Khi chạy thử chương trình có thể sử dụng công cụ gỡ rối khá mạnh của Mirosoft Visual Basis ( Debug ). Công cụ này cho phép hiệu chỉnh phần câu lệnh ngay trong khi thực hiện chương tình đối với các lôĩ không quan trọng. Để thiết kế cơ sở dữ liệu có thể sử dụng một trong các công cụ sau: Sử dụng phiên bản Micosofft Access tương ứng với phiên bản của cuả Mirosoft Visual Basis. Sử dụng chương trình DataManager được cung cấp kèm theo Visual Basic - Thiết kế báo cáo: Để thiết kế mẫu biểu báo cáo có thể sử dụng một trong các công cụ sau: - Sử dụng phiên bản DataEnviroment tương ứng trong Microsoft Visual Basic Sử dụng DataReport được cung cấp kèm theo. 5. Visual Basic và Microsoft Access. Visual Basic là ngôn ngữ lập trình hướng sự kiện có thể giải quyết được mọi bài toán. Visual Basic cũng giải quyết đựơc các bài toán quản lí mà các ngôn ngữ khác không có. Để phát huy hết khả năng Visual Basis hay Acces chúng ta phải hiểu thật rõ cơ chế xử lí dữ liệu ( Jet Engine ), Jet Engine cho phép làm việc với nhiều dang thức dữ liệu khác nhau và cung cấp giao diện lập trình hướng đối tượng để làm viêc với CSDL. JetEngin là thành phần cốt lõi của hệ quản trị CSDL Access do đó có thể trở thành một nhà lập trình chuyên nghiệp với Visual Basis thì điều đầu tiên là Jet Engine. Tuy nhiên mỗi ngôn ngữ lập trình có một hệ thống mạnh riêng của nó, ở lĩnh vực này nó không đáp ứng được, không thích hợp được nhưng ở lĩnh vực khác thì lại làm được. Ví dụ như Access có công cụ thiết kế báo biểu mạnh hơn nhiều so với Visual Basis, trong Visual Basis có bộ thiết kế báo biểu không do Microsoft phát triển mà lại do hãng Seagate, và được đưa vào như một OLE Custom Control độc lập. Vì vậy tuỳ theo yêu cầu của một bài toán cụ thể mà người lập trình chọn một ngôn ngữ thích hợp để giải quyết chúng. Visual Basis 6.0 cho phép người lập trình nhúng các đối tượng hay sử dụng các hàm thư viện DLL một các dễ dàng. Visual Basis 2.0 đã nhanh hơn, mạnh hơn và còn sử dụng hơn Visual Basis 1.0. Visual Basis 3.0 tăng thêm những cách thức đơn giản để điều khiển các cơ sở dữ liệu mạnh nhất sẵn có. Visual Basis 4.0 hỗ trợ sự phát triển 32 - bit và bắt đầu tiến trình chuyển Visual Basis thành một ngôn ngữ lập trình hướng đối tượng đầy đủ. Phiên bản 5.0 và 6.0 có nhiều tính năng mạnh hơn, đặc biệt là tốc độ gia tăng đáng kể (khoảng 20% nhanh hơn so với Visual Basis 4.0) và những đặc tính liên quan đến Web. Có 3 khía cạnh khẳng định Visual Basis 6.0 thực sự là một ngôn ngữ lập trình đa năng: Thời gian nhập biểu (Form) và điều khiển (control) nhanh hơn hẳn Visual Basis 4.0 tốc độ truy cập dữ liệu nhanh, công nghệ tối ưu của Mirosoft Visual C++ được dùng trong Visual Basis 5.0 và 6.0, phiên bản Visual Basis 6.0 có thêm một số tính năng ngôn ngữ mong muốn, tăng cường cho Internet và các tính năng cơ sở dữ liệu mạnh hơn. Ngoài ra Visual Basis 5.0 và 6.0 còn có công cụ trợ giúp thông minh, công cụ gỡ rối cao, các công cụ tạo lập ActiveX, cho phép truy cập nhiều nguồn dữ liệu khác nhau. Visual Basisệ chuyển ứng dụng sang môi trường Web được thực hiện dễ dàng và nhanh chóng hơn. IV. Mối liên hệ giữa Access và Visual Basis. Microsoft hiện đang làm chủ 2 hệ Quản trị CSDL ( Visual Foxpro và Access). Access do Microsoft phát triển từ đầu và trở thành một trong những sản phẩm thành công nhất. Visual Basis dùng kết nối database engine của Access để xử lí dữ liệu, Visual Basis không phải là một hệ quản trị dữ liệu mà là một ngôn ngữ vạn năng. Với Visual Basis ta có thể phát triển nhiều ứng dụng khác nhau. Nó bao gồm cả trình biên dịch, cho phép nhà phát triển sinh ra các tập tin .EXE chạy độc lập ( dĩ nhiễn cần có thêm các thư viện DLL, VBX, OCX ) còn Access hoàn toàn là một hệ quản trị CSDL. Access không có trình biên dịch như Visual Basis. Tuy nhiên Microsoft cung cấp thêm bộ Access Run time để chạy các ứng dụng mà không cần cài đặt Access. Cách thiết kế trực quan và cách lập trình hướng sự kiện được áp dụng trong Access và Visual Basis. Access tỏ ra mạnh hơn khi cho phép quản lí các sự kiện tinh tế hơn chẳng hạn như Text Box control, Access cho phép xử lí các cự kiện liên quan đến sự thay đổi dữ liệu: OnChange, BeforeUpdate, AfterUpdate trong khi Visual Basis 4.0 chỉ có thể kiểm tra sự kiện Change. Vì vậy Access cho phép phát triển các chương trình cập nhật dữ liệu thông minh hơn do kiểm soát được dữ liệu nhập một cách tinh tế. Ban đầu Access đơn giản chỉ là quản trị CSDL quan hệ ( Relation Database Management System ) dùng trong văn phòng ( nằm trong bộ Microsft Professional Word, Exccel, Power Point ) do đó Microsft đặc biệt chú trọng đến người sử dụng cuối (end user) hơn là nhà phát triển. Điều này làm cho công cụ hỗ trợ thiết kế ( giao diện thiết kế, các Wizard cho phép tự động hoá các quá trình thủ công trong quá trình thiết kế form, table, query) của Access tỏ ra rất mạnh, hơn hẳn Visual Basis. Chẳng hạn nhiều lập trình viên kinh nghiệm khi viết các câu lệnh SQL trong Visual Basis thường dùng kềm bộ thiết kế Query trong Access để sinh ra trong câu lệnh SQL một cách dễ dàng. Access Basic có những khác biệt nhất định so với Visual Basis. Chỉ đến phiên bản Access 7.0. Visual Basis về sau và Access mới dùng chung ngôn ngữ lập trình mà Microsft gọi là VBA - Visual Basis for Application. Ta thấy Access và Visual Basis khác nhau ở cách chế tạo ra các ứng dụng so với các công cụ thiết kế khác nhau nhưng thành phần xử lí CSDL thì có nhiều điểm tương đồng vì cùng sử dụng Jet Engine. Visual Basis cho phép biện dịch các ứng dụng thành tập tin EXE, trong khi Access ta phỉ phân phối luôn cả tài nguyên thiết kế. Khái ngườiệm CSDL trong Access bao gồm cả phần dữ liệu (các bảng) và phần ứng dụng ( query, form, table, report, macro, module ), trong khi đối với các hệ khác, CSDL chỉ bao gồm phần dữ liệu. Chiến lược bảo mật tài nguyên thiết kế phải được đặt lên hàn đầu khi chọn Access làm công cụ phát triển ứng dụng. Hệ thống giao diện hỗ trợ thiết kế ( đặc biệt trong Access ) cũng khá rắc rối khiến người chưa có kinh nghiệm hay lẫn lộn giữa các thức dành cho người dùng cuối và những thứ dành cho người lập trình, thứ chỉ dùng cho thiết kế và thứ có thể mang vào ứng dụng. Chương III Thiết kế Cơ sở dữ liệu I. Thông tin vào ra của hệ thống Qua tìm hiểu lưu trữ HSCB của phòng tổ chức trong cơ quan và căn cứ vào các thông tin lưu trữ trong sổ lý lịch HSCB ta tạm chia hai loại thông tin như sau: T.tin vào HT T.tin ra khỏi hệ thống HT Quản lý cán bộ 1.1. Thông tin vào hệ thống - Thông tin về hồ sơ cá nhân (Các CB mới được chuyển đến hay mới được biên chế), nó bao gồm tất cả các trường được lưu trữ trong sổ hồ sơ lý lịch cán bộ, khi nhập HS thì cán bộ quản lý phải nhập toàn bộ các thông tin liên quan đến cán bộ trong sổ lý lịch cán bộ vào máy tính. - Thông tin thay đổi về cá nhân hàng năm như: lên lương, lên chức vụ, Đảng, Đoàn...hàng năm CBTC yêu cầu những công chức trong cơ quan khai thêm phần bổ sung lý lịch cá nhân, đây là việc làm bắt buộc mà các CB về quản lý nhân sự phải cập nhật những thông tin thay đổi đó vào trong sổ lý lịch CB. - Thông tin về học tập, bằng cấp: hàng năm cơ quan thường cử CB đi học ở các trường ĐH và các lớp bồi dưỡng nghiệp vụ của ngành, số CB đã hoàn thành nhiệm vụ về tiếp tục công tác trong cơ quan. - Thông tin khen thưởng kỷ luật: đây là những thông tin có thể xảy ra hàng năm đối với CBCC vì vậy nó cũng được coi là thông tin vào của hệ thống. - Thông tin về cán bộ thuyên chuyển công tác: Cán bộ trong các đơn vị có thể chuyển qua các phòng ban khác nhưng vẫn nằm trong cơ quan, để xử lý việc thay đổi này bằng cách ta chỉ thay đổi mã phòng hay mã ban còn các thông tin khác vẫn giữ nguyên. - Thông tin về cán bộ bị chết đột xuất, hay thôi việc đây là phần thay đổi mà không dự đoán trước được, việc này thường ít xảy ra nhưng chúng ta cũng cần phải tính đến. 1.2. Thông tin ra khỏi hệ thống Trích yếu lý lịch Các bảng thống kê theo yêu cầu của lãnh đạo Tìm kiếm thông tin về một cá nhân nào đó Thống kê theo dõi nhân sự toàn cơ quan Thống kê về tình hình học vấn Danh sách đề bạt bổ nhiệm Thống kê chức vụ Thống kê trình độ chính trị Thống kê trình độ ngoại ngữ Thống kê phòng, ban Danh sách CB chuyển công tác Dach sách CB lên lương Danh sách CB nghỉ hưu Danh sách CB đi học Thống kê khen thưởng kỷ luật. II. Thiết kế cơ sở dữ liệu cho hệ thống quản lý cán bộ Sự thay đổi thông tin vào đều ảnh hưởng tới thông tin ra khỏi hệ thống. Mọi sự thay đổi tạo nên luồng dữ liệu mang tính tự nhiên chịu sự ảnh hưởng của hệ thống DL và như vậy để xây dựng được chương trình ta có thể chia thông tin thành những tệp chính gồm: các tập tin dùng để lưu giữ thông tin và tập tin thống kê định kỳ, tìm kiếm theo yêu cầu nào đó của người quản lý. Trong hệ thống quản lý thông tin vấn đề quan tâm là thông tin của hệ thống được lấy ở đâu, việc khai thác DL như thế nào? người sử dụng khai thác chương trình như: nhập, sửa, thêm bớt DL do vậy khi thiết kế File CSDL, chúng ta cần quan tâm đến DL nào cần lưu trữ, kiểu DL được lưu trữ, số bộ nhớ giành cho nó để đỡ lãng phí bộ nhớ. Việc tách thông tin làm cho CSDL gọn nhẹ hơn, đồng thời việc tổ chức lưu trữ thông tin khoa học hơn dẫn đến công việc tìm kiếm thông tin sẽ nhanh hơn, làm giảm bộ nhớ và tần số truy cập. Hơn nữa lưu trữ khoa học sẽ đỡ thông tin chồng chéo nhau, thông tin không được chuẩn hoá dẫn đến dư thừa thông tin và tìm kiếm sẽ khó khăn và thiếu chính xác... Từ những nhận định trên ta thiết kế các trường DL tương ứng với các kiểu DL như sau: - Mã nhân viên: Tên trường là MANV có kiểu DL là Text độ rộng là 10. - Tên phòng ban: Tên trường là: TENPHONG có kiểu DL là Text độ rộng là 20. - Chức vụ: Tên trường là CV có kiểu DL là Text độ rộng là 20. - Họ và tên: Tên trường là HOTEN có kiểu DL là Text, độ rộng là 30. - Ngày sinh: Tên trường là NSINH có kiểu DL là Date có độ rộng là 10. - Nơi sinh (nơi mình sinh ra): Tên trường là NOISINH có kiểu DL là Text có độ rộng là 30. - Quê quán (nơi sinh của bố mẹ đẻ): Để phù hợp dùng kiểu DL Text có độ rộng là 30, tên trường là QUEQUAN - Giới tính: Tên trường là GIOITINH, có kiểu DL là Text có độ rộng là 3. - Nơi thường trú: Tên trường là NOITT, có kiểu DL là Text có độ rộng là 30. - Địa chỉ liên lạc: Tên trường là DIACHI, có kiểu DL là Text độ rộng là 30. - Điện thoại: Tên trường là ĐT, có kiểu DL là Text độ rộng là 10. - Dân tộc: Tên trường là DANTOC, có kiểu DL là Text độ rộng 10 (kinh, tày nùng...). - Trình độ học vấn: Tên trường là TRINHDOHV, có kiểu DL là Text, độ rộng 30 (12/12, C/môn KT, Kỹ sư, giáo sư...). - Tôn giáo: Tên trường là TONGIAO, có kiểu DL là Text, độ rộng 15 (phật giáo, hồi giáo, cao đài, hoà hảo...). - Số chứng minh nhân dân: Tên trường SOCMND, có kiểu DL là Text, độ rộng 13. - Ngày cấp: Tên trường là NGAYCAP, có kiểu DL Date, độ rộng 10. - Nơi cấp: Tên trường là NOICAP, có kiểu DL là Text, độ rộng 30 (CA tỉnh hoặc TP trực thuộc TW....) - Thành phần gia đình: Bần nông, CB, tiểu tư sản...có kiểu DL Text độ rộng 20, tên trường là THANHPHANGĐ. - Trình độ chính trị: Sơ cấp, trung cao cấp...tên trường là TRINHDOCT, có kiểu DL Text độ rộng 15. - Trình độ ngoại ngữ: ĐH Anh ngữ, Pháp ngữ, Trung ngữ, có kiểu DL là Text, độ rộng là 43, tên trường là TRINHĐÔNN - Ngày vào ngành: Tên trường là NGAYVAON có kiểu DL là Date, động rộng 10. - Ngày vào ĐCSVN: Tên trường là NGAYVAOĐ kiểu DL là Date, có độ rộng là 40. - Chức vụ: Tên trường là CHUCVU, có kiểu DL Text, độ rộng là 20 (chức vụ đảng, đoàn thể, như: giám đốc, trưởng phòng, bí thư...). - Bậc lương (hệ số lương, mức bậc lương): Có kiểu DL NUMBER, độ rộng là 8, trường DL là BACLUONG - Khen thưởng (năm khen thưởng, nội dung khen thưởng, cấp quyết định): Tên trường là KHENTHUONG, kiểu DL là Text, độ rộng 30. - Kỷ luật (tháng, năm, hình thức kỷ luật, cấp quyết định): Tên trường KYLUAT, kiểu dữ liệu là Text, độ rộng. 1.TĐNN. MDB (trình độ ngoại ngữ). Do số ngoại ngữ hạn chế nên ta dùng độ rộng của trường này là 2 và nó có thể lưu trữ tối đa là 100 tên ngoại ngữ khác nhau, tên trường ngoại ngữ như: tiếng Anh, tiếng Pháp, tiếng Đức, tiếng Trung Quốc... và trường này có độ rộng là 15. STT Tên trường Kiểu DL Độ rộng Null Giải thích 1 MaNN Text 2 No Mã ngoại ngữ 2 TĐNN Text 15 No Tên ngoại ngữ 3 GC Text 255 yes Ghi chú 2.TĐHV.MDB (Trình độ học vấn) Tương tự như File TĐNN.MDB, ta cũng thiết kế File CSDL này có hai trường. STT Tên trường Kiểu DL Độ rộng Giải thích 1 MaHV Text 2 Mã học vấn 2 TĐHV Text 15 Bằng cấp mã CB đạt được 3 GC Text 255 Ghi chú 3.CHUCVU.MDB (Chức vụ). File này chứa danh sách các chức vụ tương đương của CB, gồm có giá trị như: Giám đốc, phó giám đốc, trưởng, phó phòng, cán bộ, có 2 trường là: Mã và tên chức vụ kiểu DL là Text, độ rộng là 20. STT Tên trường Kiểu DL Độ rộng Giải thích 1 MaCV Text 2 Mã chức vụ 2 CHUCVU Text 20 Chức vụ 3 GC Text 255 Ghi chú 4.PHONG.MDB (Phòng). File này gồm danh sách các phòng trong cơ quan gồm mã nhân viên và tên phòng, có 2 trường, mã có độ rộng là 2 phòng có độ rộng là 40, có kiểu DL là Text. STT Tên trường Kiểu DL Độ rộng Giải thích 1 MaP Text 2 Mã phòng 2 PHONG Text 40 Tên phòng 3 GC Text 255 Ghi chú 5.DT.MDB (Dân tộc) Tương tự như File TĐNN.MDB, ta cũng thiết kế File CSDL này có hai trường. STT Tên trường Kiểu DL Độ rộng Giải thích 1 MaDT Text 2 Mã dân tộc 2 TDT Text 15 Tên dân tộc 3 GC Text 255 Ghi chú 6.CT.MDB (Chính trị) Tương tự như File TĐNN.MDB, ta cũng thiết kế File CSDL này có hai trường. STT Tên trường Kiểu DL Độ rộng Giải thích 1 MaCT Text 2 Mã chính trị 2 TCT Text 30 Tên chính trị 3 GC Text 255 Ghi chú 7.HOSOCB.MDB ( Hồ sơ cán bộ). File HOSOCB (Hồ sơ cán bộ) là File chính của hệ thống quản lý CB, trong hồ sơ chúng ta lưu trữ tất cả các thông tin liên quan đến CB. Do đó nó khá lớn và cồng kềnh nên ta phải lược bớt sao cho thông tinh lưu trữ vừa đủ nhưng không thiếu và các thông tin phải được chuẩn hoá hay được thay thế bằng các mã để cho DL càng gọn nhẹ. STT Tên trường Kiểu DL Độ rộng Giải thích 1 Manv Text 10 Mã nhân viên 2 TenPB Text 20 Tên phòng ban 3 MaCV Text 2 Mã Chức vụ 4 Hoten Text 30 Họ tên 5 Ngaysinh Date 10 Ngày sinh 6 Noisinh Text 30 NơI sinh 7 Quequan Text 30 Quê quán 8 Gioitinh Text 3 Giới tính 9 Noithuongtru Text 30 NơI thường trú 10 Điachi Text 30 Địa chỉ liên lạc 11 Tel Text 10 Điện thoại 12 MaDT Text 2 Mã Dân tộc 13 MaTDHV Text 2 Mã Trình độ học vấn 14 Tongiao Text 15 Tôn giáo 15 So CMND Text 15 Số chứng minh nhân dân 16 Ngaycap Date 10 Ngày cấp 17 Noicap Text 30 Nơi cấp 18 Thanhphangđ Text 10 Thành phần gia đình 19 Trinhdoct Text 15 Trình độ chính trị 20 MaNN Text 2 Mã Trình độ ngoại ngữ 21 Ngayvn Date 10 Ngày vào ngành 22 Ngayvao ĐCSVN Date 10 Ngày vào Đảng CSVN 23 Chuvu Text 20 Chức vụ hiện tại 24 Bacluong Text 8 Bậc lương 25 Khenthuong Text 30 Khen thưởng 26 Kyluat Text 20 Kỷ luật 27 Namnghihưu Text 10 Năm nghỉ hưu 28 MaCT Text 2 Mã Chính trị 3.2. Biểu đồ thực thể liên kết 3.4. Thiết kế modul chương trình Chương trình quản lý cán bộ bao gồm nhiều chức năng riêng biệt như đã được mưu tả trong biểu đồ chức năng của hệ thống, như vậy khi thiết kế chương trình quản lý cán bộ ta thiết kế từng modul cho mỗi chức năng tương ứng, như vậy khi chương trình lỗi sẽ dễ phát hiện và sửa chữa, mỗi modul chính ta lại chia tiếp thành modul con, cứ như vậy cho đến khi không chia được nữa thì dừng. Chương 4 phân tích và thiết kế Hệ thống I. Mục đích Phân tích là công việc đầu tiên không thể thiếu được trong quá trình xây dựng hệ quản trị trên máy tính. Không thể đưa tin học hóa trong vấn đề quản lý mà không qua giai đoạn phân tích. Hiệu quả đem lại của hệ thống phụ thuộc vào độ nông sâu của kết quả phân tích ban đầu Mục đích của nó là xác định xem bộ phận nào của hệ thống nên xử lý bằng máy tính, và bộ phận nào đó con người thực hiện. Tổng quan về các công tác quản lý ở trên, ta thấy rằng chương trình quản lý nhân sự khi chưa sử dụng máy tính, các công cụ như thêm nhân viên, thêm nhân viên… đều do con người làm, nên việc nhập thêm, lưu trữ và tìm kiếm rất khó khăn vì số lượng Tính toán rất lớn. Sơ đồ chức năng của hệ thống quản lý cán bộ Quản lý CB Cập nhật Tra cứu Báo cáo Hồ sơ Họ và tên Danh sách CB phòng Danh mục phòng ban Chức vụ Danh sách CB lên lương Danh mục chức vụ Tra cứu theo yêu cầu Danh sách CB nghỉ hưu In CB chuyển CT Danh mục trình độ Thay đổi nhân sự Thoát II. Sơ đồ luồng dữ liệu Để xác định được yêu cầu của công việc thì người ta phải phân tích sơ đồ luồng dữ liệu, sơ đồ luồng dữ liệu nêu ra một mô hình về hệ thống thông tin chuyển vận qua các quá trình hoặc các chức năng khác nhau. Điều quan trọng là phải có sẵn các thông tin vào và biết được yêu cầu của thông tin ra trước khi cho thực hiện một quá trình. Các thành phần của biểu đồ luồng dữ liệu ã Các chức năng xử lý: Là các chức năng dùng để chỉ ra một chức năng hay một quá trình. Chức năng quan trọng trong mô hình luồng dữ liệu là biến đổi thông tin từ đầu vào theo một cách nào đó. ã Tác nhân ngoài: Là một người, một nhóm người ở bên ngoài lĩnh vực nghiên cứu của hệ thống, nhưng có trao đổi thông tin về hệ thống. ã Tác nhân trong: Là một chức năng hoặc một quá trình ở bên trong hệ thống được mô tả ở trang khác của biểu đồ, nhưng có trao đổi thông tin với hệ thống. ã Luồng dữ liệu: Là luồng thông tin vào ra của một quá trình hoặc một chức năng xử lý, mũi tên chỉ ra hướng của luồng thông tin. ã Kho dữ liệu: Là luồng thông tin lưu trữ trong một khoảng thời gian để một hoặc nhiều chức năng truy nhập vào, chúng có thể là các tệp dữ liệu được lưu trong máy tính. 1. Biểu đồ luồng DL mức ngữ cảnh Báo cáo Ban tổ chức CB TT thay đổi NS Hệ thống quản lý cán bộ T.tin tra cứu T.tin về CB Cán bộ Biểu đồ mức ngữ cảnh cho chúng ta thấy cái nhìn khái quát của hệ thống. Đây là giai đoạn hoạch định ban đầu của quá trình phân tích được dùng để vạch phạm vi hoạt động của hệ thống, nó bao gồm các thành phần như sau: - Tác nhân ngoài hệ thống. - Hệ thống * Tác nhân ngoài "Cán bộ" của hệ thống nhân sự, cung cấp cho ta những thông tin trong hồ sơ cán bộ, thông tin này được cập nhật vào hệ thống lưu trữ và xử lý DL. * Tác nhân ngoài "Phòng tổ chức" đưa vào những thông tin yêu cầu đối với hệ thống như: in danh sách những cán bộ, thống kê những cán bộ có độ tuổi < 40, trả lại những thống kê, báo cáo theo yêu cầu của cấp trên. 2. Biểu đồ luồng DL chức năng của hệ thống mức đỉnh. Phòng tổ chức Cán bộ 1. Nhập dữ liệu 3. Báo cáo Hồ sơ Thay đổi nhân sự Báo cáo Hồ sơ Dữ liệu đã xử lý 2. Tra cứu yêu cầu TT sau tra cứu Cho ta thấy được các chức năng chính của hệ thống, gồm phần DL tra cứu, thống kê theo định kỳ. Chức năng nhập DL làm nhiệm vụ nhập các thông tin về CB vào File HOSOCB, có kiểm tra DL trước khi nhập và nhập các danh mục phụ trợ như: danh sách phòng, đơn vị, chức vụ..., chức năng này rất quan trọng vì DL có chính xác hay không, cách lưu trữ thông tin có khoa học hay không đều ảnh hưởng rất lớn đến quá trình khai thác thông tin sau này. Chức năng tra cứu: Dùng để phụ cho việc tra cứu tìm kiếm do lãnh đạo yêu cầu. Thông tin phục vụ cho việc tra cứu gồm các File CSDL mà hệ thống đang lưu trữ mà các yêu cầu mà người sử dụng đưa vào hệ thống.Chức năng nhập danh sách báo cáo thông thường được chia làm 2 loại: loại thứ nhất là chế độ thống kê thường xuyên có thể bất cứ lúc nào mà lãnh đạo yêu cầu, loại này thông tin thường phong phú vì có sự kết hợp giữa thông tin lưu trữ và thông tin yêu cầu. Loại thứ hai là thống kê theo định kỳ, tháng, quý, năm nó mang tính ổn định. Biểu đồ dòng dữ liệu mức 1 chức năng nhập Ban tổ chức cán bộ Hồ sơ cán bộ 1.1 Nhập, sửa dữ liệu 1.2 danh mục chức vụ Danh mục Hồ sơ cán bộ T.tin về cán bộ Yêu cầu sửa đổi Dữ liệu Dữ liệu Dữ liệu 1.3 danh mục PB Dữ liệu T.tin T.tin 1.4 danh mục TĐ Dữ liệu T.tin Sơ đồ dòng dữ liệu mức 2 chức năng tra cứu Ban tổ chức CB Tra cứu theo tên Tra cứu theo yêu cầu Hồ sơ Trả lời Tra cứu theo CV Trả lời Yêu cầu Trả lời Dữ liệu Dữ liệu Yêu cầu Yêu cầu Biểu đồ dòng dữ liệu mức 3 chức năng báo cáo DS cán bộ lên lương DS cán bộ đơn vị TK theo chức vụ In CB chuyển c.tác DS cán bộ lên lương DS cán bộ của đơn vị T. kê theo chức vụ In CB chuyển đổi Phòng tổ chức cán bộ DL đã qua xử lý DL đã qua xử lý DL đã qua xử lý Hồ sơ cán bộ Yêu cầu Yêu cầu DL đã qua xử lý Hồ sơ cán bộ Hồ sơ cán bộ Chương V Các form chính và code chương trình I . Một số form chính của chương trình 1. Form thông tin về cá nhân Hình 2: Giao diện form-thông tin từng cá nhân 2. Form thông tin về trình độ học vấn Hình 3: Giao diện form-thống kê về trình độ học vấn 3. Form thông tin về cán bộ đi học Hình 4: Giao diện form-danh sách cán bộ đi học 4 Form danh sách cán bộ lên lương Hình 5: Giao diện form-danh sách cán bộ lên lương 5. Form danh sách cán bộ nghỉ hưu Hình 6: Giao diện form-danh sách cán bộ nghỉ hưu II. Một số Code của chương trình Option Explicit Dim nut As Integer Private Sub CboChucvu_GotFocus() CboChucvu.SelStart = 0 CboChucvu.SelLength = Len(CboChucvu.Text) End Sub Private Sub CboHovaten_Click(Area As Integer) AdoDihoc.Recordset.MoveFirst Do Until AdoDihoc.Recordset.EOF If AdoDihoc.Recordset.Fields(0).Value = CboHovaten.BoundText Then CboMahoso.Text = AdoDihoc.Recordset.Fields(0).Value TxtNgaysinh.Text = AdoDihoc.Recordset.Fields(2).Value CboPhong.Text = AdoDihoc.Recordset.Fields("Phòng").Value CboChucvu.Text = AdoDihoc.Recordset.Fields("Chức vụ").Value TxtKhenthuong.Text = AdoDihoc.Recordset.Fields("Khen thưởng").Value TxtKyluat.Text = AdoDihoc.Recordset.Fields("Kỷ luật").Value Exit Do End If AdoDihoc.Recordset.MoveNext Loop End Sub Private Sub CboHovaten_GotFocus() CboHovaten.SelStart = 0 CboHovaten.SelLength = Len(CboHovaten.Text) End Sub Private Sub CboMahoso_Click(Area As Integer) AdoDihoc.Recordset.MoveFirst Do Until AdoDihoc.Recordset.EOF If AdoDihoc.Recordset.Fields(0).Value = CboMahoso.BoundText Then CboHovaten.Text = AdoDihoc.Recordset.Fields(1).Value TxtNgaysinh.Text = AdoDihoc.Recordset.Fields(2).Value CboPhong.Text = AdoDihoc.Recordset.Fields("Phòng").Value CboChucvu.Text = AdoDihoc.Recordset.Fields("Chức vụ").Value TxtKhenthuong.Text = AdoDihoc.Recordset.Fields("Khen thưởng").Value TxtKyluat.Text = AdoDihoc.Recordset.Fields("Kỷ luật").Value Exit Do End If AdoDihoc.Recordset.MoveNext Loop End Sub Private Sub CboMahoso_GotFocus() CboMahoso.SelStart = 0 CboMahoso.SelLength = Len(CboMahoso.Text) End Sub Private Sub CboPhong_GotFocus() CboPhong.SelStart = 0 CboPhong.SelLength = Len(CboPhong.Text) End Sub Private Sub CmdCapnhat_Click() Dim db As Database Dim rs As Recordset Set db = OpenDatabase(App.Path & "\nhansu.mdb") Set rs = db.OpenRecordset("Dihoc") Select Case nut Case 1: On Error GoTo loi1: If (IsNull(TxtNganhhoc.Text)) Or (IsNull(TxtTruonghoc.Text)) Then MsgBox "Dữ liệu bạn đưa vào bị sai", vbOKOnly + vbCritical, "Kiểm tra" CboMahoso.SetFocus Exit Sub End If rs.AddNew rs.Fields(0).Value = UCase(CboMahoso.Text) rs.Fields(1).Value = CboHovaten.Text rs.Fields(2).Value = TxtNgaysinh.Text rs.Fields(3).Value = CboPhong.Text rs.Fields(4).Value = CboChucvu.Text rs.Fields(5).Value = TxtKhenthuong.Text rs.Fields(6).Value = TxtKyluat.Text rs.Fields(7).Value = TxtNganhhoc.Text rs.Fields(8).Value = TxtTruonghoc.Text rs.Fields(9).Value = TxtNgayth.Text rs.Update Data1.Refresh Data1.Recordset.MoveLast Call Capnhat Exit Sub loi1: MsgBox "Dữ liệu bạn đưa vào bị sai", vbOKOnly + vbCritical, "Kiểm tra" CboMahoso.SetFocus Case 2: On Error GoTo loi2: rs.MoveFirst Do Until rs.EOF If rs.Fields(0).Value = CboMahoso.Text Then rs.Delete End If rs.MoveNext Loop Data1.Refresh Call Capnhat Exit Sub loi2: MsgBox "Dữ liệu bạn đưa vào bị sai", vbOKOnly + vbCritical, "Kiểm tra" CboMahoso.SetFocus Case Else: MsgBox "Bạn chưa chọn trạng thái hoạt động của hệ thống", vbOKOnly + vbInformation, "Thông báo" End Select End Sub Private Sub CmdDuyet_Click(Index As Integer) Select Case Index Case 0 Data1.Recordset.MoveFirst Case 1 Data1.Recordset.MovePrevious If Data1.Recordset.BOF Then Data1.Recordset.MoveFirst End If Case 2 Data1.Recordset.MoveNext If Data1.Recordset.EOF Then Data1.Recordset.MoveLast End If Case 3 Data1.Recordset.MoveLast End Select Call Capnhat End Sub Private Sub CmdIn_Click() RptDihoc.Label7.Caption = RptDihoc.Label7.Caption & Mid(TxtNgayth.Text, 7, 4) RptDihoc.Show End Sub Private Sub CmdThem_Click() CboMahoso.Enabled = True CboHovaten.Enabled = True TxtNgaysinh.Enabled = True CboPhong.Enabled = True CboChucvu.Enabled = True TxtKhenthuong.Enabled = True TxtKyluat.Enabled = True TxtNganhhoc.Enabled = True TxtTruonghoc.Enabled = True MDIHethong.StatusBar1.Panels(2).Text = "Thêm dữ liệu" CboMahoso.SetFocus nut = 1 End Sub Private Sub CmdThoat_Click() Unload Me End Sub Private Sub CmdThoat_LostFocus() CboMahoso.SetFocus End Sub Private Sub CmdXoa_Click() CboMahoso.Enabled = True CboHovaten.Enabled = False TxtNgaysinh.Enabled = False CboPhong.Enabled = False CboChucvu.Enabled = False TxtKhenthuong.Enabled = False TxtKyluat.Enabled = False TxtNganhhoc.Enabled = False TxtTruonghoc.Enabled = False MDIHethong.StatusBar1.Panels(2).Text = "Xoá dữ liệu" CboMahoso.SetFocus nut = 2 End Sub Private Sub Form_Load() Dim s As String AdoDihoc.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & App.Path & "\nhansu.mdb" AdoDihoc.RecordSource = "Select * from QHoso" AdoDihoc.Refresh AdoPhong.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & App.Path & "\nhansu.mdb" AdoPhong.RecordSource = "Select * from QPhong" AdoPhong.Refresh AdoChucvu.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & App.Path & "\nhansu.mdb" AdoChucvu.RecordSource = "Select * from QChucvu" AdoChucvu.Refresh Data1.DatabaseName = App.Path & "\nhansu.mdb" Data1.RecordSource = "QDihoc" Data1.Refresh Call Capnhat MDIHethong.StatusBar1.Panels(2).Text = "Danh sách cán bộ đi học" On Error GoTo loi CboMahoso.Text = Data1.Recordset.Fields(0).Value CboHovaten.Text = Data1.Recordset.Fields(1).Value If Not IsNull(Data1.Recordset.Fields(2).Value) Then TxtNgaysinh.Text = Data1.Recordset.Fields(2).Value End If CboPhong.Text = Data1.Recordset.Fields(3).Value CboChucvu.Text = Data1.Recordset.Fields(4).Value TxtKhenthuong.Text = Data1.Recordset.Fields(5).Value TxtKyluat.Text = Data1.Recordset.Fields(6).Value TxtNganhhoc.Text = Data1.Recordset.Fields(7).Value TxtTruonghoc.Text = Data1.Recordset.Fields(8).Value If Not IsNull(Data1.Recordset.Fields(9).Value) Then TxtNgayth.Text = Data1.Recordset.Fields(9).Value End If loi: End Sub Private Sub Form_Unload(Cancel As Integer) MDIHethong.StatusBar1.Panels(2).Text = "" End Sub Private Sub GrdHoso_Click() On Error GoTo loi CboMahoso.Text = Data1.Recordset.Fields(0).Value CboHovaten.Text = Data1.Recordset.Fields(1).Value If Not IsNull(Data1.Recordset.Fields(2).Value) Then TxtNgaysinh.Value = Data1.Recordset.Fields(2).Value End If CboPhong.Text = Data1.Recordset.Fields(3).Value CboChucvu.Text = Data1.Recordset.Fields(4).Value TxtKhenthuong.Text = Data1.Recordset.Fields(5).Value TxtKyluat.Text = Data1.Recordset.Fields(6).Value TxtNganhhoc.Text = Data1.Recordset.Fields(7).Value TxtTruonghoc.Text = Data1.Recordset.Fields(8).Value If Not IsNull(Data1.Recordset.Fields(9).Value) Then TxtNgayth.Value = Data1.Recordset.Fields(9).Value End If loi: End Sub Private Sub TxtKhenthuong_GotFocus() TxtKhenthuong.SelStart = 0 TxtKhenthuong.SelLength = Len(TxtKhenthuong.Text) End Sub Private Sub TxtKyluat_GotFocus() TxtKyluat.SelStart = 0 TxtKyluat.SelLength = Len(TxtKyluat.Text) End Sub Private Sub TxtNganhhoc_GotFocus() TxtNganhhoc.SelStart = 0 TxtNganhhoc.SelLength = Len(TxtNganhhoc.Text) End Sub Private Sub TxtNgaysinh_GotFocus() TxtNgaysinh.SelStart = 0 TxtNgaysinh.SelLength = Len(TxtNgaysinh.Text) End Sub Private Sub TxtNgayth_GotFocus() TxtNgayth.SelStart = 0 TxtNgayth.SelLength = Len(TxtNgayth.Text) End Sub Private Sub TxtTruonghoc_GotFocus() TxtTruonghoc.SelStart = 0 TxtTruonghoc.SelLength = Len(TxtTruonghoc.Text) End Sub Sub Capnhat() On Error GoTo loi CboMahoso.Text = Data1.Recordset.Fields(0).Value CboHovaten.Text = Data1.Recordset.Fields(1).Value If Not IsNull(Data1.Recordset.Fields(2).Value) Then TxtNgaysinh.Value = Data1.Recordset.Fields(2).Value End If CboPhong.Text = Data1.Recordset.Fields(3).Value CboChucvu.Text = Data1.Recordset.Fields(4).Value TxtKhenthuong.Text = Data1.Recordset.Fields(5).Value TxtKyluat.Text = Data1.Recordset.Fields(6).Value TxtNganhhoc.Text = Data1.Recordset.Fields(7).Value TxtTruonghoc.Text = Data1.Recordset.Fields(8).Value If Not IsNull(Data1.Recordset.Fields(9).Value) Then TxtNgayth.Value = Data1.Recordset.Fields(9).Value End If loi: End Sub Option Explicit Dim nut As Integer Private Sub CmdCapnhat_Click() Dim db As Database Dim rs As Recordset Set db = OpenDatabase(App.Path & "\nhansu.mdb") Set rs = db.OpenRecordset("donvi") Select Case nut Case 1: On Error GoTo loi1 rs.AddNew rs.Fields(0).Value = UCase(Txtmadonvi.Text) rs.Fields(1).Value = Txtdonvi.Text rs.Fields(2).Value = Txtghichu.Text rs.Update Data1.Refresh Data1.Recordset.MoveLast Call Capnhat Exit Sub loi1: MsgBox "Dữa liệu bạn nhập vào bị sai", vbOKOnly + vbCritical, "Kiểm tra" Case 2: On Error GoTo loi2 rs.MoveFirst Do Until rs.EOF If rs.Fields(0).Value = Txtmadonvi.Text Then rs.Delete End If rs.MoveNext Loop Data1.Refresh Call Capnhat Exit Sub loi2: MsgBox "Dữa liệu bạn nhập vào bị sai", vbOKOnly + vbCritical, "Kiểm tra" Case 3: On Error GoTo loi3 rs.MoveFirst Do Until rs.EOF If rs.Fields(0).Value = Txtmadonvi.Text Then rs.Edit rs.Fields(1).Value = Txtdonvi.Text rs.Fields(2).Value = Txtghichu.Text rs.Update End If rs.MoveNext Loop Data1.Refresh Call Capnhat Exit Sub loi3: MsgBox "Dữa liệu bạn nhập vào bị sai", vbOKOnly + vbCritical, "Kiểm tra" Case Else MsgBox "Bạn chưa chọn trạng thái hoạt động", vbOKOnly + vbCritical, "Kiểm tra" End Select End Sub Private Sub CmdDuyet_Click(Index As Integer) Select Case Index Case 0 Data1.Recordset.MoveFirst Case 1 Data1.Recordset.MovePrevious If Data1.Recordset.BOF Then Data1.Recordset.MoveFirst End If Case 2 Data1.Recordset.MoveNext If Data1.Recordset.EOF Then Data1.Recordset.MoveLast End If Case 3 Data1.Recordset.MoveLast End Select Call Capnhat End Sub Private Sub CmdSua_Click() Txtmadonvi.Enabled = True Txtdonvi.Enabled = True Txtghichu.Enabled = True nut = 3 MDIHethong.StatusBar1.Panels(2).Text = "Sửa dữ liệu" End Sub Private Sub CmdThem_Click() Txtmadonvi.Enabled = True Txtdonvi.Enabled = True Txtghichu.Enabled = True nut = 1 MDIHethong.StatusBar1.Panels(2).Text = "Thêm dữ liệu" End Sub Private Sub CmdThoat_Click() Unload Me End Sub Private Sub CmdThoat_LostFocus() Txtmadonvi.SetFocus End Sub Private Sub CmdXoa_Click() Txtmadonvi.Enabled = True Txtdonvi.Enabled = False Txtghichu.Enabled = False nut = 2 MDIHethong.StatusBar1.Panels(2).Text = "Xoá dữ liệu" End Sub Private Sub DBGrid1_Click() On Error GoTo loi Txtmadonvi.Text = Data1.Recordset.Fields(0).Value Txtdonvi.Text = Data1.Recordset.Fields(1).Value Txtghichu.Text = Data1.Recordset.Fields(2).Value loi: End Sub Private Sub Form_Load() Data1.DatabaseName = App.Path & "\nhansu.mdb" Data1.RecordSource = "qdonvi" Data1.Refresh Call Capnhat DBGrid1.Columns(1).Width = 2000 DBGrid1.Columns(2).Width = 3000 End Sub Private Sub Form_Unload(Cancel As Integer) MDIHethong.StatusBar1.Panels(2).Text = "" End Sub Private Sub Txtdonvi_GotFocus() Txtdonvi.SelStart = 0 Txtdonvi.SelLength = Len(Txtdonvi.Text) End Sub Private Sub Txtghichu_GotFocus() Txtghichu.SelStart = 0 Txtghichu.SelLength = Len(Txtghichu.Text) End Sub Private Sub Txtmadonvi_GotFocus() Txtmadonvi.SelStart = 0 Txtmadonvi.SelLength = Len(Txtmadonvi.Text) End Sub Sub Capnhat() On Error GoTo loi Txtmadonvi.Text = Data1.Recordset.Fields(0).Value Txtdonvi.Text = Data1.Recordset.Fields(1).Value Txtghichu.Text = Data1.Recordset.Fields(2).Value loi: End Sub Option Explicit Dim nut As Integer Private Sub CboChinhtri_GotFocus() CboChinhtri.SelStart = 0 CboChinhtri.SelLength = Len(CboChinhtri.Text) End Sub Private Sub CboChucvu_GotFocus() CboChucvu.SelStart = 0 CboChucvu.SelLength = Len(CboChucvu.Text) End Sub Private Sub CboChucvuht_GotFocus() CboChucvuht.SelStart = 0 CboChucvuht.SelLength = Len(CboChucvuht.Text) End Sub Private Sub CboDantoc_GotFocus() CboDantoc.SelStart = 0 CboDantoc.SelLength = Len(CboDantoc.Text) End Sub 'Private Sub CboDonvi_Click(Area As Integer) 'CboDonvi.SelStart = 0 'CboDonvi.SelLength = Len(CboDonvi.Text) 'End Sub Private Sub CboHocvan_GotFocus() CboHocvan.SelStart = 0 CboHocvan.SelLength = Len(CboHocvan.Text) End Sub Private Sub CboNgoaingu_GotFocus() CboNgoaingu.SelStart = 0 CboNgoaingu.SelLength = Len(CboNgoaingu.Text) End Sub Private Sub CboPhong_GotFocus() CboPhong.SelStart = 0 CboPhong.SelLength = Len(CboPhong.Text) End Sub Private Sub CmdCapnhat_Click() Dim db As Database Dim rs As Recordset Set db = OpenDatabase(App.Path & "\nhansu.mdb") Set rs = db.OpenRecordset("hoso") Select Case nut Case 1: On Error GoTo loi1 rs.AddNew rs.Fields(0).Value = UCase(Txtmahoso.Text) rs.Fields(1).Value = Txthovaten.Text rs.Fields(2).Value = TxtNgaysinh.Text rs.Fields(3).Value = ChkGioitinh.Value rs.Fields(4).Value = Txtnoisinh.Text rs.Fields(5).Value = TxtQue.Text rs.Fields(6).Value = TxtNoithuongtru.Text rs.Fields(7).Value = TxtDiachi.Text rs.Fields(8).Value = TxtSDT.Text rs.Fields(9).Value = CboDantoc.BoundText rs.Fields(10).Value = CboHocvan.BoundText rs.Fields(11).Value = TxtTongiao.Text rs.Fields(12).Value = TxtSoCMND.Text rs.Fields(13).Value = TxtNgaycap.Text rs.Fields(14).Value = TxtNoicap.Text rs.Fields(15).Value = TxtThanhphangd.Text rs.Fields(16).Value = CboChinhtri.BoundText rs.Fields(17).Value = CboNgoaingu.BoundText rs.Fields(18).Value = TxtNgayvaonganh.Text If TxtNgayvaodang.Text "__/__/____" Then rs.Fields(19).Value = TxtNgayvaodang.Text End If rs.Fields(20).Value = CboPhong.BoundText rs.Fields(21).Value = CboChucvu.BoundText rs.Fields(22).Value = CboChucvuht.BoundText rs.Fields(23).Value = TxtBacluong.Text rs.Fields(24).Value = TxtKhenthuong.Text rs.Fields(25).Value = TxtKyluat.Text 'rs.Fields(26).Value = CboDonvi.BoundText rs.Fields(26).Value = Val(TxtNamnghihuu.Text) rs.Update Data1.Refresh Data1.Recordset.MoveLast Call Capnhat Exit Sub loi1: MsgBox "Dữa liệu bạn nhập vào bị sai", vbOKOnly + vbCritical, "Kiểm tra" Case 2: On Error GoTo loi2 rs.MoveFirst Do Until rs.EOF If rs.Fields(0).Value = Txtmahoso.Text Then rs.Delete End If rs.MoveNext Loop Data1.Refresh Call Capnhat Exit Sub loi2: MsgBox "Dữa liệu bạn nhập vào bị sai", vbOKOnly + vbCritical, "Kiểm tra" Case 3: On Error GoTo loi3 rs.MoveFirst Do Until rs.EOF If rs.Fields(0).Value = Txtmahoso.Text Then rs.Edit rs.Fields(1).Value = Txthovaten.Text rs.Fields(2).Value = TxtNgaysinh.Text rs.Fields(3).Value = ChkGioitinh.Value rs.Fields(4).Value = Txtnoisinh.Text rs.Fields(5).Value = TxtQue.Text rs.Fields(6).Value = TxtNoithuongtru.Text rs.Fields(7).Value = TxtDiachi.Text rs.Fields(8).Value = TxtSDT.Text rs.Fields(9).Value = CboDantoc.BoundText rs.Fields(10).Value = CboHocvan.BoundText rs.Fields(11).Value = TxtTongiao.Text rs.Fields(12).Value = TxtSoCMND.Text rs.Fields(13).Value = TxtNgaycap.Text rs.Fields(14).Value = TxtNoicap.Text rs.Fields(15).Value = TxtThanhphangd.Text rs.Fields(16).Value = CboChinhtri.BoundText rs.Fields(17).Value = CboNgoaingu.BoundText rs.Fields(18).Value = TxtNgayvaonganh.Text If TxtNgayvaodang.Text "__/__/____" Then rs.Fields(19).Value = TxtNgayvaodang.Text End If rs.Fields(20).Value = CboPhong.BoundText rs.Fields(21).Value = CboChucvu.BoundText rs.Fields(22).Value = CboChucvuht.BoundText rs.Fields(23).Value = TxtBacluong.Text rs.Fields(24).Value = TxtKhenthuong.Text rs.Fields(25).Value = TxtKyluat.Text 'rs.Fields(26).Value = CboDonvi.BoundText rs.Fields(26).Value = Val(TxtNamnghihuu.Text) rs.Update End If rs.MoveNext Loop Data1.Refresh Call Capnhat Exit Sub loi3: MsgBox "Dữa liệu bạn nhập vào bị sai", vbOKOnly + vbCritical, "Kiểm tra" Case Else MsgBox "Bạn chưa chọn trạng thái hoạt động", vbOKOnly + vbCritical, "Kiểm tra" End Select End Sub Private Sub CmdDuyet_Click(Index As Integer) Select Case Index Case 0 Data1.Recordset.MoveFirst Case 1 Data1.Recordset.MovePrevious If Data1.Recordset.BOF Then Data1.Recordset.MoveFirst End If Case 2 Data1.Recordset.MoveNext If Data1.Recordset.EOF Then Data1.Recordset.MoveLast End If Case 3 Data1.Recordset.MoveLast End Select Call Capnhat End Sub Private Sub CmdIn_Click() 'rpt Dim db As Database Dim rs As Recordset Dim rs1 As Recordset Dim s As String s = "Delete * from Hoso1" Set db = OpenDatabase(App.Path & "\nhansu.mdb") Set rs = db.OpenRecordset("QHoso") Set rs1 = db.OpenRecordset("Hoso1") db.Execute s rs.MoveFirst Do Until rs.EOF rs1.AddNew rs1.Fields(0).Value = rs.Fields("Họ và tên").Value rs1.Fields(1).Value = Year(rs.Fields("Ngày sinh").Value) rs1.Fields(2).Value = rs.Fields("Quê").Value rs1.Fields(3).Value = rs.Fields("Nơi thường trú").Value If rs.Fields("Giới tính").Value = 1 Then rs1.Fields(4).Value = "Nam" Else rs1.Fields(4).Value = "Nữ" End If rs1.Fields(5).Value = rs.Fields("Chức vụ").Value rs1.Fields(6).Value = rs.Fields("Học vấn").Value rs1.Update rs.MoveNext Loop RptNhansu.Show End Sub Private Sub CmdSua_Click() Call Capnhat Txtmahoso.Enabled = True Txthovaten.Enabled = True TxtNgaysinh.Enabled = True ChkGioitinh.Enabled = True Txtnoisinh.Enabled = True TxtQue.Enabled = True TxtNoithuongtru.Enabled = True TxtDiachi.Enabled = True TxtSDT.Enabled = True CboDantoc.Enabled = True CboHocvan.Enabled = True TxtTongiao.Enabled = True TxtSoCMND.Enabled = True TxtNgaycap.Enabled = True TxtNoicap.Enabled = True TxtThanhphangd.Enabled = True CboChinhtri.Enabled = True CboNgoaingu.Enabled = True TxtNgayvaonganh.Enabled = True TxtNgayvaodang.Enabled = True CboPhong.Enabled = True CboChucvu.Enabled = True CboChucvuht.Enabled = True TxtBacluong.Enabled = True TxtKhenthuong.Enabled = True TxtKyluat.Enabled = True 'CboDonvi.Enabled = True TxtNamnghihuu.Enabled = True nut = 3 MDIHethong.StatusBar1.Panels(2).Text = "Sửa dữ liệu" Txtmahoso.SetFocus End Sub Private Sub CmdThem_Click() Call Capnhat Txtmahoso.Enabled = True Txthovaten.Enabled = True TxtNgaysinh.Enabled = True ChkGioitinh.Enabled = True Txtnoisinh.Enabled = True TxtQue.Enabled = True TxtNoithuongtru.Enabled = True TxtDiachi.Enabled = True TxtSDT.Enabled = True CboDantoc.Enabled = True CboHocvan.Enabled = True TxtTongiao.Enabled = True TxtSoCMND.Enabled = True TxtNgaycap.Enabled = True TxtNoicap.Enabled = True TxtThanhphangd.Enabled = True CboChinhtri.Enabled = True CboNgoaingu.Enabled = True TxtNgayvaonganh.Enabled = True TxtNgayvaodang.Enabled = True CboPhong.Enabled = True CboChucvu.Enabled = True CboChucvuht.Enabled = True TxtBacluong.Enabled = True TxtKhenthuong.Enabled = True TxtKyluat.Enabled = True 'CboDonvi.Enabled = True TxtNamnghihuu.Enabled = True nut = 1 MDIHethong.StatusBar1.Panels(2).Text = "Thêm dữ liệu" Txtmahoso.SetFocus End Sub Private Sub CmdThoat_Click() Unload Me End Sub Private Sub CmdThoat_LostFocus() Txtmahoso.SetFocus End Sub Private Sub CmdXoa_Click() 'Call Capnhat Txtmahoso.Enabled = True Txthovaten.Enabled = False TxtNgaysinh.Enabled = False ChkGioitinh.Enabled = False Txtnoisinh.Enabled = False TxtQue.Enabled = False TxtNoithuongtru.Enabled = False TxtDiachi.Enabled = False TxtSDT.Enabled = False CboDantoc.Enabled = False CboHocvan.Enabled = False TxtTongiao.Enabled = False TxtSoCMND.Enabled = False TxtNgaycap.Enabled = False TxtNoicap.Enabled = False TxtThanhphangd.Enabled = False CboChinhtri.Enabled = False CboNgoaingu.Enabled = False TxtNgayvaonganh.Enabled = False TxtNgayvaodang.Enabled = False CboPhong.Enabled = False CboChucvu.Enabled = False CboChucvuht.Enabled = False TxtBacluong.Enabled = False TxtKhenthuong.Enabled = False TxtKyluat.Enabled = False 'CboDonvi.Enabled = False TxtNamnghihuu.Enabled = False nut = 2 MDIHethong.StatusBar1.Panels(2).Text = "Xoá dữ liệu" Txtmahoso.SetFocus End Sub Private Sub DBGrid1_Click() On Error GoTo loi Txtmahoso.Text = Data1.Recordset.Fields(0).Value Txthovaten.Text = Data1.Recordset.Fields(1).Value TxtNgaysinh.Value = Data1.Recordset.Fields(2).Value ChkGioitinh.Value = Data1.Recordset.Fields(3).Value Txtnoisinh.Text = Data1.Recordset.Fields(4).Value TxtQue.Text = Data1.Recordset.Fields(5).Value TxtNoithuongtru.Text = Data1.Recordset.Fields(6).Value TxtDiachi.Text = Data1.Recordset.Fields(7).Value TxtSDT.Text = Data1.Recordset.Fields(8).Value CboDantoc.Text = Data1.Recordset.Fields(9).Value CboHocvan.Text = Data1.Recordset.Fields(10).Value TxtTongiao.Text = Data1.Recordset.Fields(11).Value TxtSoCMND.Text = Data1.Recordset.Fields(12).Value TxtNgaycap.Value = Data1.Recordset.Fields(13).Value TxtNoicap.Text = Data1.Recordset.Fields(14).Value TxtThanhphangd.Text = Data1.Recordset.Fields(15).Value CboChinhtri.Text = Data1.Recordset.Fields(16).Value CboNgoaingu.Text = Data1.Recordset.Fields(17).Value TxtNgayvaonganh.Text = Data1.Recordset.Fields(18).Value If Not IsNull(Data1.Recordset.Fields(19).Value) Then TxtNgayvaodang.Text = Data1.Recordset.Fields(19).Value Else TxtNgayvaodang.Text = "__/__/____" End If CboPhong.Text = Data1.Recordset.Fields(20).Value CboChucvu.Text = Data1.Recordset.Fields(21).Value CboChucvuht.Text = Data1.Recordset.Fields(22).Value TxtBacluong.Text = Val(Data1.Recordset.Fields(23).Value) TxtKhenthuong.Text = Data1.Recordset.Fields(24).Value TxtKyluat.Text = Data1.Recordset.Fields(25).Value 'CboDonvi.Text = Data1.Recordset.Fields(26).Value TxtNamnghihuu.Value = Data1.Recordset.Fields(26).Value loi: End Sub Private Sub Form_Load() Data1.DatabaseName = App.Path & "\nhansu.mdb" Data1.RecordSource = "qhoso" Data1.Refresh Call Capnhat Adochinhtri.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & App.Path & "\nhansu.mdb" Adochinhtri.RecordSource = "select * from qchinhtri" Adochinhtri.Refresh AdoChucvu.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & App.Path & "\nhansu.mdb" AdoChucvu.RecordSource = "select * from qchucvu" AdoChucvu.Refresh AdoDantoc.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & App.Path & "\nhansu.mdb" AdoDantoc.RecordSource = "select * from qdantoc" AdoDantoc.Refresh AdoDonvi.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & App.Path & "\nhansu.mdb" AdoDonvi.RecordSource = "Select * from QDonvi" AdoDonvi.Refresh AdoHocvan.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & App.Path & "\nhansu.mdb" AdoHocvan.RecordSource = "Select * from qhocvan" AdoHocvan.Refresh AdoNgoaingu.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & App.Path & "\nhansu.mdb" AdoNgoaingu.RecordSource = "select * from qngoaingu" AdoNgoaingu.Refresh AdoPhong.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & App.Path & "\nhansu.mdb" AdoPhong.RecordSource = "select * from qphong" AdoPhong.Refresh End Sub Private Sub Form_Unload(Cancel As Integer) MDIHethong.StatusBar1.Panels(2).Text = "" End Sub Private Sub TxtBacluong_GotFocus() TxtBacluong.SelStart = 0 TxtBacluong.SelLength = Len(TxtBacluong.Text) End Sub Private Sub TxtDiachi_GotFocus() TxtDiachi.SelStart = 0 TxtDiachi.SelLength = Len(TxtDiachi.Text) End Sub Private Sub TxtKhenthuong_GotFocus() TxtKhenthuong.SelStart = 0 TxtKhenthuong.SelLength = Len(TxtKhenthuong.Text) End Sub Private Sub TxtKyluat_GotFocus() TxtKyluat.SelStart = 0 TxtKyluat.SelLength = Len(TxtKyluat.Text) End Sub Private Sub TxtNamnghihuu_GotFocus() TxtNamnghihuu.SelStart = 0 TxtNamnghihuu.SelLength = Len(TxtNamnghihuu.Text) End Sub Private Sub TxtNgaycap_GotFocus() TxtNgaycap.SelStart = 0 TxtNgaycap.SelLength = Len(TxtNgaycap.Text) End Sub Private Sub TxtNgaysinh_GotFocus() TxtNgaysinh.SelStart = 0 TxtNgaysinh.SelLength = Len(TxtNgaysinh.Text) End Sub Private Sub Txthovaten_GotFocus() Txthovaten.SelStart = 0 Txthovaten.SelLength = Len(Txthovaten.Text) End Sub Private Sub Txtmahoso_GotFocus() Txtmahoso.SelStart = 0 Txtmahoso.SelLength = Len(Txtmahoso.Text) End Sub Private Sub TxtNgayvaodang_GotFocus() TxtNgayvaodang.SelStart = 0 TxtNgayvaodang.SelLength = Len(TxtNgayvaodang.Text) End Sub Private Sub TxtNgayvaonganh_GotFocus() TxtNgayvaonganh.SelStart = 0 TxtNgayvaonganh.SelLength = Len(TxtNgayvaonganh.Text) End Sub Private Sub TxtNoicap_GotFocus() TxtNoicap.SelStart = 0 TxtNoicap.SelLength = Len(TxtNoicap.Text) End Sub Private Sub Txtnoisinh_GotFocus() Txtnoisinh.SelStart = 0 Txtnoisinh.SelLength = Len(Txtnoisinh.Text) End Sub Private Sub TxtNoithuongtru_GotFocus() TxtNoithuongtru.SelStart = 0 TxtNoithuongtru.SelLength = Len(TxtNoithuongtru.Text) End Sub Private Sub TxtQue_GotFocus() TxtQue.SelStart = 0 TxtQue.SelLength = Len(TxtQue.Text) End Sub Private Sub TxtSDT_GotFocus() TxtSDT.SelStart = 0 TxtSDT.SelLength = Len(TxtSDT.Text) End Sub Private Sub TxtSoCMND_GotFocus() TxtSoCMND.SelStart = 0 TxtSoCMND.SelLength = Len(TxtSoCMND.Text) End Sub Private Sub TxtThanhphangd_GotFocus() TxtThanhphangd.SelStart = 0 TxtThanhphangd.SelLength = Len(TxtThanhphangd.Text) End Sub Private Sub TxtTongiao_GotFocus() TxtTongiao.SelStart = 0 TxtTongiao.SelLength = Len(TxtTongiao.Text) End Sub Sub Capnhat() On Error GoTo loi Txtmahoso.Text = Data1.Recordset.Fields(0).Value Txthovaten.Text = Data1.Recordset.Fields(1).Value TxtNgaysinh.Value = Data1.Recordset.Fields(2).Value ChkGioitinh.Value = Data1.Recordset.Fields(3).Value Txtnoisinh.Text = Data1.Recordset.Fields(4).Value TxtQue.Text = Data1.Recordset.Fields(5).Value TxtNoithuongtru.Text = Data1.Recordset.Fields(6).Value TxtDiachi.Text = Data1.Recordset.Fields(7).Value TxtSDT.Text = Data1.Recordset.Fields(8).Value CboDantoc.Text = Data1.Recordset.Fields(9).Value CboDantoc.Refresh CboHocvan.Text = Data1.Recordset.Fields(10).Value TxtTongiao.Text = Data1.Recordset.Fields(11).Value TxtSoCMND.Text = Data1.Recordset.Fields(12).Value TxtNgaycap.Value = Data1.Recordset.Fields(13).Value TxtNoicap.Text = Data1.Recordset.Fields(14).Value TxtThanhphangd.Text = Data1.Recordset.Fields(15).Value CboChinhtri.Text = Data1.Recordset.Fields(16).Value CboNgoaingu.Text = Data1.Recordset.Fields(17).Value TxtNgayvaonganh.Text = Data1.Recordset.Fields(18).Value If Not IsNull(Data1.Recordset.Fields(19).Value) Then TxtNgayvaodang.Text = Data1.Recordset.Fields(19).Value Else TxtNgayvaodang.Text = "__/__/____" End If CboPhong.Text = Data1.Recordset.Fields(20).Value CboChucvu.Text = Data1.Recordset.Fields(21).Value CboChucvuht.Text = Data1.Recordset.Fields(22).Value TxtBacluong.Text = Val(Data1.Recordset.Fields(23).Value) TxtKhenthuong.Text = Data1.Recordset.Fields(24).Value TxtKyluat.Text = Data1.Recordset.Fields(25).Value TxtNamnghihuu.Value = Data1.Recordset.Fields(26).Value loi: End Sub Option Explicit Dim nut As Integer Private Sub CmdCapnhat_Click() Dim db As Database Dim rs As Recordset Set db = OpenDatabase(App.Path & "\nhansu.mdb") Set rs = db.OpenRecordset("hocvan") Select Case nut Case 1: On Error GoTo loi1 rs.AddNew rs.Fields(0).Value = UCase(Txtmahocvan.Text) rs.Fields(1).Value = Txthocvan.Text rs.Fields(2).Value = Txtghichu.Text rs.Update Data1.Refresh Data1.Recordset.MoveLast Call Capnhat Exit Sub loi1: MsgBox "Dữa liệu bạn nhập vào bị sai", vbOKOnly + vbCritical, "Kiểm tra" Case 2: On Error GoTo loi2 rs.MoveFirst Do Until rs.EOF If rs.Fields(0).Value = Txtmahocvan.Text Then rs.Delete End If rs.MoveNext Loop Data1.Refresh Call Capnhat Exit Sub loi2: MsgBox "Dữa liệu bạn nhập vào bị sai", vbOKOnly + vbCritical, "Kiểm tra" Case 3: On Error GoTo loi3 rs.MoveFirst Do Until rs.EOF If rs.Fields(0).Value = Txtmahocvan.Text Then rs.Edit rs.Fields(1).Value = Txthocvan.Text rs.Fields(2).Value = Txtghichu.Text rs.Update End If rs.MoveNext Loop Data1.Refresh Call Capnhat Exit Sub loi3: MsgBox "Dữa liệu bạn nhập vào bị sai", vbOKOnly + vbCritical, "Kiểm tra" Case Else MsgBox "Bạn chưa chọn trạng thái hoạt động", vbOKOnly + vbCritical, "Kiểm tra" End Select End Sub Private Sub CmdDuyet_Click(Index As Integer) Select Case Index Case 0 Data1.Recordset.MoveFirst Case 1 Data1.Recordset.MovePrevious If Data1.Recordset.BOF Then Data1.Recordset.MoveFirst End If Case 2 Data1.Recordset.MoveNext If Data1.Recordset.EOF Then Data1.Recordset.MoveLast End If Case 3 Data1.Recordset.MoveLast End Select Call Capnhat End Sub Private Sub CmdSua_Click() Txtmahocvan.Enabled = True Txthocvan.Enabled = True Txtghichu.Enabled = True nut = 3 MDIHethong.StatusBar1.Panels(2).Text = "Sửa dữ liệu" End Sub Private Sub CmdThem_Click() Txtmahocvan.Enabled = True Txthocvan.Enabled = True Txtghichu.Enabled = True nut = 1 MDIHethong.StatusBar1.Panels(2).Text = "Thêm dữ liệu" End Sub Private Sub CmdThoat_Click() Unload Me End Sub Private Sub CmdThoat_LostFocus() Txtmahocvan.SetFocus End Sub Private Sub CmdXoa_Click() Txtmahocvan.Enabled = True Txthocvan.Enabled = False Txtghichu.Enabled = False nut = 2 MDIHethong.StatusBar1.Panels(2).Text = "Xoá dữ liệu" End Sub Private Sub DBGrid1_Click() On Error GoTo loi Txtmahocvan.Text = Data1.Recordset.Fields(0).Value Txthocvan.Text = Data1.Recordset.Fields(1).Value Txtghichu.Text = Data1.Recordset.Fields(2).Value loi: End Sub Private Sub Form_Load() Data1.DatabaseName = App.Path & "\nhansu.mdb" Data1.RecordSource = "qhocvan" Data1.Refresh Call Capnhat DBGrid1.Columns(1).Width = 2000 DBGrid1.Columns(2).Width = 3000 End Sub Private Sub Form_Unload(Cancel As Integer) MDIHethong.StatusBar1.Panels(2).Text = "" End Sub Private Sub Txthocvan_GotFocus() Txthocvan.SelStart = 0 Txthocvan.SelLength = Len(Txthocvan.Text) End Sub Private Sub Txtghichu_GotFocus() Txtghichu.SelStart = 0 Txtghichu.SelLength = Len(Txtghichu.Text) End Sub Private Sub Txtmahocvan_GotFocus() Txtmahocvan.SelStart = 0 Txtmahocvan.SelLength = Len(Txtmahocvan.Text) End Sub Sub Capnhat() On Error GoTo loi Txtmahocvan.Text = Data1.Recordset.Fields(0).Value Txthocvan.Text = Data1.Recordset.Fields(1).Value Txtghichu.Text = Data1.Recordset.Fields(2).Value loi: End Sub TàI liệu tham khảo 1. Microsof ViSual BaSic 6.0 & Lập trình cơ sở dữ liệu -Nguyễn Thị Ngọc Mai - Nhà xuất bản giáo dục. 2. Cơ sở dữ liệu kiến thức và thực hành-Vũ Đức Thi - NXB thống kê 3. Phân tích và thiết kế hệ thống tin học - Nhà xuất bản giao thông vận tải Kết luận Mục đích của đồ án này là tin học hoá việc quản lý nhân sự của Chi cục Dự trữ Sóc Sơn, thực hiện tự động hoá một số công việc thủ công. Khi đưa chương trình vào ứng dụng phần thao tác của người sử dụng chỉ đơn giản là số liệu các thông tin gốc của đối tượng cần quản lý. Hệ thống tự động hoá xử lý theo các yêu cầu, hệ thống con cho phép in các báo cáo, các danh sách thống kê, đảm bảo cung cấp thông tin chính xác, kịp thời và trung thực phục vụ cho công tác quản lý và chỉ đạo. Là một đề tài nghiên cứu có ứng dụng thực tế, kinh nghiệm nghiên cứu chuyên môn chưa nhiều, hơn nữa trong một thời gian ngắn vừa nghiên cứu, vừa viết chương trình, vì vậy chương trình không tránh khỏi những mặt hạn chế và thiếu xót. Xin kính mong được sự chỉ bảo và góp ý giúp tôi hoàn thành đồ án này. Một lần nữa tôi xin chân thành cảm ơn thày giáo Hồ Văn Hương, cảm ơn các thầy, các cô đã hướng dẫn trực tiếp tôi hoàn thành đồ án này, tôi cũng xin chân thành cảm ơn thầy giáo phản biện và các thầy cô, bạn bè đồng nghiệp đã giúp đỡ tôi hoàn thành bản đồ án này./. Mục lục Tên mục trang. *lời cảm ơn 1 *đặt vấn đề 2 chương I :khảo sát hệ thống hiện tạI +Hệ thống tổ chức cán bộ và hoạt đọng của cơ quan 3 +Cách thức tổ chức và lưu trữ thông tinhiện tại 6 +Danh sách cán bộ công chức năm 2003 10 +Danh sách cán bộ nâng lương năm 2003 12 +Danh sách đảng viên năm 2003 12 +Danh sách theo trình độ nhân viên 13 chương II : tin ứng dụng của tin học quản lý +Một số khái niệm cơ bản về quản lý và ứng dụng tin học trong công tác quản lý 15 +Giới thiệu về mic rosoft access 20 +Ngôn ngữ vi sua basic 6.0 27 +Mối liên hệ giữa access và visual basic 31 chương III : thiết kế cơ sở dữ liệu. +Thông tin vào ra của hệ thống 33 +Thiết kế cơ sở dữ liệu cho hệ thống quản lý cán bộ 35 chương IV : phân tích và thiết kế hệ thống . +Mục đích 42 +Sơ đồ chức năng của hệ thống quản lý cán bộ 43 +Sơ đồ luồng dữ liệu 44 chương v : các form chính và các code chương trình. +Một số form chính của chương trình 51 +Một số code của chương trình 51 *tàI liệu tham khảo 81 *kếtluận 82 *mục lục 83 *nhần xét của giáo viên 85

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

  • doc25872.DOC
Tài liệu liên quan