Đâ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.
105 trang |
Chia sẻ: oanh_nt | Lượt xem: 1513 | Lượt tải: 0
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:
- 37167.doc