Đề tài Quản lý thư viện được xây dựng trên hệ quản trị cơ sở dữ liệu Access 97

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.

 

doc48 trang | Chia sẻ: huong.duong | Lượt xem: 1360 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Đề tài Quản lý thư viện được xây dựng trên hệ quản trị cơ sở dữ liệu Access 97, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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])) A

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

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