Đồ án Quản lý thư viện

Trong thời kỳ thông tin hiện đại, việc sử dụng các ứng dụng tin học vào việc xử lý thông tin là một việc không thể thiếu được. Ngoài việc tiếp nhận các phần mềm ứng dụng của nước ngoài chúng ta còn có các chương trình ứng dụng của chính mình. Kết hợp với yêu cầu từng bước tin học hoá việc "Quản lý thư viện", tôi đã xây dựng đề tài "Phân tích, thiết kế hệ thống quản lý thư viện". Đề tài đã thu được một số kết quả như sau: -Lưu trữ và truy cập dữ liệu một cách an toàn, chính xác - Phục vụ kịp thời các yêu cầu quản lý và tìm kiếm thông tin - Kết quả thống kê được chính xác và nhanh chóng Tuy vậy, do thời gian và kinh nghiệm còn nhiều hạn chế do đó đề tài này chắc chắn còn nhiều thiếu sót, rất mong được sự giúp đỡ của các thầy cô giáo và các bạn. Qua đây tôi cũng xin chân thành cảm ơn cô Nguyễn Thu Hương đã tận tình chỉ bảo trong quá trinh thực tập.

doc48 trang | Chia sẻ: oanh_nt | Lượt xem: 1607 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Đồ án Quản lý thư viện, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
lời nói đầu Ngày nay, không ai còn nghi ngờ gì vai trò của thông tin đối với đời sống xã hội. Sự nắm bắt được nhu cầu thực tế xã hội, những thông tin chính xác, nhanh nhậy là nhu cầu chính của con người trong mọi mặt vận động của xã hội, dưới mọi quy mô ngày càng đóng vai trò cốt yếu trong việc quản lý và điều hành. Với trình độ khoa học ngày càng phát triển, đặc biệt là lĩnh vực khoa học điện tử, đã và đang được quan tâm đầu tư, ứng dụng trong nhiều lĩnh vực khác nhau. Trong đó, việc ứng dụng tin học trong mọi tổ chức kinh tế, hành chính đoàn thể, trong các Xí nghiệp và Công ty, trong các trường Đại học, Viện nghiên cứu và thiết kế rất là quan trọng. Nhờ vào tin học, chúng ta có thể quản lý mọi lĩnh vực một cách nhanh chóng như: Quản lý sinh viên, Quản lý vật tư, Quản lý thư viện, Quản lý bán hàng... mà trước kia khi tin học chưa được phổ biến thì các công việc này đã làm chúng ta mất rất nhiều thời gian và công sức. Sự phát triển nhanh chóng của máy tính đã làm thay đổi cục diện của lĩnh vực quản lý. Các phần mềm linh hoạt và thông minh đó đã giúp chúng ta cho công việc quản lý thuận tiện, nhanh chóng trong việc thống kê, tìm kiếm, tính toán, thông báo kịp thời những thông tin cần thiết, giảm nhẹ không gian lưu trữ, thay thế cho việc làm thủ công với hiệu quả thấp lại cồng kềnh. Xuất phát từ các yêu cầu thực tế và được sự đồng ý của giáo viên hướng dẫn, cô Nguyễn Thu Hương, tôi chọn đề tài: Quản lý thư viện Đề tài quản lý thư viện được xây dựng trên hệ quản trị cơ sở dữ liệu Access97. Đây là một đề tài mang tính thực tế, nhưng với kinh nghiệm chưa nhiều và kiến thức có hạn nên khó tránh khỏi sai sót, tôi mong nhận được nhiều ý kiến đóng góp và chỉ bảo của các thầy cô, các bạn bè để đề tài được hoàn thiện hơn. Tôi xin chân thành cảm ơn cô Nguyễn Thu Hương đã giúp đỡ tận tình để tôi hoàn thành bài thực tập này. giới thiệu chương trình Với trình độ khoa học kỹ thuật ngày càng phát triển đặc biệt là khoa học và thông tin đã bắt đầu được quan tâm đầu tư và ứng dụng trong nhiều lĩnh vực khác nhau. Trong đó việc ứng dụng tin học vào công việc quản lý cơ sở dữ liệu và xử lý tính toán, tìm kiếm, chèn xoá một cơ sở dữ liệu để đạt hiệu quả cao nhất trong công việc quản lý. Trước kia, khi tin học chưa được phổ biến thì các công việc trong quản lý cơ sở dữ liệu quả là rất vất vả và mất rất nhiều thời gian tìm kiếm theo phiếu. Nay tin học được đưa vào quản lý cơ sở dữ liệu đã giúp cho những người làm công việc quản lý đỡ vất vả hơn trong công việc. Hiện nay, chương trình quản lý sử dụng bằng ngôn ngữ Access được dùng rất phổ biến. Chính vì vậy, tôi chọn viết chương trình Quản lý thư viện bằng ngôn ngữ Access. Sơ lược về cơ sở dữ liệu của Microsoft Access: Access là một hệ quản trị cơ sở dữ liệu, khai thác và quản trị cơ sở dữ liệu. Trong hệ cơ sở dữ liệu có 3 khả năng chính: định nghĩa dữ liệu, khai thác và quản trị dữ liệu. Là một hệ quản trị cơ sở dữ liệu, các khả năng của Access được mô tả: - Lưu trữ dữ liệu trong cơ sở dữ liệu. - Cho phép người dùng sử dụng ngôn ngữ hỏi đáp SQL. - Có nhiều chức năng trong môi trường đa người sử dụng thông qua mật khẩu, đồng thời có chức năng gán quyền sử dụng cho mỗi cá nhân hay từng nhóm riêng biệt. Điều quan trọng nhất là nó đảm bảo các ràng buộc toàn vẹn dữ liệu ngay cả khi được phân tán trên mạng và cơ chế khoá cho phép nhất quán khi truy cập trong môi trường đa người dùng. Là một chương trình chạy trên Windows nên giao diện rất quen thuộc, nhiều chức năng trợ giúp thiết kế đơn giản, nhanh, đẹp... Cho phép chia sẻ hay kết nối dữ liệu giữa các ứng dụng khác nhau như Word, Excel hay phần liên kết nhúng đối tượng OLE. - Chương trình đòi hỏi cấu hình máy lớn, giá thành đầu tư để có được phần mềm phù hợp. Các công cụ của Access cần thiết để tạo ra một cơ sở dữ liệu: 1. Table (Bảng): là một thành phần cơ bản của cơ sở dữ liệu trong Access, là đối tượng quan trọng nhất. Trong một Table số liệu được tổ chức trên nhiều dòng (record) và trên dòng nhiều cột (field). Có thể tạo nhiều Table trong một cơ sở dữ liệu, mỗi Table lưu trữ về một đối tượng thông tin nào đó. Cơ cấu tổ chức của Table cho phép mỗi Table chứa nhiều kiểu thông tin: kiểu Text (văn bản), kiểu Number (số), kiểu Date (ngày tháng), kiểu Picture (hình ảnh). 2. Query (truy vấn): là công cụ cho phép đặt câu hỏi với dữ liệu lưu trong cơ sở dữ liệu. Cách thức truy vấn (tức là cách đặt câu hỏi) sẽ cho Access biết ta cần những thông tin gì và hệ thống sẽ vận động dữ liệu dựa trên các mối quan hệ thiết lập sẵn để rút ra kết quả yêu cầu, có các loại truy vấn. - Truy vấn chọn (Select query): là truy vấn thông dụng nhất. Với kiểu truy vấn này ta có thể xem xét dữ liệu trong các bảng, thực hiện phân tích và chỉnh sửa dữ liệu đó. Ta có thể xem thông tin từ một bảng hoặc thêm vào các trường từ nhiều bảng khác. - Crosstabquery: thể hiện dữ liệu dạng hàng và cột như bảng tính. - Action query: dùng để chỉnh sửa nhiều bản ghi cùng một lúc. Loại truy vấn này có thể tạo bảng mới, thêm xoá sửa các bản ghi trong bảng. - Union query: kết hợp các trường tương ứng từ hai hay nhiều bảng. - Data - definition query: tạo, xoá, chỉnh sửa các bảng trong CSDL dùng các lệnh trong SQL. 3. Form (biểu mẫu): dùng cho các thao tác nhập liệu, giúp người ta có cảm giác như đang ghi điền vào các mẫu phiếu. Một biểu mẫu trong Access định nghĩa một tập dữ liệu ta muốn thu nhập và từ đó đưa vào CSDL. Ta cũng có thể dùng biểu mẫu để xem xét dữ liệu hay in ra để quảng cáo. 4. Report (báo biểu): dùng in ấn hay thể hiện các báo biểu dưới nhiều hình thức trình bày phong phú, đẹp mắt, đồng thời dùng để thể hiện kết quả của các bảng Query. 5. Macro (lệnh gộp): là một tập hợp các lệnh tự động hoá các thao tác thường nhật hay vì phải lặp đi lặp lại một cách nhàm chán. Khi cho chạy một Macro, Access thực hiện lại một loạt thao tác đã quy định trước. 6. Modul (đơn thể): là một dạng tự động hoá cao cấp hơn Macro, được lập trình bằng ngôn ngữ Access. nội dung đề tài chương I: khảo sát hiện trạng hệ thống I. Mục đích cơ bản của đề tài II. Khảo sát hệ thống cũ III. ý nghĩa của việc tin học hoá thay cho hệ thống hiện tại chương II: phân tích hệ thống I. Phân tích các chức năng cơ bản của hệ thống 1. Các chức năng cơ bản trong hệ thống quản lý thư viện 2. Phân loại và gom tụ các chức năng thành các chức năng con của chức năng chính III. Biểu đồ luồng dữ liệu 1. Biểu đồ luồng dữ liệu mức khung cảnh 2. Biểu đồ luồng dữ liệu mức đỉnh 3. Biểu đồ luồng dữ liệu mức dưới đỉnh IV. Biểu đồ cấu trúc dữ liệu 1. Biểu đồ thực thể liên kết 2. Sơ đồ liên kết dữ liệu chương III: thiết kế chương trình I. Các bảng cơ sở dữ liệu 1. Bảng sách 2. Bảng bạn đọc 3. Bảng mượn trả II. Các chức năng và các Form của chương trình 1. Chức năng nhập chương trình 2. Chức năng sửa đổi 3. Chức năng loại bỏ 4. Chức năng mượn trả 5. Chức năng thống kê 6. Chức năng tra cứu chương IV: cài đặt và đánh giá hệ thống I. Cài đặt và thực hiện chương trình II. Đánh giá hệ thống III. Kết luận chương I: khảo sát hiện trạng hệ thống I. Mục đích cơ bản của đề tài Hệ thống quản lý thư viện từ trước đến nay tuy là làm thủ công nhưng các thao tác thừa hành của nó có tính khoa học rất cao. Tuy vậy, nó đòi hỏi rất nhiều thời gian và công sức của con người mà không thể tránh được những nhầm lẫn, sai sót. Trong thực tế hiện nay, việc quản lý một khối lượng lớn sách báo và bạn đọc của thư viện thật không dễ dàng chút nào, và việc quản lý theo phương pháp thủ công sẽ mất rất nhiều thời gian, thậm chí không đáp ứng nổi. Vì vậy, việc đưa tin học vào công tác quản lý sẽ giúp chúng ta giải quyết vấn đề này. II. Khảo sát hệ thống cũ 1. Một số nguyên tắc trong quản lý thư viện Về nguyên tắc, dù quản lý trên máy vi tính nhưng mô hình hoạt động của hệ thống thư viện vẫn dựa trên phương thức quản lý truyền thống. Trước hết, để quản lý một khối lượng lớn sách báo và tạp chí thì phải tổ chức tốt hệ thống thư mục. Hệ thống thư mục sẽ giúp bạn đọc tra cứu sách một cách hữu hiệu, cán bộ thư viện tìm kiếm sách một cách dễ dàng. Thông thường ta có thể tổ chức hệ thống thư mục theo nhiều cách: - Hệ thống thư mục theo thể loại: Hình thức này tiện cho bạn đọc tìm sách để nghiên cứu theo một chuyên sâu nào đó. - Hệ thống thư mục theo tên sách: Đối với hình thức này, khi cần mượn sách biết chính xác tên thì việc tìm kiếm trở nên dễ dàng. - Hệ thống thư mục theo tên tác giả: Cách tổ chức này thuận tiện khi bạn đọc muốn tìm sách của một tác giả nào đó. 2. Phân tích hệ thống quản lý thư viện cũ Một yếu tố quan trọng quyết định đến hiệu quả của việc quản lý sách đó là quản lý bạn đọc. Bất cứ lúc nào người quản lý thư viện cũng có thể biết được những ai mượn sách gì của thư viện. Việc nắm vững thông tin về bạn đọc và các nhu cầu về sách của họ sẽ giúp việc quản lý của họ tốt hơn và từ đó có hướng đầu tư sách thích hợp. Những năm trước đây, khi máy tính chưa được sử dụng rộng rãi, các hệ thống quản lý đều làm theo phương pháp thủ công. Hệ thống quản lý thư viện cũng quản lý theo phương pháp đó. Trong tình hình hiện nay, việc quản lý một khối lượng lớn sách báo cũng như bạn đọc theo phương pháp này gặp rất nhiều khó khăn. Nó đòi hỏi phải có nhiều cán bộ lâu năm, có kinh nghiệm và phải tốn nhiều công sức mà chắc chắn vẫn không thể tránh khỏi sai sót, nhầm lẫn. Những khó khăn này thể hiện qua các công việc quản lý sau: - Đối với việc phục vụ bạn đọc: Khi bạn đọc mượn một cuốn sách, cán bộ thư viện phải kiểm tra xem cuốn sách đó có còn trong thư viện không, nếu còn mới làm thủ tục cho mượn. Công việc này là tất yếu nhưng tốn rất nhiều thời gian để tìm sổ và tra cứu. Nếu có sự sai lệch về thông tin giữa các bảng danh mục sách và số lượng sách hiện có trong kho sẽ dẫn đến tình trạng bạn đọc phải chờ đợi rất lâu mới nhận được câu trả lời là đã hết sách. Trường hợp bạn đọc không nắm vững những thông tin về cuốn sách thì việc tìm kiếm càng trở nên khó khăn hơn. - Đối với việc quản lý: Khi cần báo cáo thống kê định kỳ về danh mục các loại sách có trong thư viện, tình hình bạn đọc, tổng kinh phí đầu tư... của cả một thư viện sẽ tốn rất nhiều thời gian, thậm chí không làm nổi. Tóm lại, việc quản lý theo phương pháp thủ công trong hệ thống cũ là không còn phù hợp ở các thư viện hiện nay. Những tồn tại trên đây cho thấy việc tổ chức lại hệ thống thư viện là rất cần thiết để có thể giải quyết được các tồn tại trên, đáp ứng các yêu cầu trong quản lý thư viện. 3. Những yêu cầu của hệ thống mới Công tác quản lý thư viện làm việc với một số lượng lớn sách báo và độc giả, nếu không biết xắp xếp và tổ chức công việc hợp lý sẽ gặp rất nhiều khó khăn. Hệ thống quản lý mới phải khắc phục được các nhược điểm của hệ thống cũ, phải giúp được các cán bộ quản lý thư viện làm việc dễ dàng hơn, thuận tiện hơn... giúp bạn đọc được phục vụ tốt hơn và để cho họ chấp hành các quy định của thư viện một cách nghiêm túc. III. ý nghĩa của việc tin học hoá thay cho hệ thống hiện tại Hệ thống quản lý hiện tại được làm bằng thủ công nên công việc gặp không ít khó khăn, nhất là trong vấn đề lưu trữ, cập nhật, tra cứu... những thông tin cần thiết. Với việc tin học hoá hệ thống hiện tại đã khắc phục những nhược điểm nêu trên, đáp ứng công việc yêu cầu đề ra. chương II: phân tích hệ thống I. Phân tích các chức năng cơ bản của hệ thống 1. Các chức năng cơ bản trong hệ thống quản lý thư viện - Nhập sách mới - Cập nhật thông tin về sách - Xem danh mục sách và sách cho mượn - Tra cứu, tìm kiếm theo tên sách, tên tác giảm, thể loại... - Thống kê mượn trả - Thống kê sách - Theo dõi thống kê mượn trả của bạn đọc 2. Phân loại và gom tụ các chức năng thành các chức năng con của chức năng chính Sau khi phân loại và gom tụ ta được hệ thống quản lý thư viện với 5 chức năng chính: - Chức năng quản lý sách - Chức năng quản lý mượn trả - Chức năng quản lý bạn đọc - Chức năng thống kê - Chức năng tra cứu a. Chức năng quản lý sách gồm: - Nhập sách - Sửa đổi thông tin về sách - Huỷ sách b. Chức năng quản lý mượn trả gồm: - Mượn sách - Trả sách - In giấy báo quá hạn c. Chức năng quản lý bạn đọc gồm: - Nhập thông tin bạn đọc - Sửa đổi thông tin bạn đọc - Huỷ thông tin bạn đọc d. Chức năng quản lý thống kê gồm: - Thống kê sách có trong thư viện - Thống kê bạn đọc của thư viện - Thống kê bạn đọc đang mượn sách e. Chức năng tra cứu thông tin gồm: - Tìm kiếm theo mã sách - Tìm kiếm theo têb sách - Tìm kiếm theo chủ đề - Tìm kiếm theo tên tác giả II. Biểu đồ phân cấp chức năng Qua quá trình phân tích các chức năng trên của hệ thống quản lý thư viện ta thu được một mô hình chung về quả trình quản lý thư viện dưới dạng biểu đồ phân cấp chức năng sau: Quản lý thư viện Quản lý sách Quản lý mươn trả Quản lý bạn đọc Thống kê Nhập sách Sửa sách Huỷ sách Mượn sách Trả sách In quá hạn Nhập thông tin bạn đọc Sửa thông tin bạn đọc Huỷ thông tin bạn đọc Thống kê sách Thống kê bạn đọc Thống kê mượn sách Tra cứu Theo mã Theo chủ đề Theo tên sách Theo tên tác giả III. Biểu đồ luồng dữ liệu 1. Biểu đồ luồng dữ liệu mức khung cảnh Biểu đồ luồng dữ liệu mức khung cảnh được xây dựng ở giai đoạn đầu của quá trình phân tích và được dùng để vạch ranh giới hệ thống và buộc quá trình phân tích phải xem xét mọi ràng buộc của hệ thống. Sơ đồ mức khung cảnh sẽ diễn tả mọi tập hợp các chức năng của hệ thống trong các mối quan hệ trước sau, trong tiến trình xử lý, bàn giao thông tin cho nhau. Đây chính là công cụ chính của quá trình phân tích hệ thống, là cơ sở để thiết kế phần trao đổi và phần dữ liệu. Hệ thống quản lý Bạn đọc Sách nhập Nhân viên quản lý Thông tin Nhập sách Sách mượn trả Trong đó bạn đọc, nhân viên quản lý, sách là những tác nhân ngoài hệ thống, các liên kết chỉ các dòng thông tin của hệ thống. Sơ đồ dòng dữ liệu là một trong những dòng công cụ quan trọng nhất trong việc phân tích hệ thống có cấu trúc, nó đưa ra phương pháp thiết kế mối quan hệ giữa các chức năng hoặc quá trình của hệ thống với những thông tin mà chúng sử dụng. 2. Biểu đồ luồng dữ liệu mức đỉnh Chức năng của hệ thống quản lý được phân rã thành: Quản lý sách, Quản lý bạn đọc, Quản lý mượn trả, Thống kê, Tra cứu. Các tác nhân ngoài vẫn bảo toàn, các luồng dữ liệu vẫn bảo toàn, có thêm các luồng dữ liệu nội bộ, xuất hiện các kho dữ liệu. Quản lý sách Quản lý mượn trả Tra cứu Quản lý bạn đọc Thống kê Sách nhập Bạn đọc Nhân viên quản lý Bạn đọc Sách Mượn trả 3. Biểu đồ luồng dữ liệu mức dưới đỉnh Sơ đồ luồng dữ liệu mức dưới đỉnh chi tiết thêm một bước nữa, từ đó tìm ra luồng dữ liệu cho từng modul chương trình một cách cụ thể. - Sơ đồ luồng dữ liệu chức năng quản lý sách - Sơ đồ luồng dữ liệu chức năng quản lý mượn trả - Sơ đồ luông dữ liệu chức năng quản lý bạn đọc - Sơ đồ luồng dữ liệu chức năng thống kê - Sơ đồ luồng dữ liệu chức năng tra cứu a. Biểu đồ luồng dữ liệu chức năng quản lý sách Nhập sách Huỷ thông tin sách Sửa thông tin sách Sách nhập Sách b. Biểu đồ luồng dữ liệu chức năng quản lý mượn trả Mượn sách In giấy báo quá hạn Trả sách Bạn đọc Bạn đọc Sách Mượn trả c. Biểu đồ luồng dữ liệu chức năng quản lý bạn đọc Nhập thông tin bạn đọc Huỷ thông tin bạn đọc Sửa thông tin bạn đọc Bạn đọc Bạn đọc d. Biểu đồ luồng dữ liệu chức năng thống kê Thống kê mượn sách Nhân viên quản lý Thống kê bạn đọc Thống kê sách Bạn đọc Sách e. Biểu đồ luồng dữ liệu chức năng tra cứu Tra theo thể loại Tra theo mã sách Tra theo tên sách Bạn đọc Tra theo tên tác giả Sách IV. Biểu đồ cấu trúc dữ liệu 1. Biểu đồ thực thể liên kết Sách Mượn/Trả Bạn đọc MASACH MASACH MABD TENSACH MABD HOTEN TACGIA NGAYMUON NGAYSINH NHAXB NGAYHENTRA GIOITINH NAMXB DIACHI SOLUONG NGAYLAMTHE NGAYNHAP NGAYHETHAN THELOAI NOIDE 2. Sơ đồ liên kết dữ liệu chương iii: thiết kế cơ sở dữ liệu I. Các bảng cơ sở dữ liệu Qua phần phân tích trên tôi thiết kế các cơ sở dữ liệu như sau: 1. Bảng Sách (Table SACH) stt tên trường kiểu mô tả 1 mas Text Mã sách 2 tensach Text Tên sách 3 tacgia Text Tên tác giả 4 nhaxb Text Tên nhà xuất bản 5 namxb Number Năm xuất bản 6 soluong Number Số sách nhập 7 ngaynhap Date Ngày nhập 8 the loai Text Thể loại 9 noide Text Nơi để 2. Bảng Bạn đọc (Table BAN DOC) stt tên trường kiểu mô tả 1 mabd Text Mã bạn đọc 2 hoten Text Họ tên bạn đọc 3 ngaysinh Date Ngày sinh 4 gioitinh Text Giới tính 5 diachi Text Địa chỉ 6 ngaylamthe Date Ngày làm thẻ 7 ngayhethan Date Ngày hết hạn 3. Bảng Mươn trả (Table MUON_TRA) stt tên trường kiểu mô tả 1 masach Text Mã sách 2 mabd Text Mã bạn đọc 3 ngaymuon Date Ngày mượn 4 ngayhentra Date Ngày hẹn trả II. Các chức năng và các Forms của chương trình Forms chương trình chính, Forms này có các Menu gọi đến các Forms chức năng của chương trình. 1. Chức năng nhập số liệu a. Khi chọn chức năng "Nhập sách" thì chương trình sẽ hiện ra Form - Nút điều khiển "Thoát" thực hiện việc đóng Form "Nhập thông tin sách" lại và quay trở lại chương trình chính. Thủ tục xử lý sự kiện như sau: Private Sub thoat_Click() DoCmd.Close End Sub -Nút điều khiển "Không" có tác dụng không nhập thông tin đưa vào. Thủ tục xử lý sự kiện như sau: Private Sub KHONG_Click() Forms![NHAP_SACH]![MA SACH] = Null Forms![NHAP_SACH]![TEN SACH] = Null Forms![NHAP_SACH]![CHU DE] = Null Forms![NHAP_SACH]![TAC GIA] = Null Forms![NHAP_SACH]![NHA XB] = Null Forms![NHAP_SACH]![NAM XB] = Null Forms![NHAP_SACH]![SO LUONG] = Null Forms![NHAP_SACH]![NGAY NHAP] = Null Forms![NHAP_SACH]![NOI DE] = Null DoCmd.GoToControl "MA SACH" End Sub -Nút điều khiển "Đồng ý" thực hiện việc nhập ghi thông tin sách trên Form vào bảng "SACH". Thủ tục xử lý sự kiện như sau: Private Sub DongY_Click() Dim DB As Database Dim REC As Recordset Dim S As String Set DB = CurrentDb Set REC = DB.OpenRecordset("SACH") REC.AddNew REC("MA SACH") = Forms![NHAP_SACH]![MA SACH] REC("TEN SACH") = Forms![NHAP_SACH]![TEN SACH] REC("CHU DE") = Forms![NHAP_SACH]![CHU DE] REC("TAC GIA") = Forms![NHAP_SACH]![TAC GIA] REC("NHA XB") = Forms![NHAP_SACH]![NHA XB] REC("NAM XB") = Forms![NHAP_SACH]![NAM XB] REC("SO LUONG") = Forms![NHAP_SACH]![SO LUONG] REC("NGAY NHAP") = Forms![NHAP_SACH]![NGAY NHAP] REC("NOI DE") = Forms![NHAP_SACH]![NOI DE] REC.Update REC.Close Forms![NHAP_SACH]![MA SACH] = Null Forms![NHAP_SACH]![TEN SACH] = Null Forms![NHAP_SACH]![CHU DE] = Null Forms![NHAP_SACH]![TAC GIA] = Null Forms![NHAP_SACH]![NHA XB] = Null Forms![NHAP_SACH]![NAM XB] = Null Forms![NHAP_SACH]![SO LUONG] = Null Forms![NHAP_SACH]![NGAY NHAP] = Null Forms![NHAP_SACH]![NOI DE] = Null DoCmd.GoToControl "MA SACH" End Sub b. Khi gọi chức năng "Nhập bạn đọc" thì chương trình sẽ hiện ra Form sau: - Nút điều khiển "Thoát" thực hiện việc đóng Form lại và quay trở về chương trình chính. Thủ tục xử lý sự kiện này như sau: Private Sub thoat_Click() DoCmd.Close End Sub -Nút điều khiển "Không" có tác dụng không nhập thông tin đưa vào Form. Thủ tục xử lý sự kiện này như sau: Private Sub KHONG_Click() Forms![NHAP_BD]![MA BD] = Null Forms![NHAP_BD]![HO TEN] = Null Forms![NHAP_BD]![NGAY SINH] = Null Forms![NHAP_BD]![GIOI TINH] = Null Forms![NHAP_BD]![DIA CHI] = Null Forms![NHAP_BD]![NGAY LAM THE] = Null Forms![NHAP_BD]![NGAY HET HAN] = Null DoCmd.GoToControl "MA BD" End Sub -Nút điều khiển "Đồng ý" thực hiện nhệm vụ ghi thông tin nhập vào trên Form vào bảng "BAN DOC". Thủ tục xử lý sự kiện này như sau: Private Sub DONG_Y_Click() Dim DB As Database Dim REC As Recordset Set DB = CurrentDb Set REC = DB.OpenRecordset("BAN DOC", DB_OPEN_TABLE) REC.AddNew REC("MA BD") = Forms![NHAP_BD]![MA BD] REC("HO TEN") = Forms![NHAP_BD]![HO TEN] REC("NGAY SINH") = Forms![NHAP_BD]![NGAY SINH] REC("GIOI TINH") = Forms![NHAP_BD]![GIOI TINH] REC("DIA CHI") = Forms![NHAP_BD]![DIA CHI] REC("NGAY LAM THE") = Forms![NHAP_BD]![NGAY LAM THE] REC("NGAY HET HAN") = Forms![NHAP_BD]![NGAY HET HAN] REC.Update REC.Close Forms![NHAP_BD]![MA BD] = Null Forms![NHAP_BD]![HO TEN] = Null Forms![NHAP_BD]![NGAY SINH] = Null Forms![NHAP_BD]![GIOI TINH] = Null Forms![NHAP_BD]![DIA CHI] = Null Forms![NHAP_BD]![NGAY LAM THE] = Null Forms![NHAP_BD]![NGAY HET HAN] = Null DoCmd.GoToControl "MA BD" End Sub 2. Chức năng sửa đổi a. Khi gọi chức năng "Sửa sách" thì chương trình sẽ gọi đến Form - Nút điều khiển "Thoát" thực hiện nhiệm vụ đóng Form và quay trở về chương trình chính. Thủ tục xử lý sự kiện này như sau: Private Sub thoat_Click() DoCmd.Close End Sub - Nút điều khiển "Không" có tác dụng không sửa thông tin bạn đọc trên Form đưa vào. Thủ tục xử lý sự kiện này như sau: Private Sub KHONG_Click() DoCmd.GoToControl "MA SACH" End Sub - Nút điều khiển "Xem" thực hiện việc hiển thị lại tất cả các thông tin về sách có mã sách nhập vào trước khi sửa. Thủ tục xử lý sự kiện này như sau: Private Sub XEM_Click() Dim DB As Database, REC As Recordset Dim dk, ms As String Set DB = CurrentDb Set REC = DB.OpenRecordset("SACH", DB_OPEN_DYNASET) If Not IsNull(Forms![SUA_SACH]![MA SACH]) Then ms = Forms![SUA_SACH]![MA SACH] dk = "[MA SACH]=" + "'" + ms + "'" REC.FindFirst dk If Not REC.NoMatch Then Forms![SUA_SACH]![TEN SACH] = REC.Fields![TEN SACH] Forms![SUA_SACH]![TAC GIA] = REC.Fields![TAC GIA] Forms![SUA_SACH]![CHU DE] = REC.Fields![CHU DE] Forms![SUA_SACH]![NHA XB] = REC.Fields![NHA XB] Forms![SUA_SACH]![NAM XB] = REC.Fields![NAM XB] Forms![SUA_SACH]![NGAY NHAP] = REC.Fields![NGAY NHAP] Forms![SUA_SACH]![SO LUONG] = REC.Fields![SO LUONG] Forms![SUA_SACH]![NOI DE] = REC.Fields![NOI DE] Else MsgBox "Khong ton tai ban ghi nay" End If REC.Close DB.Close Else MsgBox "Hay nhap ma sach" End If End Sub - Nút điều khiển "Sửa" thực hiện việc sửa thông tin về sách có mã sách trên Form ra khỏi bảng "SACH". Nếu không có mã sách nào trong bảng "SACH" như trên Form nhập vào sẽ đưa ra thông báo không có mã đó. Thủ tục xử lý sự kiện này như sau: Private Sub SUA_Click() Dim DB As Database, REC As Recordset Dim dk, ms As String Set DB = CurrentDb Set REC = DB.OpenRecordset("SACH", DB_OPEN_DYNASET) If Not IsNull(Forms![SUA_SACH]![MA SACH]) Then ms = Forms![SUA_SACH]![MA SACH] dk = "[MA SACH]=" + "'" + ms + "'" REC.FindFirst dk If Not REC.NoMatch Then REC.Edit REC.Fields![MA SACH] = Forms![SUA_SACH]![MA SACH] REC.Fields![TEN SACH] = Forms![SUA_SACH]![TEN SACH] REC.Fields![TAC GIA] = Forms![SUA_SACH]![TAC GIA] REC.Fields![NHA XB] = Forms![SUA_SACH]![NHA XB] REC.Fields![NAM XB] = Forms![SUA_SACH]![NAM XB] REC.Fields![CHU DE] = Forms![SUA_SACH]![CHU DE] REC.Fields![SO LUONG] = Forms![SUA_SACH]![SO LUONG] REC.Fields![NGAY NHAP] = Forms![SUA_SACH]![NGAY NHAP] REC.Fields![NOI DE] = Forms![SUA_SACH]![NOI DE] REC.Update REC.Close DB.Close MsgBox "Da sua xong" Else MsgBox "Khong co ban ghi nay" End If Else MsgBox "Hay nhap ma sach" End If End Sub b. Khi gọi chức năng "Sửa bạn đọc" thì chương trình sẽ hiện ra Form - Nút điều khiển "Thoát" thực hiện công việc đóng Form và quay trở về chương trình chính. Thủ tục xử lý sự kiện này như sau: Private Sub thoat_Click() DoCmd.Close End Sub - Nút điều khiển "Không" có tác dụng không sửa thông tin bạn đọc nhập vào trên Form. Thủ tục xử lý sự kiện này như sau: Private Sub KHONG_Click() DoCmd.GoToControl "MA BD" End Sub - Nút điều khiển "Xem" thực hiện việc hiển thị lại toàn bộ thông tin về bạn đọc lên Form trước khi sửa. Thủ tục xử lý sự kiện này như sau: Private Sub XEM_Click() Dim DB As Database, REC As Recordset Dim dk, mbd As String Set DB = CurrentDb Set REC = DB.OpenRecordset("BAN DOC", DB_OPEN_DYNASET) If Not IsNull(Forms![SUA_BAN_DOC]![MA BD]) Then mbd = Forms![SUA_BAN_DOC]![MA BD] dk = "[MA BD]=" + "'" + mbd + "'" REC.FindFirst dk If Not REC.NoMatch Then Forms![SUA_BAN_DOC]![MA BD] = REC.Fields![MA BD] Forms![SUA_BAN_DOC]![HO TEN] = REC.Fields![HO TEN] Forms![SUA_BAN_DOC]![NGAY SINH] = REC.Fields![NGAY SINH] Forms![SUA_BAN_DOC]![GIOI TINH] = REC.Fields![GIOI TINH] Forms![SUA_BAN_DOC]![DIA CHI] = REC.Fields![DIA CHI] Forms![SUA_BAN_DOC]![NGAY LAM THE] = REC.Fields![NGAY LAM THE] Forms![SUA_BAN_DOC]![NGAY HET HAN] = REC.Fields![NGAY HET HAN] Else MsgBox "Khong ton tai ban ghi nay" DoCmd.GoToControl "MA BD" End If REC.Close DB.Close Else MsgBox "Hay nhap ma ban doc" End If End Sub - Nút điều khiển "Sửa" thực hiện việc sửa thông tin bạn đọc nhập mã trên Form vào bảng "BAN DOC". Nếu không có mã tương ứng trong bảng sẽ đưa ra thông báo không có mã. Thủ tục xử lý sự kiện này như sau: Private Sub SUA_Click() Dim DB As Database, REC As Recordset Dim dk, mbd As String Set DB = CurrentDb Set REC = DB.OpenRecordset("BAN DOC", DB_OPEN_DYNASET) If Not IsNull(Forms![SUA_BAN_DOC]![MA BD]) Then mbd = Forms![SUA_BAN_DOC]![MA BD] dk = "[MA BD]=" + "'" + mbd + "'" REC.FindFirst dk If Not REC.NoMatch Then REC.Edit REC.Fields![MA BD] = Forms![SUA_BAN_DOC]![MA BD] REC.Fields![HO TEN] = Forms![SUA_BAN_DOC]![HO TEN] REC.Fields![NGAY SINH] = Forms![SUA_BAN_DOC]![NGAY SINH] REC.Fields![GIOI TINH] = Forms![SUA_BAN_DOC]![GIOI TINH] REC.Fields![DIA CHI] = Forms![SUA_BAN_DOC]![DIA CHI] REC.Fields![NGAY LAM THE] = Forms![SUA_BAN_DOC]![NGAY LAM THE] REC.Fields![NGAY HET HAN] = Forms![SUA_BAN_DOC]![NGAY HET HAN] REC.Update MsgBox "Da sua xong" Else MsgBox "Khong co ban ghi nay" End If REC.Close DB.Close Else MsgBox "Hay nhap ma ban doc" End If End Sub 3. Chức năng loại bỏ a. Khi gọi chức năng "Xoá sách" thì chương trình sẽ hiển thị Form - Nút điều khiển "Thoát" thực hiện nhiệm vụ đóng Form và quay trở về chương trình chính. Thủ tục xử lý sự kiện nay như sau: Private Sub thoat_Click() DoCmd.Close End Sub - Nút điều khiển "Không" có tác dụng không xoá thông tin trong bảng mà trên Form đưa vào. Thủ tục xử lý sự kiện nạy như sau: Private Sub KHONG_Click() DoCmd.GoToControl "MA SACH" End Sub - Nút điều khiển "Xem" thực hiện việc hiển thị lại toàn bộ thông tin về sách lên Form trước khi xoá. Thủ tục xử lý sự kiện này như sau: Private Sub XEM_Click() Dim DB As Database, REC As Recordset Dim dk, ms As String Set DB = CurrentDb Set REC = DB.OpenRecordset("SACH", DB_OPEN_DYNASET) If Not IsNull(Forms![XOA_SACH]![MA SACH]) Then ms = Forms![XOA_SACH]![MA SACH] dk = "[MA SACH]='" & ms & "'" REC.FindFirst dk If Not REC.NoMatch Then Forms![XOA_SACH]![TEN SACH] = REC.Fields![TEN SACH] Forms![XOA_SACH]![TAC GIA] = REC.Fields![TAC GIA] Forms![XOA_SACH]![CHU DE] = REC.Fields![CHU DE] Forms![XOA_SACH]![NHA XB] = REC.Fields![NHA XB] Forms![XOA_SACH]![NAM XB] = REC.Fields![NAM XB] Else MsgBox "Khong ton tai ban ghi nay" End If REC.Close DB.Close Else MsgBox "Hay nhap ma sach" DoCmd.GoToControl "MA SACH" End If End Sub - Nút điều khiển "Đồng ý" thực hiện việc loại bỏ thông tin trong bảng "SACH" thoả mãn điều kiện mã sách đưa vào từ Form. Nếu không có mã sách này sẽ đưa ra thông báo không có mã. Thủ tục xử lý sự kiện này như sau: Private Sub DONG_Y_Click() Dim DB As Database, REC As Recordset Dim REC1 As Recordset Dim dk, ms As String Set DB = CurrentDb Set REC = DB.OpenRecordset("SACH", DB_OPEN_DYNASET) Set REC1 = DB.OpenRecordset("MUON_TRA", DB_OPEN_DYNASET) If Not IsNull(Forms![XOA_SACH]![MA SACH]) Then ms = Forms![XOA_SACH]![MA SACH] dk = "[MA SACH]='" & ms & "'" REC.FindFirst dk REC1.FindFirst dk If Not REC.NoMatch Then If REC1.NoMatch Then REC.Delete Forms![XOA_SACH]![MA SACH] = Null Forms![XOA_SACH]![TEN SACH] = Null Forms![XOA_SACH]![TAC GIA] = Null Forms![XOA_SACH]![CHU DE] = Null Forms![XOA_SACH]![NHA XB] = Null Forms![XOA_SACH]![NAM XB] = Null MsgBox "Da xoa xong" Else MsgBox "Ban doc dang muon sach nay" End If Else MsgBox "Khong ton tai ban ghi nay" End If REC.Close REC1.Close DB.Close Else MsgBox "Hay chon ma sach" End If End Sub b. Khi gọi đến chức năng "Xoá bạn đọc" thì chương trình hiện ra Form - Nút điều khiển "Thoát" thực hiện nhiệm vụ đóng Form và quay trở về chương trình chính. Thủ tục xử lý sự kiện nay như sau: Private Sub ket_thuc_Click() DoCmd.Close End Sub - Nút điều khiển "Không" có tác dụng không xoá thông tin bạn đọc theo yêu cầu nhập vào trên Form. Thủ tục xử lý sự kiện này như sau: Private Sub KHONG_Click() DoCmd.GoToControl "MA BD" End Sub - Nút điều khiển "Xem lại" thực hiện việc hiển thị lại toàn bộ thông tin về bạn đọc lên Form trước khi xoá. Thủ tục xử lý sự kiện này như sau: Private Sub xem_lai_Click() Dim DB As Database, REC As Recordset Dim dk, mbd As String Set DB = CurrentDb Set REC = DB.OpenRecordset("BAN DOC", DB_OPEN_DYNASET) If Not IsNull(Forms![XOA_BAN_DOC]![MA BD]) Then mbd = Forms![XOA_BAN_DOC]![MA BD] dk = "[MA BD]=" + "'" + mbd + "'" REC.FindFirst dk If Not REC.NoMatch Then Forms![XOA_BAN_DOC]![HO TEN] = REC.Fields![HO TEN] Forms![XOA_BAN_DOC]![NGAY SINH] = REC.Fields![NGAY SINH] Forms![XOA_BAN_DOC]![GIOI TINH] = REC.Fields![GIOI TINH] Forms![XOA_BAN_DOC]![DIA CHI] = REC.Fields![DIA CHI] Forms![XOA_BAN_DOC]![NGAY LAM THE] = REC.Fields![NGAY LAM THE] Forms![XOA_BAN_DOC]![NGAY HET HAN] = REC.Fields![NGAY HET HAN] Else MsgBox "Khong ton tai ban ghi nay" DoCmd.GoToControl "MA BD" End If REC.Close DB.Close Else MsgBox "Hay nhap ma ban doc" End If End Sub - Nút điều khiển "Đồng ý" thực hiện việc loại bỏ thông tin bạn đọc thoả mãn điều kiện mã nhập trên Form ra khỏi bảng "BAN DOC". Nếu không có mã tương ứng trong bảng thì sẽ đưa ra thông báo không có mã đó. Thủ tục xử lý sự kiện này như sau: Private Sub DONG_Y_Click() Dim DB As Database, REC As Recordset Dim REC1 As Recordset Dim dk, mbd As String Set DB = CurrentDb Set REC = DB.OpenRecordset("BAN DOC", DB_OPEN_DYNASET) Set REC1 = DB.OpenRecordset("MUON_TRA", DB_OPEN_DYNASET) If Not IsNull(Forms![XOA_BAN_DOC]![MA BD]) Then mbd = Forms![XOA_BAN_DOC]![MA BD] dk = "[MA BD]='" & mbd & "'" REC.FindFirst dk REC1.FindFirst dk If Not REC.NoMatch Then If REC1.NoMatch Then REC.Delete MsgBox "Da xoa xong" Forms![XOA_BAN_DOC]![MA BD] = Null Forms![XOA_BAN_DOC]![HO TEN] = Null Forms![XOA_BAN_DOC]![NGAY SINH] = Null Forms![XOA_BAN_DOC]![GIOI TINH] = Null Forms![XOA_BAN_DOC]![DIA CHI] = Null Forms![XOA_BAN_DOC]![NGAY LAM THE] = Null Forms![XOA_BAN_DOC]![NGAY HET HAN] = Null Else MsgBox "Ban doc van dang muon sach" End If Else MsgBox "Khong ton tai ban ghi nay" End If REC.Close REC1.Close DB.Close Else MsgBox "Hay nhap ma ban doc" End If End Sub 4.Chức năng mượn trả a. Khi chọn chức năng "Mượn sách" thì chương trình sẽ hiện ra Form - Nút điều khiển "Thoát" thực hiện việc đóng Form lại và quay trở về chương trình chính. Thủ tục sử lý sự kiện này như sau: Private Sub thoat_Click() DoCmd.Close End Sub - Nút điều khiển "Không" có tác dụng huỷ bỏ việc cho mượn sách. thủ tục xử lý sự kiện này như sau: Private Sub KHONG_Click() DoCmd.GoToControl ("MA SACH") End Sub - Nút điều khiển "Đồng ý" thực hiện việc ghi thông tin bạn đọc mượn sách và thông tin về cuốn sách mà bạn đọc mượn, đồng thời ghi ngày mượn và ngày hẹn trả vào bảng "MUON_TRA" với điều kiện chọn đúng mã bạn đọc và đúng mã sách. Nếu không đúng mã và bạn đọc đã mượn cuốn sách đó rồi thì sẽ đưa ra thông báo và không cho phép mượn. Thủ tục xử lý sự kiện này như sau: Private Sub DONG_Y_Click() Dim DB As Database, REC As Recordset Dim Tb As TableDef, ID As Index, FD As Field Dim REC1, REC2 As Recordset Dim ms, mbd As String Dim dk1, dk2 As String Dim sl As Byte Set DB = CurrentDb Set Tb = DB.TableDefs("MUON_TRA") Tb.Indexes.Delete "cs1" Set ID = Tb.CreateIndex("cs1") Set FD = ID.CreateField("MA BD") FD.Attributes = DB_DESCENDING ID.Fields.Append FD ID.Fields.Append ID.CreateField("MA SACH") Tb.Indexes.Append ID Set REC1 = DB.OpenRecordset("MUON_TRA", DB_OPEN_TABLE) Set REC2 = DB.OpenRecordset("BAN DOC", DB_OPEN_DYNASET) Set REC = DB.OpenRecordset("SACH", DB_OPEN_DYNASET) If (Not IsNull(Forms![MUON SACH]![MA SACH])) And (Not IsNull(Forms![MUON SACH]![MA BD])) Then Forms![MUON SACH]![NGAY MUON] = Date ms = Forms![MUON SACH]![MA SACH] mbd = Forms![MUON SACH]![MA BD] dk1 = "[MA SACH]='" & ms & "'" dk2 = "[MA BD]='" & mbd & "'" REC.FindFirst dk1 REC2.FindFirst dk2 If Not (REC.NoMatch) And (Not REC2.NoMatch) Then sl = REC.Fields![SO LUONG] REC1.Index = "cs1" REC1.Seek "=", mbd, ms If (sl > 0) And (REC1.NoMatch = True) Then MsgBox "Dong y cho muon sach " + REC.Fields![TEN SACH] REC.Edit REC.Fields![SO LUONG] = sl - 1 REC1.AddNew REC1.Fields![MA BD] = Forms![MUON SACH]![MA BD] REC1.Fields![MA SACH] = Forms![MUON SACH]![MA SACH] REC1.Fields![NGAY MUON] = Forms![MUON SACH]![NGAY MUON] REC1.Fields![NGAY HEN TRA] = Forms![MUON SACH]![NGAY HEN TRA] REC1.Update REC.Update Else If sl = 0 Then MsgBox "Sach da het" If REC1.NoMatch = False Then MsgBox "Ban da muon cuon sach nay roi" End If Else If REC.NoMatch Then MsgBox "Khong co ma sach nay, ban hay nhap lai" If REC2.NoMatch Then MsgBox "Khong co ma ban doc nay hoac ban chua lam the " End If Else MsgBox "Hay nhap day du ma sach va ma ban doc" End If Forms![MUON SACH]![MA BD] = Null Forms![MUON SACH]![MA SACH] = Null Forms![MUON SACH]![NGAY HEN TRA] = Null DoCmd.GoToControl ("MA SACH") REC.Close REC1.Close DB.Close End Sub b. Khi chọn chức năng "Trả sách" thì chương trình sẽ hiện ra Form - Nút điều khiển "Thoát" thực hiện việc đóng Form lại và quay trở về chương trình chính. Thủ tục xử lý sự kiện này như sau: Private Sub thoat_Click() DoCmd.Close End Sub - Nút điều khiển "Không" có tác dụng huỷ bỏ việc xoá thông tin về bạn đọc và thông tin sách bạn đọc mượn trong bảng "MUON_TRA". Thủ tục xử lý sự kiện này như sau: Private Sub KHONG_Click() DoCmd.GoToControl ("MA SACH") End Sub - Nút điều khiển "Đồng ý" thực hiện việc xóa thông tin về bạn đọc và thông tin về sách mà bạn đọc đã mượn với điều kiện mã đưa vào đúng. Nếu mã đưa vào không đúng thì sẽ đưa ra thông báo bạn đọc không mượn sách đó. Thủ tục xử lý sự kiện này như sau: Private Sub DONG_Y_Click() Dim DB As Database, REC As Recordset Dim REC1 As Recordset Dim ms, mbd As String Dim dk1, dk2 As String Dim sl As Byte Set DB = CurrentDb Set REC = DB.OpenRecordset("SACH", DB_OPEN_DYNASET) Set REC1 = DB.OpenRecordset("MUON_TRA", DB_OPEN_DYNASET) If (Not IsNull(Forms![TRA_SACH]![MA SACH])) And (Not IsNull(Forms![TRA_SACH]![MA BD])) Then ms = Forms![TRA_SACH]![MA SACH] mbd = Forms![TRA_SACH]![MA BD] dk1 = "[MA SACH]='" & ms & "'" dk2 = "[MA BD]='" & mbd & "'" + " And [MA SACH]='" & ms & "'" REC.FindFirst dk1 REC1.FindFirst dk2 If Not REC.NoMatch Then If Not REC1.NoMatch Then sl = REC.Fields![SO LUONG] REC.Edit REC.Fields![SO LUONG] = sl + 1 REC1.Delete REC.Update MsgBox "Cam on ban da hop tac voi chung toi" Else MsgBox "Ban khong muon cuon sach nay" End If Else MsgBox "Ban khong muon cuon sach nay" End If Forms![TRA_SACH]![MA SACH] = Null Forms![TRA_SACH]![MA BD] = Null REC.Close REC1.Close DB.Close Else MsgBox "Ban hay nhap day du ma sach va ma ban doc" End If End Sub c. Khi chọn chức năng "In quá hạn" thì chương trình sẽ thực hiện việc in báo biểu "BAO_TRA". Báo biểu có dạng như sau: Báo biểu này lấy dữ liệu từ bảng truy vấn "BAO_TRA". Truy vấn này có điều kiện chỉ lấy ra thông tin của những bạn đọc mượn sách và thông tin của sách mà bạn đọc mượn thoả mãn điều kiện ngày hẹn trả đã quá ngày hiện tại. Truy vấn này có dạng như sau: 5. Chức năng thống kê a. Khi chọn chức năng "Thống kê sách" thì chương trình sẽ thực hiện việc in báo biểu "TKE_SACH". Báo biểu này lấy dữ liệu từ bảng "SACH". Báo biểu này có dạng như sau: b. Khi chọn chức năng "Thống kê bạn đọc" thì chương trình sẽ thực hiện việc in báo biểu "TKE_BAN_DOC". Báo biểu này lấy dữ liệu từ bảng "BAN DOC". Báo biểu này có dạng như sau: c. Khi chọn chức năng "Thống kê mượn sách" thì chương trình sẽ thực hiện việc in báo biểu "TKE_MUON_SACH". Báo biểu này in ra các thông tin về bạn đọc mượn sách và thông tin về sách mà bạn đọc mượn. Báo biểu này có dạng như sau: Báo biểu trên lấy dữ liệu từ bàng truy vấn "TKE_MUON_TRA". Bảng truy vấn này như sau: 6.Chức năng xem sách a. Khi chọn chức năng "Xem sách theo mã sách" thì chương trình sẽ hiển thị Form - Nút điều khiển "Thoát" thực hiện việc đóng Form và quay trở lại chương trình chính. Thủ tục xử lý sự kiện này như sau: Private Sub thoat_Click() DoCmd.Close End Sub - Nút điều khiển "Không" có tác dụng không xem thông tin theo yêu cầu mã nhập vào trên Form. Thủ tục xử lý sự kiện này như sau: Private Sub KHONG_Click() Forms![TRA_CUU]![TEN SACH] = Null Forms![TRA_CUU]![CHU DE] = Null Forms![TRA_CUU]![TAC GIA] = Null Forms![TRA_CUU]![NHA XB] = Null Forms![TRA_CUU]![NAM XB] = Null Forms![TRA_CUU]![SO LUONG] = Null DoCmd.GoToControl "MA SACH" End Sub - Nút điều khiển "Xem" thực hiện việc hiển thị các thông tin về sách lên Form theo yêu cầu mã sách nhập vào. Nếu không có mã sách sẽ thông báo không có mã đó. Thủ tục sử lý sự kiện như sau: Private Sub XEM_Click() Dim DB As Database Dim REC As Recordset Dim dk, ms As String Set DB = CurrentDb Set REC = DB.OpenRecordset("SACH", DB_OPEN_DYNASET) If Not IsNull(Forms![TRA_CUU]![MA SACH]) Then ms = Forms![TRA_CUU]![MA SACH] dk = "[MA SACH]='" & ms & "'" REC.FindFirst dk If Not REC.NoMatch Then Forms![TRA_CUU]![TEN SACH] = REC.Fields![TEN SACH] Forms![TRA_CUU]![TAC GIA] = REC.Fields![TAC GIA] Forms![TRA_CUU]![CHU DE] = REC.Fields![CHU DE] Forms![TRA_CUU]![NHA XB] = REC.Fields![NHA XB] Forms![TRA_CUU]![NAM XB] = REC.Fields![NAM XB] Forms![TRA_CUU]![SO LUONG] = REC.Fields![SO LUONG] Else MsgBox "Khong co ma sach nay! Ban hay nhap lai" End If Else MsgBox "Ban hay nhap ma sach" End If End Sub b. Khi chọn chức năng "Xem theo tên tác giả" thì chương trình sẽ hiển thị Form sau: - Nút điều khiển "Thoát" thực hiện việc đóng Form và quay trở về chương trình chính. Thủ tục xử lý sự kiện này như sau: Private Sub thoat_Click() DoCmd.Close End Sub - Nút điều khiển "Không" có tác dụng không tra cứu theo yêu cầu tên tác giả nhập vào trên Form. Thủ tục xử lý sự kiện này như sau: Private Sub KHONG_Click() DoCmd.GoToControl "TAC GIA" End Sub - Nút điều khiển "Đồng ý" thực hiện việc tạo truy vấn "SACH_TG" thoả mãn điều kiện tên tác giả đưa vào từ Form. Sau đó mở một Form mà trên đó có các thông tin về sách theo yêu cầu tên tác giả nhập trên Form. Thông tin trên Form này lấy từ truy vấn vừa tạo. Form này như sau: Thủ tục xử lý sự kiện này như sau: Private Sub DONG_Y_Click() Dim DB As Database Dim QR As QueryDef Dim st, tg As String Set DB = CurrentDb If Not IsNull(Forms![TRA_CUU_TG]![TAC GIA]) Then tg = Forms![TRA_CUU_TG]![TAC GIA] tg = "*" + tg tg = tg + "*" st = "SELECT SACH.[MA SACH],SACH.[TEN SACH],SACH.[CHU DE]," st = st & "SACH.[TAC GIA],SACH.[NHA XB],SACH.[NAM XB],SACH.[SO LUONG]" st = st & " FROM SACH WHERE(((SACH.[TAC GIA]) like """ & tg & """));" DB.QueryDefs.Delete "SACH_TG" Set QR = DB.CreateQueryDef QR.Name = "SACH_TG" QR.SQL = st DB.QueryDefs.Append QR DB.Close DoCmd.OpenForm "SACH_TG" Else MsgBox "Hay nhap ten tac gia" End If End Sub c. Khi chọn chức năng "Xem theo chủ đề" thì chương trình sẽ hiển thị Form sau: - Nút điều khiển "Thoát" thực hiện việc đóng Form và quay trở về chương trình chính. Thủ tục xử lý sự kiện này như sau: Private Sub thoat_Click() DoCmd.Close End Sub - Nút điều khiển "Không" có tác dụng không thực hiện tra cứu theo chủ đề nhập trên Form. Thủ tục xử lý sự kiện này như sau: Private Sub KHONG_Click() DoCmd.GoToControl "CHU DE" End Sub - Nút điều khiển "Đồng ý" thực hiện việc tạo ra truy vấn "SACH_CD" thoả mãn yêu cầu tên chủ đề nhập vào trên Form. Sau đó thực hiện việc mở một Form mà trên đó hiển thị các thông tin về sách lấy từ truy vấn vừa tạo. Thủ tục xử lý sự kiện này như sau: Private Sub DONG_Y_Click() Dim DB As Database, REC As Recordset Dim QR As QueryDef Dim st, cd As String Set DB = CurrentDb If Not IsNull(Forms![TRA_CUU_CD]![CHU DE]) Then cd = Forms![TRA_CUU_CD]![CHU DE] cd = "*" + cd cd = cd + "*" st = "SELECT SACH.[MA SACH],SACH.[TEN SACH],SACH.[CHU DE]," st = st & "SACH.[TAC GIA],SACH.[NHA XB],SACH.[NAM XB],SACH.[SO LUONG]" st = st & "FROM SACH WHERE(((SACH.[CHU DE]) like """ & cd & """));" DB.QueryDefs.Delete "SACH_CD" Set QR = DB.CreateQueryDef QR.Name = "SACH_CD" QR.SQL = st DB.QueryDefs.Append QR DB.Close DoCmd.OpenForm "SACH_CD" Else MsgBox "Hay nhap ten chu de" End If End Sub d. Khi chọn chức năng "Xem theo tên sách" thì chương trình hiển thị Form sau: - Nút điều khiển "Thoát" thực hiện việc đóng Form và quay trở về chương trình chính. Thủ tục xử lý sự kiện này như sau: Private Sub thoat_Click() DoCmd.Close End Sub - Nút điều khiển "Không" có tác dụng không tra cứu thông tin sách khi nhập tên sách trên Form. Thủ tục xử lý sự kiện này như sau: Private Sub KHONG_Click() DoCmd.GoToControl "TEN SACH" End Sub - Nút điều khiển "Đồng ý" thực hiện việc tạo truy vấn "SACH_TS" thoả mãn điều kiện tên sách nhập vào trên Form. Sau đó thực hiện việc mở Form mà thông tin trên Form này lấy từ truy vấn vừa tạo. Form này như sau: Thủ tục xử lý sự kiện này như sau: Private Sub DONG_Y_Click() Dim DB As Database Dim QR As QueryDef Dim st, ts As String Set DB = CurrentDb If Not IsNull(Forms![TRA_CUU_TS]![TEN SACH]) Then ts = Forms![TRA_CUU_TS]![TEN SACH] ts = "*" + ts ts = ts + "*" st = "SELECT SACH.[MA SACH],SACH.[TEN SACH],SACH.[CHU DE]," st = st & "SACH.[TAC GIA],SACH.[NHA XB],SACH.[NAM XB],SACH.[SO LUONG]" st = st & " FROM SACH WHERE(((SACH.[TEN SACH]) like """ & ts & """ ));" DB.QueryDefs.Delete "SACH_TS" Set QR = DB.CreateQueryDef QR.Name = "SACH_TS" QR.SQL = st DB.QueryDefs.Append QR DB.Close DoCmd.OpenForm "SACH_TS" Else MsgBox "Hay nhap ten sach" End If End Sub chương IV: cài đặt và đánh giá hệ thống I. Cài đặt và thực hiện chương trình Bạn có thể chép tệp .dmb bằng các lệnh copy của hệ điều hành DOS hoặc Windows hoặc NC... Sau khi đã có tệp qltv.dmb bạn khởi động Windows và mở file qltv.dmb từ chương chương trình Access. II. Đánh giá hệ thống Hệ thống được thiết kế với một menu bảng chọn thuận tiện với người sử dụng. Với một hệ thống các cửa sổ, người sử dụng có thể thao tác một cách dễ dàng khi chọn các chức năng làm việc. - Các dữ liệu được tổ chức một cách chặt chẽ -Các thuộc tính khoá liện kết rõ ràng, đảm bảo tính nhất quán khi khai thác chương trình. Những tồn tại chưa khắc phục được: Trong quá trình xây dựng chưa quan tâm đến việc thiết kế giao diện ngôn ngữ và quản lý dữ liệu của nó... Do thời gian ngắn và hiểu biết về ngôn ngữ Access cũng hạn chế nên khả năng phân tích thiết kế và cài đặt hệ thống chưa được tốt. III. Kết luận Trong thời kỳ thông tin hiện đại, việc sử dụng các ứng dụng tin học vào việc xử lý thông tin là một việc không thể thiếu được. Ngoài việc tiếp nhận các phần mềm ứng dụng của nước ngoài chúng ta còn có các chương trình ứng dụng của chính mình. Kết hợp với yêu cầu từng bước tin học hoá việc "Quản lý thư viện", tôi đã xây dựng đề tài "Phân tích, thiết kế hệ thống quản lý thư viện". Đề tài đã thu được một số kết quả như sau: -Lưu trữ và truy cập dữ liệu một cách an toàn, chính xác - Phục vụ kịp thời các yêu cầu quản lý và tìm kiếm thông tin - Kết quả thống kê được chính xác và nhanh chóng Tuy vậy, do thời gian và kinh nghiệm còn nhiều hạn chế do đó đề tài này chắc chắn còn nhiều thiếu sót, rất mong được sự giúp đỡ của các thầy cô giáo và các bạn. Qua đây tôi cũng xin chân thành cảm ơn cô Nguyễn Thu Hương đã tận tình chỉ bảo trong quá trinh thực tập.

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

  • docP0061.doc