Luận văn Ứng dụng tin học trong công tác quản lý các đoàn cán bộ đào tạo nước ngoài

Đây là ngôn ngữ lập trình thông dụng, nó được thiết kế dựa trên các đối tượng và có khả năng lập trình hướng đối tượng mạnh. Visual Basic (VB) có một số đặc điểm sau: - Năng lực: VB có khả năng tạo ra các phần mềm phức tạp với tất cả các kỹ thuật truy xuất dữ liệu có sẵn. - Tính linh hoạt: Người lập trình không chỉ dùng VB để truy xuất dữ liệu mà còn có thể thực hiện nhiều công việc khác nhau như viết một bộ xử lý văn bản, e-mail,. - Tính thân thiện: Là ngôn ngữ lập trình phổ cập nhất thế giới, nó được hỗ trợ vững chắc của các công ty phần mềm trên thế giới. - Tính phổ dụng: VB là ngôn ngữ rất phổ dụng nên người lập trình có thể tìm hiều học hỏi nó một cách dễ dàng qua sách báo, tạp chí, internet, đồng thời có thể sử dụng các công cụ bổ xung của nhà cung cấp thứ ba. - Ưu điểm của Visual Basic là thiết kế giao diện đẹp, xử lý linh hoạt, tính bảo mật và an toàn cao. Có thể thiết kế ở môi trường nhiều người dùng, có thể liên kết với nhiều hệ quản trị cơ sở dữ liệu. - Chương trình thiết kế trên Visual Basic dễ dàng cài đặt và phát triển, tận dụng được chế độ đồ hoạ của Windows. Chính vì thế em đã chọn VB làm ngôn ngữ lập trình cho chường trình của mình.

doc105 trang | Chia sẻ: oanh_nt | Lượt xem: 1408 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Luận văn Ứng dụng tin học trong công tác quản lý các đoàn cán bộ đào tạo nước ngoài, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
thông tin ra: Bước 1: Xác định các đầu ra + Liệt kê toàn bộ các thông tin đầu ra. + Nội dung, khối lượng, tần suất và nơi nhận của chúng. Bước 2: Xác định các tệp cần thiết cung cấp đủ dữ liệu cho việc tạo ra từng đầu ra Liệt kê các phần tử thông tin trên đầu ra Trên mỗi thông tin đầu ra có nhiều phần tử thông tin. Phân tích viên liệt kê toàn bộ các thuộc tính thành 1danh sách. + Đánh dấu các thuôc tính lặp - là những thuộc tính có thể nhận nhiều giá trị dữ liệu. Những thuộc tính lặp kí hiệu là R (Repeatable) + Đánh dấu các thuộc tính thứ sinh – là những thuộc tính được tính toán ra hoặc suy ra từ các thuộc tính khác. Những thuộc tính này được kí hiệu bằng chữ S (secondary). Những thuộc tính thứ sinh sẽ loại bỏ khỏi danh sách. + Những thuộc tính không phải thứ sinh thì là những thuộc tính cơ sở. Gạch chân các thuộc tính khoá là những phần tử định danh cho các đối tượng thông tin. Sau đó thực hiện việc chuẩn hoá dữ liệu 1. Khái niệm chuẩn hoá - Chuẩn hoá là quá trình khảo sát các danh sách thuộc tính, phân tích chúng để đưa về một dạng sao cho: - Không có sự lặp lại các thuộc tính ở các bảng khác nhau trừ thuộc tính khoá và thuộc tính kết nối. - Loại bỏ những thuộc tính có giá trị là kết quả tính toán của những thuộc tính khác. - Không mang nhiều nghĩa với nhiều người sử dụng. Tức là không có vai trò giống nhau giữa các tập thực thể. 2. Phụ thuộc hàm Phụ thuộc hàm là khái niệm quan trọng khi xem xét chuẩn hoá. - Với mọi giá trị củakhóa tại thời điểm đang xét chỉ có tương ứng một giá trị cho từng thuộc tính khác trong bảng. - Như vậy, nếu có thuộc tính không phụ thuộc hàm vào khoá thì nó phải nằm trong một bảng thực thể khác. Quá trình chuẩn hóa được thực hiện trên khái niệm phụ thuộc hàm. Thiết kế cơ sở dữ liệu bằng phương pháp mô hình hoá Các khái niệm cơ bản: Thực thể (Entity) là những đối tượng cụ thể hoặc trừu tượng trong thế giới thực mà ta muốn lưu trữ thông tin về chúng. Một thực thể có thể là nhân sự, tổ chức, có thể là tài sản hữu hình hoặc vô hình. Nhưng nó là một tập hợp các đối tượng có cùng đặc trưng chứ không phải một đối tượng riêng biệt. Trong thiết kế cơ sở dữ liệu ta thường biểu diễn thực thể bằng một hình chữ nhật có ghi tên thực thể bên trong. Liên kết (association): Một thực thể trong thực tế không tồn tại độc lập với các thực thể khác. Có sự liên hệ qua lại giữa các thực thể khác nhau. Cũng có thể gọi là có quan hệ với nhau. Khái niệm liên kết hay quan hệ được dùng để trình bày, thể hiện những mối liên hệ tồn tại giữa các thực thể. Số mức độ của liên kết Khái niệm này nói lên rằng: Mỗi lần xuất của thực thể A tương tác với bao nhiêu lần xuất của thực thể B và ngược lại. Các mức độ của liên kết + Liên kết loại Một- Một (1@1) Một lần xuất thực thể A liên kết với một lần xuất của thực thể B và ngược lại. + Liên kết loại Một- Nhiều (1@N) Một lần xuất của thực thể A được liên kết với một hoặc n hiều lần xuất của thực thể B và mỗi lần xuất của thực thể B chỉ liên kết với duy nhất một lần xuất của thực thể A. + Liên kết loại Nhiều-Nhiều (N@M ) Mỗi lần xuất của thực thể A liên kết với một hoặc nhiều lần xuất của thực thểB và mỗi lần xuất hiện của thực thể B liên kết với 1 hoặc nhiều lần xuất của thực thể A. Khả năng tuỳ chọn của liên kết Trong thực tế, có những lần xuất của thực thể A không tham gia vào liên kết đang tồn tại giữa thực thể A với thực thể B. Trường hợp này gọi là khả năng tuỳ chọn của liên kết. Chiều của một liên kết Chỉ ra số lượng các thực thể tham gia vào liên kết (quan hệ). Có 3 loại: Quan hệ 1 chiều; Quan hệ 2 chiều; Quan hệ nhiều chiều. + Quan hệ một chiều: là quan hệ mà mỗi lần xuất của 1 thực thể được quan hệ được quan hệ với 1 lần xuất của chính thực thể đó. + Quan hệ 2 chiều: là quan hệ mà trong đó có 2 thực thể liên kết với nhau. + Quan hệ nhiều chiều: là một quan hệ có nhiều hơn 2 thực thể tham gia. Thuộc tính Để mô tả các đặc trưng của một thực thể hoặc một quan hệ. Có 3 loại thuộc tính: Thuộc tính định danh, Thuộc tính mô tả và Thuộc tính quan hệ + Thuộc tính định danh (Identifier) là thuộc tính dùng để xác định một cách duy nhất một lần xuất của thực thể. + Thuộc tính mô tả (Description) dùng để mô tả về thực thể. + Thuộc tính quan hệ (Relationship) dùng để chỉ đến một lần xuất nào đó trong thực thể có quan hệ. Quy tắc: Một quan hệ được định danh bằng việc ghép định danh của các thực thể tham gia vào quan hệ. Chuyển đổi sơ đồ khái niệm dữ liệu sang sơ đồ cấu trúc dữ liệu - Sau khi phân tích viên có được sơ đồ dữ liệu mô tả hoạt động của doanh nghiệp thì cần chuyển nó thành sơ đồ cấu trúc dữ liệu (DSD) - Mô hình chuyển đổi các mô hình quan hệ thực thể sang sơ đồ cấu trúc dữ liệu. Chuyển đổi các quan hệ một chiều Chuyển đổi các quan hệ một chiều 1@1 Trong trường hợp có một quanh hệ một chiều, ta sẽ tạo ra một tệp chung duy nhất để biểu diễn thực thể đó. Khoá của tệp là định danh của thực thể. Các quan hệ tồn tại giữa các lần xuất được thể hiện bởi việc dùng lại thuộc tính khoá. Giá trị của khoá được dùng lại này có thể rỗng nếu quan hệ là tuỳ chọn. Chuyển đổi quan hệ một chiều loại 1@N Từ một quan hệ loại 1@N ta tạo ra một tệp thể hiện kiểu thực thể đó. Khoá của bảng là thuộc tính định danh của thực thể. Quan hệ sẽ được thể hiện bằng cách nhắc lại khóa như một là một thuộc tính không khoá. Giá trị mà ta sử dụng hai lần có thể là rỗng nếu quan hệ là tuỳ chọn. Chuyển đổi quan hệ một chiều loại N@M Một quan hệ một chiều loại N@M được chuyển thành 2 tệp. 1 tệp thể hiện thực thể và 1 tệp thể hiện quan hệ. Khóa của tệp quan hệ được cấu thành từ 2 định danh của 2 thực thể. Chuyển đổi quan hệ hai chiều Quan hệ 2 chiều loại 1@1 Đối với quan hệ này chỉ cần phải tạo ra 2 tệp ứng với 2 thực thể. Tuỳ theo sự lựa chọn của phân tích viên mà thuộc tính định danh của thực thể này là thuộc tính phi khoá của tệp kia. Trong trường hợp sự tham gia của 1 thực thể vào quan hệ là tuỳ chọn thì tốt nhất là đặt khoá vào tệp ứng với thực thể bắt buộc trong quan hệ để tránh để thuộc tính khoá nhận giá trị rỗng. b. Quan hệ 2 chiều loại 1@N Trường hợp này ta chỉ tạo ra 2 tệp. Mỗi tệp ứng với 1 thực thể. Khoá của tệp ứng với thực thể có số mức quan hệ 1 được dùng như khoá quan hệ trong tệp ứng với thực thể có số mức N. Khoá quan hệ có thể nhận giá trị rỗng nếu thực thể có số mức N là tuỳ chọn trong quan hệ. c. Quan hệ 2 chiều loại N@M Trong trường hợp này ta phải tạo ra 3 tệp: 2 tệp mô tả 2 thực thể và 1 tệp mô tả quan hệ. Khoá của tệp mô tả quan hệ được tạo thành bởi việc ghép khoá của các thực thể tham gia vào quan hệ. II.3.2 Thiết kế và xử lý logic Thiết kế lô gic xử lý Để làm rõ những quan hệ trong cơ sở dữ liệu. Làm rõ những yếu tố mang tính chất tổ chức như: Ai thực hiện, Thực hiện khi nào? ở đâu? và Như thế nào? Một hệ thống thông tin bao gồm các xử lý liên quan đến 3 loại hoạt động. Đó là: Thực hiện tra cứu thông tin. Cập nhật dữ liệu. Hợp lệ hoá dữ liệu. - Vì vậy, giai đoạn này cần quan tâm xem Hệ thống làm gì và Để làm gì? II.4 Đề xuất các phương án của giải pháp II.4.1 Xác định các ràng buộc tin học và tổ chức Ràng buộc về tổ chức Các ràng buộc về tin học II.4.2 Xây dựng các phương án giải pháp Xác định biên giới cho phần tin học hoá Phân chia phần thủ công và phần tin học hoá của hệ thống thông tin. - Xác định cách thức xử lý II.4.3 Đánh giá các phương án giải pháp Có nhiều cách phân tích, đánh giá các phương án giải pháp Phân tích chi phí / lợi ích - Các chi phí / lợi ích có thể phân loại: Trực tiếp, Gián tiếp; Biến động, Cố định; Hữu hình, Vô hình. - Mỗi phương án tính ra các chỉ tiêu như: Tổng chi phí, Thu nhập tích luỹ, Thời gian hoàn vốn và so sánh lựa chọn phương án hiệu quả nhất. Phân tích đa tiêu chuẩn - Xác định các tiêu chuẩn cần xem xét. - Cho mỗi tiêu chuẩn một trọng số thể hiện tầm quan trọng. Có thể để tổng các trọng số =100 - Đối với mỗi phương án xem từng tiêu chuẩn đạt đến mức nào và cho điểm từ 0 đến 10 - Tính điểm cho từng tiêu chuẩn bằng cách nhân trọng số với mức đánh giá. - Cộng tổng điểm cho mỗi phương án. Tổng điểm của từng phương án là chỉ tiêu tổng hợp để so sánh, đánh giá các phương án với nhau. II.5 Giai đoạn thiết kế vật lý ngoài Thiết kế vật lý các đầu ra: Các đầu ra trên màn hình, các đầu ra trên giấy và các đầu ra khác. Mỗi loại đầu ra có những đặc trưng riêng do đó cần lưu ý khi thiết kế cho phù hợp. Thiết kế các đầu vào: Lựa chọn phương tiện nhập liệu phù hợp. Nhập từ 1 tài liệu nguồn qua thiết bị cuối, Nhập liệu thông qua âm thanh, tiếng nói hay dạng mã số, mã vạch. Từ đó thiết kế màn hình nhập liệu cho phù hợp. Thiết kế cách thức giao tác với phần tin học hoá Thiết kế viên nên kết hợp tốt cả 4 cách thức: Giao tác bằng tập hợp lệnh, Giao tác bằng các phím trên bàn phím, Giao tác qua thực đơn, Giao tác dựa vào các biểu tượng. II.6 Triển khai hệ thống thông tin Gồm các bước: II.6.1 Thiết kế vật lý trong Mục tiêu của thiết kế vật lý trong là đảm bảo độ chính xác của thông tin, mềm dẻo và ít chi phí. Bao gồm các thiết kế sau: Thiết kế cơ sở dữ liệu vật lý trong: Kết hợp chỉ số hoá các tệp và thêm các dữ liệu hỗ trợ cho các tệp. Thiết kế vật lý trong các xử lý: Theo kỹ thuật phát triển chương trình phân cấp: Vào – Xử lý – Ra. II.6.2 Lập các chương trình máy tính - Lựa chọn ngôn ngữ lập trình và phần mềm hỗ trợ lập trình. - Tiến hành lập trình. II.6.3 Tiến hành thử nghiệm phần mềm Phối hợp các cách thức thử nghiệm để hạn chế sai xót tìm và sửa lỗi chương trình II.7 Giai đoạn cài đặt bảo trì và khai thác hệ thống II.7.1 Cài đặt Đây là quá trình chuyển đổi từ hệ thống cũ sang hệ thống mới sao cho không gây sáo trộn cho tổ chức quá nhiều. Nên kết hợp các phương pháp cài đặt. II.7.2 Chuyển đổi các tệp và cơ sở dữ liệu Đây là công việc khá quan trọng nhất là đối với những hệ thống thông tin cải tiến từ hệ thống cũ. II.7.3 Khai thác và bảo trì Đây là công việc của tổ chức tiến hành sử dụng và khai thác hệ thống thông tin. Đưa kết quả của các bước trên vào sử dụng. II.7.4 Đánh giá của người sử dung và tổ chức Đây là những đánh giá rất quan trọng và có ý nghĩa hiện thực cao. Nó là một cơ sở để các nhà phân tích và thiết kế hệ thống tiếp tục cải tiến và phát triển hệ thống thông tin. Như vậy phát triển một hệ thống thông tin bao gồm việc phân tích hệ thống đang tồn tại, thiết kế một hệ thống mới, thực hiện và tiến hành cài đặt nó. Phân tích một hệ thống bắt đầu từ việc thu thập dữ liệu và chỉnh đốn chúng để đưa ra được chẩn đoán về tình hình thực tế. Thiết kế là nhằm xác định các bộ phận của hệ thống mới có khẳ năng cải thiện tình trạng hiện tại và xây dựng các mô hình logic và mô hình vật lý ngoài của hệ thống đó. Việc thực hiện hệ thống thông tin liên quan tới xây dựng mô hình vật lý trong của hệ thống mới và chuyển mô hình đó sang ngôn ngữ tin học. Cài đặt một hệ thống là tích hợp nó vào hoạt động của tổ chức. Chương III Phân tích thiết kế hệ thống thông tin quản lý đoàn cán bộ đào tạo nước ngoài I. phân tích hệ thống nghiệp vụ 1. Phát biểu khái quát bài toán Hàng năm, ngành dân số gia đình và trẻ em ( DS-GĐ&TE) Việt Nam cử nhiều cán bộ ra nước ngoài học tập, tham quan, khảo sát. Để ngành dân số làm tốt quản lý công tác đào tạo nước ngoài, cần phải quản lý tốt thông tin về các đoàn, những cán bộ trong các đoàn đã ra nước ngoài công tác, về: Họ tên, xuất cảnh khi nào, hộ chiếu, thời hạn ở nước ngoài, mục đích chuyến đi..v..v. Cuối mỗi năm, tự động thống kế số người đã xuất cảnh trong năm. Những thông tin nói trên do vụ hợp tác quốc tế ( vụ HTQT) , ủy ban quốc gia DS-GĐ&TE quản lý và sử dụng cho những hoạt động nghiệp vụ của mình. 2. Các quy trình nghiệp vụ căn bản Khi có những lớp thăm quan, khảo sát, học tập ở nước ngoài, vụ HTQT phối hợp với vụ tổ chức cán bộ đào tạo ( vụ TC-CB-ĐT) và cơ quan nghiệp vụ chuyên môn đề cử người tham gia. Lãnh đạo ủy ban quốc gia DS-GĐ&TE ra quyết định cử cán bộ đi công tác nước ngoài. Vụ HTQT làm các thủ tục cần thiết để cán bộ đi công tác nước ngoài như xin cấp hộ chiếu, xin VISA nhập cảnh đến nước đào tạo. Vụ HTQT phối hợp giúp cán bộ chọn tuyến bay, hãng hàng không, mua vé máy bay. Cán bộ đi công tác nước ngoài. Hết thời hạn công tác, họ trở lại cơ quan, làm báo cáo về kết quả chuyến công tác. Số lượng cán bộ đi công tác nước ngoài khoảng gần 200 người / năm. 3. Mô hình tổ chức liên quan trực tiếp đến bài toán Vụ HTQT phân công một cán bộ chuyên viên theo dõi và làm những thủ tục cần thiết cho đoàn đào tạo nước ngoài. Do vậy, phần mềm quản lý đoàn đào tạo nước ngoài chỉ dành cho một người sử dụng và có thể chỉ cài trực tiếp trên máy làm việc của cán bộ chuyên viên này. Tuy vậy, để lãnh đạo vụ có thể trực tiếp tìm những thông tin cần thiết, CSDL về đoàn được đặt trên máy chủ của mạng LAN cơ quan ủy ban quốc gia DS-GĐ&TE 4. Xác định yêu cầu kỹ thuật a) Môi trường kỹ thuật của hệ thống Khái quát về môi trường kỹ thuật: Máy tính từ 586 trở lên, tối thiểu 16 MB RAM được nối mạng trong ủy ban. - Môi trường truyền thông trong phạm vi tổ chức: Mạng LAN và điện thoại. - Khả năng phát triển của môi trường kỹ thuật: Các máy trạm của mạng LAN sẽ được nâng cấp kịp thời cho phù hợp với yêu cầu của thực tế khách quan. b ) Môi trường ứng dụng và đặc điểm người sử dụng: Sử dụng thành thạo máy tính và mạng máy tính. c) Ngôn ngữ lập trình Visual Basic: Đây là ngôn ngữ lập trình thông dụng, nó được thiết kế dựa trên các đối tượng và có khả năng lập trình hướng đối tượng mạnh. Visual Basic (VB) có một số đặc điểm sau: - Năng lực: VB có khả năng tạo ra các phần mềm phức tạp với tất cả các kỹ thuật truy xuất dữ liệu có sẵn. - Tính linh hoạt: Người lập trình không chỉ dùng VB để truy xuất dữ liệu mà còn có thể thực hiện nhiều công việc khác nhau như viết một bộ xử lý văn bản, e-mail,... - Tính thân thiện: Là ngôn ngữ lập trình phổ cập nhất thế giới, nó được hỗ trợ vững chắc của các công ty phần mềm trên thế giới. - Tính phổ dụng: VB là ngôn ngữ rất phổ dụng nên người lập trình có thể tìm hiều học hỏi nó một cách dễ dàng qua sách báo, tạp chí, internet, đồng thời có thể sử dụng các công cụ bổ xung của nhà cung cấp thứ ba. - Ưu điểm của Visual Basic là thiết kế giao diện đẹp, xử lý linh hoạt, tính bảo mật và an toàn cao. Có thể thiết kế ở môi trường nhiều người dùng, có thể liên kết với nhiều hệ quản trị cơ sở dữ liệu... - Chương trình thiết kế trên Visual Basic dễ dàng cài đặt và phát triển, tận dụng được chế độ đồ hoạ của Windows... Chính vì thế em đã chọn VB làm ngôn ngữ lập trình cho chường trình của mình. d) Hệ quản trị cơ sở dữ liệu Access Ưu điểm của hệ quản trị cơ sở dữ liệu Microsoft Access - Sau khi nghiên cứu các nghiệp vụ của bài toán quản lý đoàn cán bộ đào tạo nước ngoài và các ngôn ngữ lập trình thông dụng hiện nay, em quyết định chọn thiết kế CSDL ở Microsoft Access và lập trình chương trình bằng Visual Basic 6.0 - Ưu điểm của Access là thiết kế cơ sở dữ liệu và các mối quan hệ giữa các thực thể nhanh chóng, rõ ràng và quản lý tốt. Mặt khác với bài toán này, lượng lưu trữ hàng năm không quá lớn, ( chỉ tối đa 200 người đi trong 1 năm), và người sử dụng chỉ trong khuôn khổ là 1 cán bộ chuyên viên nhập liệu, lãnh đạo vụ và lãnh đạo uỷ ban, thế nên rất thích hợp để sử dụng hệ quản trị cơ sở dữ liệu Access. II. phân tích các quy trình nghiệp vụ 1. Quy trình lần lượt thực hiện theo các bước sau: Căn cứ theo kế hoạch có từ đầu năm hoặc tình thế mới xuất hiện về việc đào tạo, tham quan khảo sát ở nước ngoài; vụ HTQT ( vụ hợp tác quốc tế) phối hợp vụ TC-CB-ĐT (vụ tổ chức cán bộ đào tạo) và cơ quan chuyên môn nghiệp vụ đề cử nhân sự trình lãnh đạo ủy ban phê duyệt. Lãnh đạo ủy ban phê duyệt và ra quyết định cử cán bộ đi công tác nước ngoài. Cán bộ chuyên viên vào sổ theo dõi quyết định cử đi công tác nước ngoài của vụ HTQT. Vụ HTQT hoàn tất các thủ tục như xin hộ chiếu, visa, chuyến bay ra nước ngoài. Vào sổ những thông tin bổ sung về chuyến đi để theo dõi thực hiện. Cán bộ đi công tác nước ngoài, khi học xong trở về nước phài làm báo cáo kết quả học tập. Vụ HTQT vào sổ ngày cán bộ thực tế trở về. 2. Sơ đồ dòng dữ liệu Nhập thông tin về đoàn ra Lưu trữ Tra cứu, tồng hợp báo cáo 3. Sơ đồ chức năng nghiệp vụ Nhập thông tin mới Lưu trữ Khai thác a. Quy trình nhập thông tin mới Bước 1: Lập danh sách đề cử người đi nước ngoài - Điều kiện bắt đầu: Có nhu cầu cử người đi công tác nước ngoài - Thao tác thực hiện: Vụ HTQT, vụ TC-CB-ĐT và đơn vị chuyên môn nghiệp vụ phối hợp đề cử - Kết quả đầu ra: Danh sách đề cử trình lãnh đạo ủy ban phê duyệt - Người thực hiện: Lãnh đạo vụ HTQT, vụ TC-CB-ĐT và đơn vị chuyên môn nghiệp vụ - Thời gian thực hiện: Căn cứ kế hoạch có từ đầu năm hoặc tình thế mới xuất hiện về việc đào tạo, tham quan khảo sát ở nước ngoài Bước 2: Làm những thủ tục cần thiết cho cán bộ xuất cảnh - Điều kiện bắt đầu: Có quyết định cử đi công tác nước ngoài của ủy ban - Thao tác thực hiện: vụ HTQT làm hộ chiếu, visa, liên hệ chuyến bay (nếu có yêu cầu) - Kết quả: Cán bộ được cử đi công tác có thể sẵn sàng lên đường - Người thực hiện: Cán bộ chuyên trách của vụ - Thời gian thực hiện: Khi có quyết định Bước 3: Vào sổ theo dõi tại vụ HTQT - Điều kiện thực hiện: Có quyết định cử cán bộ đi công tác nước ngoài của lãnh đạo ủy ban - Thao tác thực hiện: Vào sổ theo dõi các nội dung như doanh sách đoàn đi công tác, nơi đến, thời gian đi và về,... - Kết quả: Thông tin đầy đủ của quyết định được lưu trữ trong sổ theo dõi - Người thực hiện: Cán bộ chuyên trách - Thời gian thực hiện: Khi có quyết định Bước 4: Ghi bổ sung thông tin vào sổ theo dõi - Điều kiện bắt đầu: Cán bộ đi công tác nước ngoài trở về và gửi báo cáo về chuyến đi cho thủ trưởng trực tiếp của họ - Thao tác thực hiện: Mở sổ theo dõi điền thêm ngày về của đoàn - Kết quả: Thông tin đầy đủ về đoàn đi công tác được lưu trữ - Người thực hiện: Cán bộ chuyên trách b. Quy trình khai thác - Điều kiện bắt đầu: Mỗi khi có nhu cầu - Thao tác thực hiện: -Kiểm tra xem một người có tên A đã ra nước ngoài chưa? nếu đã ra thì cung cấp thêm các thông tin khác như: Ra mấy lần, môi lần ra làm gì? đi đâu? ngày đi, ngày về?.... - Các thao tác khác III. Phân tích các yêu cầu 1. Xác định dữ liệu vào ra của hệ thống Thông tin đầu vào cần được quản lý Ngày quyết định đoàn đi công tác. Người kí quyết định. Đơn vị tài trợ ( ngân sách chính phủ, dự án...). Mức tài trợ ( theo ngày hay tháng). Các đơn vị chính và đơn vị phối hợp. Số người đi trong đoàn. Năm quyết định. Họ và tên cán bộ. Nơi công tác của cán bộ. Ngày sinh. Chức vụ. Các ghi chú khác về cán bộ. VISA của cán bộ. Loại VISA. Ngày cập VISA. Ngày hết hạn. Hộ chiếu của cán bộ. Loại hộ chiếu. Ngày cấp hộ chiếu. Ngày hết hạn. Có hay không được miễn thị thực. Nội dung chuyến đi. Thời gian đi. Nơi đến ( hành trình đến có thể một hay nhiều nước). Tuyến bay. Hãng hàng không. Đơn giá hành trình. b. Thông tin đầu ra. Hàng năm thống kê báo cáo: Số lượng người đi. Đoàn đi ( đào tạo, làm việc, hội thảo, ký kết tham gia cuộc họp LHQ). Số lượng hộ chiếu hết hạn và sắp hết hạn. b) Tìm kiếm theo một số tiêu chí như họ tên, cơ quan, nước đến, đoàn đi, ..v..v. 2. Yêu cầu chức năng nghiệp vụ - Tổ chức các chức năng nghiệp vụ theo từng nhóm riêng để tiện thao tác -Phân loại và phân nhóm chức năng 3. Yêu cầu về tổ chức người sử dụng hệ thống 3.1 Tổ chức và phân nhóm người sử dụng - Nhóm người sử dụng: định nghĩa mọi thành viên của vụ HTQT thuộc nhóm người sử dụng chương trình này ở mức chỉ đọc - Trao thêm quyền cho một số người nhất định đối với những dữ liệu của chương trình như quyền sửa đồi, bổ sung 3.2 Quan hệ giữa nhóm người sử dụng và nhóm chức năng 3.3 Các chức năng quản trị người sử dụng: - Thêm bớt người sử dụng - Thêm bớt quyền của một cá nhân iv. Phân tích hệ thống quản lý đoàn đào tạo 1. Sơ đồ chức năng nghiệp vụ hệ thống Quản lý đoàn Hệ thống Cập nhật Tìm kiếm, tra cứu Báo cáo Hướng dẫn sử dụng a. Chức năng hệ thống: Bao gồm khai báo hệ thống, quản lý người sử dụng, sao lưu phục hồi dữ liệu, thoát khỏi hệ thống. Ta có thể minh hoạ bằng sơ đồ sau: Hệ thống Khai báo hệ thống Quản lý người sử dụng Thoát khỏi chương trình Sao lưu và phục hồi dữ liệu b. Sơ đồ mô tả chức năng cập nhật: CậP NHậT Nhập quyết định (đoàn) Nhập chuyến đi Nước đến Nhập chương trình đi Nhập hộ chiếu Nhập VISA Nhập cán bộ c. Sơ đồ m ô tả chức năng tìm kiêm tra cứu: Tìm kiếm, tra cứu Tìm theo đoàn Tìm theo nước Tìm theo cán bộ Tìm theo chuyến đi Tìm theo chương trình đi d. Sơ đồ mô tả chức năng báo cáo: Báo cáo Danh sách các đoàn đã đi Kết quả chuyến đi Danh sách cán bộ từng đoàn đi Danh sách visa cán bộ Danh sách hộ chiếu cán bộ Lịch biểu từng đoàn đi e. Sơ đồ mô tả chức năng trợ giúp Hướng dẫn sử dụng Xem giới thiệu chương trình Cài đặt Sử dụng phím tắt 2. Thiết kế logic Quản lý đoàn Vụ HTQT & lãnh đạo ủy ban Đoàn đi đào tạo nước ngoài. Quyết định đoàn đi Các thông tin về việc đi Kết quả đi Các báo cáo Hồ sơ đoàn Các quyết định Kết quả học tập Các thông tin đoàn 2.1 Sơ đồ ngữ cảnh hệ thống 2.2 Sơ đồ DFD mức 0 Danh sách C B thực đi TT bổ sung đoàn đi Lãnh đạo ủy ban Danh sách đề cử cán bộ 1.0 quyết định Danh sách cán bộ thực đi Vụ HTQT & vụ khác Cán bộ chuyên viên 2.0 Nhập thông tin Thông tin đầy đủ của quyết định CSDL đoàn Các báo cáo Kq đi 4.0 Xử lý thông tin TT đầy đủ đoàn về Kq đi Đoàn đi 3.0 Báo cáo 2.3 Phân rã sơ đồ 1.0 Vụ HTQT & các đơn vị chuyên môn Nhu cầu cử CB đi công tác 1.1 Đề cử Danh sách đề cử Cán bộ chuyên viên 1.2 Quyết định Ds cán bộ thực đi CSDL Đoàn Biên giới tin học hoá Lãnh đạo uỷ ban Danh sách đề cử 2.4 Phân rã sơ đồ 2.0 Vụ HTQT & các vụ liên quan QĐ cử cán bộ đi công tác 2.1 Làm hộ chiếu, visa, chuyến bay HC, VS, CB đã làm Đoàn đi 2.2 Theo dõi QĐ cử đi CSDL đoàn 2.3 Cập nhật bổ sung thông tin đi DS cán bộ đi Cán bộ chuyên viên Thông tin xử lý 3. Thiết kế cơ sở dữ liệu bằng phương pháp mô hình hoá a. Mô hình hoá quan hệ thực thể: Đoàn Có Chương trinh đi Tham gia Cán bộ Được cấp Hộ chiếu Có Visa Đi Chuyến đi Đến Nước 1 N N 1 1 N 1 N N 1 1 N b. Danh sách và cấu trúc các bảng của cơ sở dữ liệu: Từ mô hình quan hệ thực thể trên ta có thể thiết kế cơ sở dữ liệu như sau: - Bảng DOAN ( Đoàn ) Tên trường Kiểu dữ liệu Độ lớn PK FK Mô tả MA_QD Text 10 * Mã quyết định NGAY_QD Date time dd/mm/yyyy Ngày quyêt định NGUOI_KI_QD Text 30 Người kí QĐ NGUON_KINH_PHI Text 20 Nguồn kinh phí DV_CHINH Text 35 Đơn vị chính DV_PHOI_HOP Text 35 Đơn vị phối hợp SO_NGUOI Number Long interger Số người -Bảng CAN_BO ( Cán bộ ) Do DOAN và CAN_BO là quan hệ 2 chiều loại N@M do đó ngoài 2 tệp mô tả 2 thực thể này còn 1 tệp mô tả quan hệ nữa là CHUONG_TRINH_DI Bảng CAN_BO có các trường như sau: Tên trường Kiểu dữ liệu Độ lớn PK FK Mô tả MA_CB Text 15 * Mã cán bộ HO_TEN Text 50 Họ và tên cán bộ NGAY_SINH Date time dd/mm/yyyy Ngày sinh GIOI_TINH Yes/ No Giới tính DON_VI Text 35 Đơn vị CHUC_VU Text 20 Chức vụ GHI_CHU Text 150 Ghi chú - Bảng CHUONG_TRINH_DI là tệp mô tả quan hệ giữa bảng DOAN và CAN_BO bảng có các trường sau: Tên trường Kiểu dữ liệu Độ lớn PK FK Mô tả MA_QD Text 10 * Mã quyết định MA_CB Text 15 * Mã cán bộ NOI_DUNG Text 50 Nội dung KET_QUA Text 50 Kết quả -Bảng NUOC ( Nước ) Do DOAN và NUOC là quan hệ 2 chiều loại N@M do đó ngoài 2 tệp mô tả 2 thực thể này còn 1 tệp mô tả quan hệ nữa là CHUYEN_DI Bảng NUOC có các trường như sau: Tên trường Kiểu dữ liệu Độ lớn PK FK Mô tả MA_NUOC Text 15 * Mã nước TEN_NUOC Text 20 Tên nước Bảng CHUYEN_DI là tệp mô tả quan hệ giữa bảng DOAN và NUOC bảng có các trường sau: Tên trường Kiểu dữ liệu Độ lớn PK FK Mô tả MA_QD Text 10 * Mã quyết định MA_NUOC Text 15 * Mã nước NGAY_DI Date/Time dd/mm/yyyy Ngày đi NGAY_VE Date/Time dd/mm/yyyy Ngày về TUYEN_BAY Text 35 Tuyến bay DON_GIA_HT Currency Standard ($) Đơn giá hành trình - Bảng VISA(visa) Bảng VISA nằm ở phía nhiều của mối quan hệ 1@N giữa CAN_BO và VISA vì vậy ta xây dung bảng VISA có các trường sau: Tên trường Kiểu dữ liệu Độ lớn PK FK Mô tả SO_VISA Number Long Integer * Số visa MA_CB Text 15 Mã cán bộ LOAI_VISA Text 25 Loại visa NGAY_CAP Date time dd/mm/yyyy Ngày cấp NGAY_HET_HAN Date time dd/mm/yyyy Ngày hết hạn - Bảng HO_CHIEU (Hộ chiếu) Bảng HO_CHIEU nằm ở phía nhiều của mối quan hệ 1@N giữa CAN_BO và HO_CHIEU vì vậy ta xây dung bảng HO_CHIEU có các trường sau: Tên trường Kiểu dữ liệu Độ lớn PK FK Mô tả SO_HO_ CHIEU Number Long Integer * Số hộ chiếu MA_CB Text 15 Mã cán bộ LOAI_HO_CHIEU Text 25 Loại hộ chiếu NGAY_CAP Date time dd/mm/yyyy Ngày cấp NGAY_HET_HAN Date time dd/mm/yyyy Ngày hết hạn THI_THUC Yes/No Có hay không được miễn thị thực ? c) Mô hình quan hệ thực thể: 4. Thiết kế thuật toán a. Thuật toán cập nhật dữ liệu: bao gồm thêm, xoá, sửa đổi dữ liệu Bắt đầu Dữ liệu hợp lệ ? Lưu vào bảng đang mở Kết thúc Thêm dữ liệu mới Mở bảng dữ liệu Thông báo dữ liệu không hợp lệ Đ S Làm tươi dữ liệu Tiếp tục thêm dữ liệu S Đ - Thuật toán thêm dữ liệu mới - Thuật toán xoá dữ liệu đã tồn tại: Kết thúc Thông báo dữ liệu không thể xoá Xoá dữ liệu đã chọn Bắt đầu Dữ liệu xoá hợp lệ? Chọn dữ liệu cần xoá trên Form hiện thời Yêu cầu xoá dữ liệu Đ S Có chắc chắn xoá ? Đ S Có xóa tiếp không? S Đ - Thuật toán sửa dữ liệu đã tồn tại: Thông báo dữ liệu không hợp lệ Bắt đầu Dữ liệu sửa hợp lệ? Cập nhật thay đổi dữ liệu đã chọn sửa Kết thúc Chọn, thực hiện sửa dữ liệu cần sửa trên Form hiện thời Yêu cầu sửa dữ liệu Đ S Có sửa tiếp không? S Đ Bắt đầu Yêu cầu hợp lệ? Kết thúc Mở nguồn dữ liệu Nhập các yêu cầu tìm kiếm Thông báo yêu cầu không hợp lệ S Thực hiện tìm kiếm dữ liệu trên nguồn đang mở Đ Thông báo kết quả tìm kiếm Tìm thấy? S Thông báo không tìm thấy Tìm tiếp ? S Đ -Thuật toán tìm kiếm dữ liệu: V. Thiết kế chương trình. 1. Form đăng nhập chương trình: Buộc người sử dụng phải biết password để vào được chương trình. 2. Form chương trình chính: Cho phép người dùng vào các chức năng chính của chương trình như hệ thống, cập nhật, tìm kiếm tra cứu, báo cáo, trợ giúp. 3.Form cập nhập đoàn: Chức năng thêm, xoá, sửa đổi thông tin về đoàn đi. Từ form này ta có thể cập nhật trực tiếp đến các form cập nhật khác như: chương trình đi, chuyến đi. 4. Form nhập chương trình đi: Cho phéo thêm, sửa, xoá, các thông tin liên quan đến chương trình đi của đoàn. 5. Form nhập chuyến đi: cho phép thêm, sửa, xoá các thông tin về chuyến đi 6. Form cập nhật hồ sơ cán bộ: với các chức năng thêm, sửa, xoá, thông tin về cán bộ trong đoàn. 7. Form tìm kiếm các thông tin về đoàn đi với các tiêu thức như giới hạn ngày đầu, ngày cuối để tìm kiếm, mã quyết định của đoàn đi 8. Form tìm kiếm thông tin của các đoàn đi theo nước mà đoàn đó đã đến 9. Form tìm kiếm thông tin về đoàn theo các tiêu thức như giới hạn thời gian đi của đoàn từ ngày đến ngày 10. Tìm kiếm chương trình đi của một đoàn khi biết tên cán bộ đi trong đoàn đó 11 Tìm kiếm chương trình đi của một đoàn khi biết nội dung mà đoàn đó đã đi làm gì 12. Form quản trị người dùng: 14. Báo cáo những đoàn đã đi đào tạo nước ngoài 15. Danh sách cán bộ trong từng đoàn 16. Danh sách hộ chiếu của từng cán bộ Kết luận Việc đào tạo nguồn nhân lực là một yêu cầu cần thiết, tất yếu của bất kỳ một tổ chức kinh tế xã hội nào, cùng với sự phát triển không ngừng của thời đại công nghệ thông tin , của nền kinh tế toàn cầu, thì việc trao đổi học tập và đào tạo đã vượt ra ngoài khuôn khổ trong một nước. Chính vì hàng năm ngày càng có nhiều cán bộ ngành dân số được cử đi học nước ngoài, nên vấn đề quản lý bằng máy các đoàn cán bộ đào tạo nước ngoài là hết sức cần thiết, hơn thế nữa, việc giải quyết tốt bài toán còn góp phần cho việc tin học hóa quản lý hành chính nhà nước của khối cơ quan hành chính thuộc chính phủ . Việc xây dựng hệ thống thông tin phục vụ việc quản lý các đoàn cán bộ học tập và đào tạo nước ngoài là một bài toán mang tính thực tế cao và có phạm vi ứng dụng không chỉ trong toàn bộ uỷ ban dân số gia đình và trẻ em, mà còn với các vụ, các bộ liên quan khác. Tuy nhiên, do giới hạn về trình độ và thời gian nên đề tài này không tránh khỏi những thiếu sót, em rất mong được sự đóng góp ý kiến của các thầy cô giáo và các bạn để đề tài ngày càng hoàn thiện hơn. Một lần nữa em xin bày tỏ lòng biết ơn chân thành tới thầy giáo- TS.Lê Văn Năm - người đã trực tiếp hướng dẫn em hoàn thành chuyên đề thực tập này. Em xin chân thành cảm ơn các cô, chú, anh, chị tại trung tâm thông tin đặc biệt là anh Phạm Vũ Hoàng - là người trực tiếp hướng dẫn em trong thời gian em thực tập tại Trung tâm thông tin – Uỷ ban dân số gia đình và trẻ em. Xin cảm ơn tất cả các bạn đã giúp đỡ tôi hoàn thành đề tài này. Phụ lục chương trình 1. Mã lệnh xử lý form nhập quyết định ( form đoàn): Option Explicit Dim blThem As Boolean Dim Bmk Private Sub cmchuongtrinhdi_Click() nhapchuongtrinhdi.Show End Sub Private Sub cmchuyendi_Click() frmnhapchuyendi.Show End Sub Private Sub thoat_Click() Unload Me End Sub Private Sub Khoa_DL() Me.them.Visible = True Me.sua.Visible = True Me.xoa.Visible = True Me.thoat.Visible = True Me.luu.Visible = False Me.boqua.Visible = False End Sub Private Sub Mo_DL() Me.them.Visible = False Me.sua.Visible = False Me.xoa.Visible = False Me.thoat.Visible = False Me.luu.Visible = True Me.boqua.Visible = True End Sub Private Sub boqua_Click() If blThem = True Then Me.Adodc1.Refresh Else Me.Adodc1.Recordset.CancelUpdate Me.Adodc1.Recordset.MoveLast End If Khoa_DL Me.them.SetFocus blThem = False End Sub Private Sub luu_Click() On Error GoTo LoiLuu Me.dgrdoan.AllowAddNew = True Me.dgrdoan.AllowUpdate = True If Me.Text1.Text = "" Then MsgBox "Mã quyết định không được trống! Bạn phải nhập lại hoặc bấm bỏ qua ", vbExclamation, "Chú ý" Me.Text1.SetFocus If Me.Text2.Text = "" Then MsgBox "Ngày quyết định không được trống! Bạn phải nhập lại hoặc nhấn bỏ qua ", vbExclamation, "Chú ý" Me.Text2.SetFocus End If If Me.Text3.Text = "" Then MsgBox " Người kí quyết định không được để trống! Bạn phải nhập lại hoặc bấm bỏ qua", vbExclamation, "Chú ý" Me.Text3.SetFocus End If Else Me.Adodc1.Recordset.Update Khoa_DL Me.Adodc1.Recordset.Requery Me.them.SetFocus blThem = False End If exitLuu: Exit Sub LoiLuu: MsgBox "Dữ liệu không hợp lệ. Có thể trùng mã hoặc nhập sai quy cách ", , "Thông báo" Resume exitLuu End Sub Private Sub sua_Click() On Error GoTo LoiSua Bmk = Me.Adodc1.Recordset.Bookmark Me.Text1.SetFocus Mo_DL blThem = False exitSua: Exit Sub LoiSua: MsgBox Err.Description, vbCritical, "Có lỗi sửa dữ liệu" Resume exitSua End Sub Private Sub them_Click() On Error GoTo LoiThem Me.Adodc1.Recordset.AddNew Mo_DL Me.Text1.SetFocus blThem = True exitThem: Exit Sub LoiThem: MsgBox Err.Description, vbCritical, "Có lỗi cập nhật dữ liệu" Resume exitThem End Sub Private Sub xoa_Click() On Error GoTo LoiXoa If MsgBox("Bạn có chắc chắn muốn xoá quyết định " & Me.Adodc1.Recordset.Fields(0) _ & " cùng các mẩu tin liên quan không?", vbYesNo + vbQuestion, "Chú ý") = vbYes Then Me.Adodc1.Recordset.Delete adAffectCurrent Me.Adodc1.Recordset.Clone adLockOptimistic Me.Adodc1.Recordset.MoveNext If Me.Adodc1.Recordset.EOF Then Me.Adodc1.Recordset.MoveLast End If End If Me.Adodc1.Recordset.Requery exitXoa: Exit Sub LoiXoa: MsgBox "Không thể xoá được" Resume exitXoa End Sub Private Sub Form_Load() Khoa_DL End Sub Private Sub Adodc1_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset) On Error Resume Next Me.Adodc1.Caption = "Bản ghi thứ: " & CStr(Adodc1.Recordset.AbsolutePosition) & "/" & CStr(Adodc1.Recordset.RecordCount) End Sub Private Sub Text1_KeyPress(keyascii As Integer) If keyascii = 13 Then Me.Text2.SetFocus End Sub Private Sub Text2_KeyPress(keyascii As Integer) If keyascii = 13 Then Me.Text3.SetFocus End Sub Private Sub Text3_KeyPress(keyascii As Integer) If keyascii = 13 Then Me.Text4.SetFocus End Sub Private Sub text4_KeyPress(keyascii As Integer) If keyascii = 13 Then Me.Text5.SetFocus End Sub Private Sub Text5_KeyPress(keyascii As Integer) If keyascii = 13 Then Me.Text6.SetFocus End Sub Private Sub text6_KeyPress(keyascii As Integer) If keyascii = 13 Then Me.Text7.SetFocus End Sub Private Sub Text7_KeyPress(keyascii As Integer) If keyascii = 13 Then Me.luu.SetFocus End Sub 2. Mã lệnh xử lý Form tìm kiếm theo cán bộ Private Sub cmdTim_Click() Dim sql As String Dim rs As New ADODB.Recordset 'Set rs = New ADODB.Recordset sql = "select chuong_trinh_di.* from (chuong_trinh_di inner join can_bo on chuong_trinh_di.ma_cb = can_bo.ma_cb) " sql = sql & " inner join doan on chuong_trinh_di.ma_qd=doan.ma_qd " sql = sql & " where can_bo.ho_ten='" & Trim(txtTen) & "'" & " And doan.DV_CHINH = '" & Trim(txtDVC) & "'" Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\BaitapVB\DOAN DI -VB\csdl\QUANLYDOAN.mdb;Persist Security Info=False" Adodc1.RecordSource = sql Adodc1.CommandType = adCmdText Adodc1.Refresh rs.Open sql, Adodc1.ConnectionString, adOpenStatic txtSoDoan = rs.RecordCount If rs.RecordCount < 1 Then MsgBox "Không có đoàn nào có người mang tên " & txtTen & "!", vbInformation + vbOKOnly, "Thông báo!" End If End Sub Private Sub dong_Click() Unload Me End Sub Private Sub in_Click() Dim sqlREFRESH As String Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset sqlREFRESH = "select * from chuong_trinh_di " Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\BaitapVB\DOAN DI -VB\csdl\QUANLYDOAN.mdb;Persist Security Info=False" Adodc1.RecordSource = sqlREFRESH Adodc1.CommandType = adCmdText Adodc1.Refresh txtTen = "" txtSoDoan = "" txtDVC = "" txtTen.SetFocus End Sub 3. Mã lệnh xử lý form tìm kiếm theo chương trình đi Dim rs As New ADODB.Recordset Dim cmd As ADODB.Command Private Sub dong_Click() Unload Me End Sub Private Sub Form_Load() 'su kien form Load Dim ConnectionString As String 'tao ket noi CSDL ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\BaitapVB\DOAN DI -VB\csdl\QUANLYDOAN.mdb;Persist Security Info=False" rs.Open "select distinct noi_dung from chuong_trinh_di", ConnectionString, adOpenKeyset, adLockBatchOptimistic Do While Not rs.EOF noidungdi.AddItem rs.Fields("noi_dung") rs.MoveNext Loop rs.Close End Sub Private Sub timkiem_Click() Dim ConnectionString As String Dim sql As String On Error Resume Next 'bo qua loi thc thi cua Ado 'tao ket noi CSDL Set rs = New ADODB.Recordset Set cmd = New ADODB.Command ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\BaitapVB\DOAN DI -VB\csdl\QUANLYDOAN.mdb;Persist Security Info=False" cmd.ActiveConnection = ConnectionString cmd.CommandText = "SELECT * FROM chuong_trinh_di where noi_dung='" + noidungdi + "'" rs.Open cmd, , adOpenStatic, adLockBatchOptimistic With Adodc1 .RecordSource = "SELECT * FROM chuong_trinh_di where noi_dung='" + noidungdi + "'" .ConnectionString = ConnectionString .Refresh 'tao nguon cho Ado End With With DataGrid1 Set .DataSource = Adodc1 .Visible = True .AllowUpdate = True .AllowDelete = False .ForeColor = &H80000008 'thiet lap mau den End With sodoan = rs.RecordCount rs.Close End Sub 4. Mã lệnh xử lý form tìm kiếm theo đoàn Dim rs As New ADODB.Recordset Dim Check1 As Boolean, check2 As Boolean, check3 As Boolean, check4 As Boolean Dim cmd As ADODB.Command Private Sub Combo1_Click() check3 = True End Sub Private Sub denngay_Change() check2 = True End Sub Private Sub dong_Click() Unload Me End Sub Private Sub Form_Load() 'su kien form Load 'On Error Resume Next Dim ConnectionString As String 'tao ket noi CSDL ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\BaitapVB\DOAN DI -VB\csdl\QUANLYDOAN.mdb;Persist Security Info=False" rs.Open "doan", ConnectionString, adOpenKeyset, adLockBatchOptimistic With Adodc1 .RecordSource = "SELECT * FROM doan" .ConnectionString = ConnectionString .Refresh 'tao nguon cho Ado End With Do While Not rs.EOF Combo1.AddItem rs.Fields("ma_qd") rs.MoveNext Loop rs.Close End Sub Private Sub timkiem_Click() Dim ConnectionString As String Dim sql As String On Error Resume Next 'bo qua loi thc thi cua Ado 'tao ket noi CSDL Set rs = New ADODB.Recordset Set cmd = New ADODB.Command ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\BaitapVB\DOAN DI -VB\csdl\QUANLYDOAN.mdb;Persist Security Info=False" cmd.ActiveConnection = ConnectionString sql = "" Text5.Text = "" If Check1 = True And check2 = True Then sql = "NGAY_QD >=#" + Format(tungay, "dd/mm/yyyy") + "# and ngay_qd <=#" + Format(denngay, "dd/mm/yyyy") + "#" End If If Check1 = True And check2 = True And check3 = True Then sql = "NGAY_QD >=#" + Format(tungay, "dd/mm/yyyy") + "# and ngay_qd <=#" + Format(denngay, "dd/mm/yyyy") + "# and ma_qd='" + Combo1 + "'" End If If check3 = True Then sql = "ma_qd='" + Combo1 + "'" End If If Len(sql) = 0 Then MsgBox "Bạn phải chọn điều kiện tìm ", vbOKOnly Else cmd.CommandText = "SELECT * FROM doan where " & sql rs.Open cmd, , adOpenStatic, adLockBatchOptimistic With Adodc1 .RecordSource = "SELECT * FROM doan where " & sql .ConnectionString = ConnectionString .Refresh 'tao nguon cho Ado End With With DataGrid1 Set .DataSource = Adodc1 .Visible = True .AllowUpdate = True .AllowDelete = False .ForeColor = &H80000008 'thiet lap mau den End With Text5.Text = rs.RecordCount Check1 = False check2 = False check3 = False End If rs.Close End Sub Private Sub tungay_Change() Check1 = True End Sub 5. Mã lệnh xử lý form tìm kiếm theo nước: Dim rs As New ADODB.Recordset Dim cmd As ADODB.Command Private Sub dong_Click() Unload Me End Sub Private Sub Form_Load() 'su kien form Load Dim ConnectionString As String 'tao ket noi CSDL ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\BaitapVB\DOAN DI -VB\csdl\QUANLYDOAN.mdb;Persist Security Info=False" rs.Open "nuoc", ConnectionString, adOpenKeyset, adLockBatchOptimistic With Adodc1 .RecordSource = "SELECT * FROM nuoc " .ConnectionString = ConnectionString .Refresh 'tao nguon cho Ado End With Do While Not rs.EOF Combo1.AddItem rs.Fields("ten_nuoc") rs.MoveNext Loop rs.Close End Sub Private Sub timkiem_Click() Dim ConnectionString As String On Error Resume Next 'bo qua loi thc thi cua Ado 'tao ket noi CSDL Set rs = New ADODB.Recordset Set cmd = New ADODB.Command ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\BaitapVB\DOAN DI -VB\csdl\QUANLYDOAN.mdb;Persist Security Info=False" cmd.ActiveConnection = ConnectionString cmd.CommandText = "SELECT doan.ma_qd ,doan.ngay_qd,doan.nguoi_ki_qd,doan.nguon_kinh_phi,doan.dv_chinh,doan.dv_phoi_hop,doan.so_nguoi FROM doan,nuoc,chuyen_di where doan.ma_qd=chuyen_di.ma_qd and nuoc.ma_nuoc=chuyen_di.ma_nuoc and nuoc.ten_nuoc='" + Combo1 + "'" rs.Open cmd, , adOpenStatic, adLockBatchOptimistic With Adodc1 .RecordSource = "SELECT doan.ma_qd,doan.ngay_qd,doan.nguoi_ki_qd,doan.nguon_kinh_phi,doan.dv_chinh,doan.dv_phoi_hop,doan.so_nguoi FROM doan,nuoc,chuyen_di where doan.ma_qd=chuyen_di.ma_qd and nuoc.ma_nuoc=chuyen_di.ma_nuoc and nuoc.ten_nuoc='" + Combo1 + "'" .ConnectionString = ConnectionString .Refresh 'tao nguon cho Ado End With With DataGrid1 Set .DataSource = Adodc1 .Visible = True .AllowUpdate = True .AllowDelete = False .ForeColor = &H80000008 'thiet lap mau den End With sodoan = rs.RecordCount End Sub 6. Form tìm kiếm theo chuyến đi: Dim rs As ADODB.Recordset Dim cmd As ADODB.Command Private Sub dong_Click() Unload Me End Sub Private Sub Form_Load() 'su kien form Load Dim ConnectionString As String 'tao ket noi CSDL ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\BaitapVB\DOAN DI -VB\csdl\QUANLYDOAN.mdb;Persist Security Info=False" With Adodc1 .RecordSource = "SELECT * FROM chuyen_di " .ConnectionString = ConnectionString .Refresh 'tao nguon cho Ado End With End Sub Private Sub timkiem_Click() On Error Resume Next 'bo qua loi thc thi cua Ado 'tao ket noi CSDL 'khoidong Set cmd = New ADODB.Command Set rs = New ADODB.Recordset Dim ConnectionString As String ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\BaitapVB\DOAN DI -VB\csdl\QUANLYDOAN.mdb;Persist Security Info=False" cmd.ActiveConnection = ConnectionString cmd.CommandText = " SELECT * FROM chuyen_di where ngay_di >=# " + Format(ngaydi, "dd/mm/yyyy") + " # and ngay_ve <=# " + Format(ngayve, "dd/mm/yyyy") + "#" rs.Open cmd, , adOpenStatic, adLockBatchOptimistic With Adodc1 .RecordSource = "SELECT * FROM chuyen_di where ngay_di >='" + Format(ngaydi, "dd/mm/yyyy") + "' and ngay_ve<='" + Format(ngayve, "dd/mm/yyyy") + "'" .RecordSource = "SELECT * FROM chuyen_di where ngay_di >=#" + Format(ngaydi, "dd/mm/yyyy") + "# and ngay_ve<=#" + Format(ngayve, "dd/mm/yyyy") + "#" .ConnectionString = ConnectionString .Refresh 'tao nguon cho Ado End With With DataGrid1 Set .DataSource = Adodc1 .Visible = True .AllowAddNew = True .AllowUpdate = True .AllowDelete = False .ForeColor = &H80000008 'thiet lap mau den '.Top = 2880 'vi tri cua dtaGrid '.Height = 1335 'chiau cao cua DataGrid End With sodoan = rs.RecordCount rs.Close End Sub 7. Form nhập thông tin cán bộ đi trong đoàn: Option Explicit Dim blThem As Boolean Dim Bmk Private Sub hochieu_Click() frmhochieu2.Show End Sub Private Sub visa_click() frmvisa2.Show End Sub Private Sub thoat_Click() Unload Me End Sub Private Sub Khoa_DL() Me.them.Visible = True Me.sua.Visible = True Me.xoa.Visible = True Me.thoat.Visible = True Me.luu.Visible = False Me.boqua.Visible = False End Sub Private Sub Mo_DL() Me.them.Visible = False Me.sua.Visible = False Me.xoa.Visible = False Me.thoat.Visible = False Me.luu.Visible = True Me.boqua.Visible = True End Sub Private Sub boqua_Click() If blThem = True Then Me.Adodc1.Refresh Else Me.Adodc1.Recordset.CancelUpdate Me.Adodc1.Recordset.MoveLast End If Khoa_DL Me.them.SetFocus blThem = False End Sub Private Sub luu_Click() On Error GoTo LoiLuu Me.dgrcb.AllowAddNew = True Me.dgrcb.AllowUpdate = True If Me.Text1.Text = "" Then MsgBox "Mã cán bộ không được trống! Bạn phải nhập lại hoặc bấm bỏ qua ", vbExclamation, "Chú ý" Me.Text1.SetFocus If Me.Text2.Text = "" Then MsgBox "Tên cán bộ không được trống! Bạn phải nhập lại hoặc nhấn bỏ qua ", vbExclamation, "Chú ý" Me.Text2.SetFocus End If If Me.Text6.Text = "" Then MsgBox " Ngày sinh cán bộ không được để trống! Bạn phải nhập vào ngày sinh hoặc bấm bỏ qua", vbExclamation, "Chú ý" Me.Text6.SetFocus End If Else Me.Adodc1.Recordset.Update Khoa_DL Me.Adodc1.Recordset.Requery Me.them.SetFocus blThem = False End If exitLuu: Exit Sub LoiLuu: MsgBox "Dữ liệu không hợp lệ. Có thể trùng mã hoặc nhập sai quy cách ", , "Thông báo" Resume exitLuu End Sub Private Sub sua_Click() On Error GoTo LoiSua Bmk = Me.Adodc1.Recordset.Bookmark Me.Text1.SetFocus Mo_DL blThem = False exitSua: Exit Sub LoiSua: MsgBox Err.Description, vbCritical, "Có lỗi sửa dữ liệu" Resume exitSua End Sub Private Sub them_Click() On Error GoTo LoiThem Me.Adodc1.Recordset.AddNew Mo_DL Me.Text1.SetFocus blThem = True exitThem: Exit Sub LoiThem: MsgBox Err.Description, vbCritical, "Có lỗi cập nhật dữ liệu" Resume exitThem End Sub Private Sub xoa_Click() On Error GoTo LoiXoa If MsgBox("Bạn có chắc chắn muốn xoá cán bộ " & Me.Adodc1.Recordset.Fields(1) _ & " cùng các mẩu tin liên quan không?", vbYesNo + vbQuestion, "Chú ý") = vbYes Then Me.Adodc1.Recordset.Delete adAffectCurrent Me.Adodc1.Recordset.Clone adLockOptimistic Me.Adodc1.Recordset.MoveNext If Me.Adodc1.Recordset.EOF Then Me.Adodc1.Recordset.MoveLast End If End If Me.Adodc1.Recordset.Requery exitXoa: Exit Sub LoiXoa: MsgBox "Không thể xoá được" Resume exitXoa End Sub Private Sub Form_Load() Khoa_DL End Sub Private Sub Adodc1_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset) On Error Resume Next Me.Adodc1.Caption = "Bản ghi thứ: " & CStr(Adodc1.Recordset.AbsolutePosition) & "/" & CStr(Adodc1.Recordset.RecordCount) End Sub Private Sub Text1_KeyPress(keyascii As Integer) If keyascii = 13 Then Me.Text2.SetFocus End Sub Private Sub Text2_KeyPress(keyascii As Integer) If keyascii = 13 Then Me.Text6.SetFocus End Sub Private Sub text6_KeyPress(keyascii As Integer) If keyascii = 13 Then Me.cbgioitinh.SetFocus End Sub Private Sub cbgioitinh_KeyPress(keyascii As Integer) If keyascii = 13 Then Me.Text3.SetFocus End Sub Private Sub Text3_KeyPress(keyascii As Integer) If keyascii = 13 Then Me.Text4.SetFocus End Sub Private Sub text4_KeyPress(keyascii As Integer) If keyascii = 13 Then Me.Text5.SetFocus End Sub Private Sub Text5_KeyPress(keyascii As Integer) If keyascii = 13 Then Me.luu.SetFocus End Sub 8. Form nhập chuyến đi: Option Explicit Dim blThem As Boolean Dim Bmk Private Sub thoat_Click() Unload Me End Sub Private Sub Khoa_DL() Me.them.Visible = True Me.sua.Visible = True Me.xoa.Visible = True Me.thoat.Visible = True Me.luu.Visible = False Me.boqua.Visible = False End Sub Private Sub Mo_DL() Me.them.Visible = False Me.sua.Visible = False Me.xoa.Visible = False Me.thoat.Visible = False Me.luu.Visible = True Me.boqua.Visible = True End Sub Private Sub boqua_Click() If blThem = True Then Me.adocd.Refresh Else Me.adocd.Recordset.CancelUpdate Me.adocd.Recordset.MoveLast End If Khoa_DL Me.them.SetFocus blThem = False End Sub Private Sub luu_Click() On Error GoTo LoiLuu Me.dgrcd.AllowAddNew = True Me.dgrcd.AllowUpdate = True If Me.Text1.Text = "" Then MsgBox "Mã quyết định không được trống! Bạn phải nhập lại hoặc bấm bỏ qua ", vbExclamation, "Chú ý" Me.Text1.SetFocus If Me.cbnuoc.Text = "" Then MsgBox "Mã nước không được trống! Bạn phải nhập lại hoặc nhấn bỏ qua ", vbExclamation, "Chú ý" Me.cbnuoc.SetFocus End If Else Me.adocd.Recordset.Update Khoa_DL Me.adocd.Recordset.Requery Me.them.SetFocus blThem = False End If exitLuu: Exit Sub LoiLuu: MsgBox "Dữ liệu không hợp lệ. Có thể trùng mã hoặc nhập sai quy cách ", , "Thông báo" Resume exitLuu End Sub Private Sub sua_Click() On Error GoTo LoiSua Bmk = Me.adocd.Recordset.Bookmark Me.Text1.SetFocus Mo_DL blThem = False exitSua: Exit Sub LoiSua: MsgBox Err.Description, vbCritical, "Có lỗi sửa dữ liệu" Resume exitSua End Sub Private Sub them_Click() On Error GoTo LoiThem Me.adocd.Recordset.AddNew Mo_DL Me.Text1.SetFocus blThem = True exitThem: Exit Sub LoiThem: MsgBox Err.Description, vbCritical, "Có lỗi cập nhật dữ liệu" Resume exitThem End Sub Private Sub xoa_Click() On Error GoTo LoiXoa If MsgBox("Bạn có chắc chắn muốn xoá mã quyết định " & Me.adocd.Recordset.Fields(0) _ & " cùng các mẩu tin liên quan không?", vbYesNo + vbQuestion, "Chú ý") = vbYes Then Me.adocd.Recordset.Delete adAffectCurrent Me.adocd.Recordset.Clone adLockOptimistic Me.adocd.Recordset.MoveNext If Me.adocd.Recordset.EOF Then Me.adocd.Recordset.MoveLast End If End If Me.adocd.Recordset.Requery exitXoa: Exit Sub LoiXoa: MsgBox "Không thể xoá được" Resume exitXoa End Sub Private Sub Form_Load() Khoa_DL End Sub Private Sub cbnuoc_Change() Dim strsql As String If Me.cbnuoc.Text "" Then strsql = "select * from NUOC where trim(MA_NUOC)='" strsql = strsql & Trim(Me.cbnuoc.Text) & "'" Me.Adodc2.RecordSource = strsql Me.Adodc2.Refresh If Me.Adodc2.Recordset.RecordCount > 0 Then Me.Text2.Text = Me.Adodc2.Recordset.Fields(1) Else Me.Text2.Text = "Chưa cập nhật mã nước" End If Me.Adodc2.Recordset.Close End If End Sub Private Sub adocd_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset) On Error Resume Next Me.adocd.Caption = "Bản ghi thứ: " & CStr(adocd.Recordset.AbsolutePosition) & "/" & CStr(adocd.Recordset.RecordCount) End Sub Private Sub Text1_KeyPress(keyascii As Integer) If keyascii = 13 Then Me.cbnuoc.SetFocus End Sub Private Sub cbnuoc_KeyPress(keyascii As Integer) If keyascii = 13 Then Me.ngaydi.SetFocus End Sub Private Sub ngaydi_KeyPress(keyascii As Integer) If keyascii = 13 Then Me.ngayve.SetFocus End Sub Private Sub ngayve_keypress(keyascii As Integer) If keyascii = 13 Then Me.Text5.SetFocus End Sub Private Sub Text5_KeyPress(keyascii As Integer) If keyascii = 13 Then Me.Text6.SetFocus End Sub Private Sub text6_KeyPress(keyascii As Integer) If keyascii = 13 Then Me.luu.SetFocus End Sub Tài liệu tham khảo 1 – TS.Trương Văn Tú – TS.Trần Thị Song Minh Giáo trình Hệ thống thông tin quản lý, Hà Nội, 2000 2 – Thạc sỹ Đinh Thế Hiển Phân tích thiết kế hệ thống thông tin quản lý, NXB Thống kê, TPHCM, 2002 3- PGS Hàn Viết Thuận Giáo trình cấu trúc dữ liệu và giải thuật, NXB Thống kê, Hà Nội, 1999 4 – Trần Công Uẳn Giáo trình cơ sở dữ liệu SQL, ACCESS, NXB Thống kê, Hà Nội, 2000 5 – Nguyễn Thị Ngọc Mai ( Chủ biên) Microsoft Visual Basic 6.0 và lập trình cơ sở dữ liệu, NXB Giáo dục , TP Hồ Chí Minh, 2000 6 - Trung tâm ứng dụng kinh tế TPHCM Học VB qua thực hiện chương trình, NXB Thống kê, 2000 7- Võ Hiếu Nghĩa Các chương trình mẫu Visual Basic 6.0, NXB Thống kê 8 – Các bài luận văn khoá trước. 9 – Các tài liệu khác.

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

  • doc37167.doc
Tài liệu liên quan