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.
48 trang |
Chia sẻ: huong.duong | Lượt xem: 1447 | Lượt tải: 3
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:
- P0061.doc