4.3.1. Form cửa sổ chính
Cửa sổ chính bao gồm các menu chức năng:
-Hệ thống -Quản lý -Tra cứu -Thống kê -Trợ giúp 4.3.2. Form Login
Trớc khi có thể làm việc đợc với chơng trình “Quản lý th viện” thì ngời sử dụng phải nhập mật khẩu và tên truy cập. Chơng trình kiểm tra xem mật khẩu đa vào có đúng không. Nếu đúng thì bạn mới có quyền làm việc với chơng trình, còn nếu sai thì bạn phải nhập lại mật khẩu, nhập mật khẩu sai 3 lần thì không còn quyền truy cập nữa, hệ thống tự động đóng lại.
4.3.3. Form quản lý độc giả
Chức năng quản lý độc giả cho phép thêm, sửa, xóa thông tin độc giả. Để in thẻ cho độc giả nào thì chọn độc giả đó rồi click “In Thẻ”, khi đó thẻ đợc in ra nh sau: (ví dụ in thẻ cho Nguyễn Xuân Trờng)
4.3.4. Form quản lý chủng loại
Form quản lý chủng loại thực hiện các công việc nh thêm, sửa, xóa các chủng loại sách nhập vào th viện. Khi muốn thực hiện công việc nào thì nhấn vào một nút có tên tơng ứng trên form.
4.3.5. Form quản lý nhà xuất bản
Tơng tự quản lý chủng loại, form quản lý nhà xuất bản thực hiện các công việc tơng ứng với các nút trên form. Cần công việc nào thì nhấn vào nút có tên tơng ứng. Form quản lý chủng loại đợc gọi từ menu “Quản lý” hoặc click chuột phải lên màn hình nền chơng trình.
4.3.6. Form quản lý tác giả.
From “quản lý tác giả giúp th viện quản lý tác giả một cách đơn giản theo nh các nút đợc thiết kế trên form. Mỗi nút là một chức năng t- ơng ứng.
4.3.7. Form quản lý sách
Form này cho phép cập nhật thông tin về độc giả. Các phím chức năng đã hiện đày đủ chức năng của form. Khi muốn hủy bỏ thao tác thì click “Reset”.
4.3.8. Form cập nhập chi tiết sách
Khi trong danh mục sách nhập đợc cập nhập, nếu th viện tiến hành cập nhập sách vào th viện thì click nút “cập nhập” trên form “Quản lý sách”, khi đó xuất hiện “cập nhập chi tiết sách”. Form này cho phép nhập những lần nhập sách về vào kho sách.
4.3.9. Form quản lý mợn trả
Khi độc giả nào muốn mợn tài liệu trong th viện. Độc giả đó có thể xem trớc phích tra cứu đợc dán tại nơi thuận tiện cho bạn đọc xem. Nếu không thì có thể tra cứu nhờ chức năng tra cứu. Bạn đọc mợn tài liệu nào thì cho biết mã tài liệu hoặc tên tài liệu cần mợn, số thẻ bạn đọc. Các
thông tin trên khi nhập vào thì click nút “Mợn”, Hệ thống đa ra form “quản lý mợn tài liệu th viện” nh sau:
Ta tiến hành xác lập thông tin mơn rồi click nút “Xác nhận mợn”, hệ thống kiểm tra thông tin có hợp lệ hay không. Nếu hợp lệ thì máy sẽ in ra một phiếu mợn cho độc giả:
4.3.10. Form tra cứu độc giả
Khi có nhu cầu tra cứu độc giả thì gọi chức năng tra cứu độc giả. Form tra cứu độc giả theo tên cho phép tìm ra những ngời có tên bạn nhập vào hoặc có tên tơng tự giống tên bạn nhập.
4.3.11. Form tra cứu tài liệu
Khi có nhu cầu tra cứu tài liệu thì gọi chức năng tra cứu tài liệu từ menu “Tra cứu”. Bạn có thể tra cứu theo một trong bốn thông tin trong bốn ô nhập liệu trên.
4.3.12. Form thống kê mợn trả
Khi có nhu cầu thống kê hồ sơ mợn trả ta gọi chức năng “Thống kê mợn trả” trong menu “Thống kê” hoặc click chuột phải trên màn hình nền của chơng trình chọn “Quản lý thống kê”. bạn có thể kết hợp cả số thẻ và mã tài liệu hoặc thống kê riêng rẽ.
4.3.13. Form thống kê hồ sơ độc giả
Để thuận lợi cho việc theo dõi độc giả của th viện, chức năng thống kê độc giả cho phép ta làm ấy một cách thuận tiện. Cần thống kê theo chí nào ta chọn rồi click “Thống Kê”. nếu có kết quả tìm đợc thì nút “In” đợc hiện ra cho phép in danh sách kết quả ra máy in.
4.3.14. Form báo cáo mợn trả tài liệu th viện
Mỗi năm th viện cần báo cáo một lần. Chọn chức năng “báo cáo m- ợn trả” trong menu “Thống kê”. Mạc định năm cần báo cáo là năm hiện tại. cần báo cáo năm nào thì nhập vào năm đó rồi click Ok, khi đó hệ thống sẽ ra danh sách báo cáo:
Chơng 5
Nhận xét đánh giá
5.1. kết luận đánh giá và phơng hớng phát triển5.1.1. Các kết quả đạt đợc 5.1.1. Các kết quả đạt đợc
+ Hệ thống đáp ứng, hỗ trợ đựơc phần nào công việc cuả th viện, giảm bớt các chức năng hoạt động thủ công. Những công việc có thể dùng đợc máy tính tra cứu, thống kê, tính toán đã đợc hoàn thiện và áp dụng hoàn toàn vào trong quản lý tự động, vừa tăng tính hiệu quả nhanh chóng và đem lại các giá trị thông tin ít bị sai lệch.
+ Hệ thống cho phép cập nhập các thông tin mới, cho phép tự động phân loại các danh mục có của th viện. Quá trình sửa, xóa thông tin sẽ đ- ợc thực hiện theo yêu cầu của ngời dùng.
+ Hệ thống thiết kế logic nên khi có một sự thay đổi trong th viện toàn bộ các chức năng liên quan sẽ tự động điều chỉnh một cách phù hợp để duy trì tính liên tục của hệ thống.
+ Các luồng thông tin lu chuyển trong hệ thống đợc kiểm soát chặt chẽ bởi các công cụ đợc kiểm tra và tìm kiếm.
+Dữ liệu đợc thiết kế trong hệ thống đã đợc chuẩn hóa nên không gian lu giữ thông tin trong máy tính đợc tối u và có thể truy xuất dữ liệu đợc đầy đủ và thuận tiện.
+ Đối với mọi đối tợng ngời sử dụng, các thao tác thuận tiện, dễ dàng và trình bày màn hình hợp với các giao diện chuẩn nh WINDOWS.
+ Có chức năng mật khẩu nhằm phân quyền sử dụng cho các đối t- ợng ngời dùng khác nhau nh độc giả và thủ th.
5.1.2. Đánh giá
Chơng trình đợc xây dựng và thiết kế trên hệ quản trị cơ sở ACCESS và ngôn ngữ lập trình VISUAL BASIC hiện đại và đa năng. Có đợc những đặc tính, u điểm nổi bật sau:
- Trực quan dễ sử dụng.
- Đáp ứng đợc nhu cầu quản lý của ngời sử dụng, xác định rõ quyền hạn của ngời sử dụng.
- Hỗ trợ đắc lực cho ngời quản lý, hay các nhân viên trong quá trình làm việc, nhập dữ liệu đợc thực hiện một cách nhanh chóng, dễ dàng nhờ sự tự động kiểm tra dữ liệu vào.
- Việc tra cứu tài liệu đợc nhanh chóng và thuận tiện đáp ứng nhu cầu độc giả.
- Các thống kê báo cáo đợc kết xuất nhanh chóng kịp thời giúp cho việc quản lý nắm giữ các thông tin của th viện. luận văn đã phân tích, thiết kế hầu nh đầy đủ cơ sở dữ liệu của hệ thống quản lý th viện, tuy nhiên một số vấn đề vẫn cha đợc đa vào phân tích. Với sự hàn chế về thời gian cùng với kiến thức và khả năng lập trình, ch- ơng trình không tránh khỏi những thiếu sót. Cụ thể hạn chế nhận thấy của chơng trình là:
- Cha đa hệ thống quản lý mã vạch quốc tế vào để quản lý tài liệu.
- Cha giải quyết đợc hết những vấn đề nảy sinh trong quá trình quản lý.
- Chơng trình cha chạy đợc trên mạng.
5.1.3. Phơng hớng phát triển chơng trình
- Phát triển chơng trình chạy trên mạng máy tính, đây là hớng phát triển đầu tiên của chơng trình, vì trong thực tế cơ sở dữ liệu trên mạng có ý nghĩa lớn hơn nhiều trên các máy đơn lẻ.
- Từ đó cung cấp thêm chức năng tra cứu tài liệu thông tin qua web. Chức năng này cho phép độc giả tra cứu dữ liệu từ xa, sử dụng các phần mềm để truy cập vào các trang web của th viện.
- Quản lý các đơn đặt hàng và hóa đơn mua tài liệu của th viện.
- Chuẩn hóa chơng trình theo chuẩn quốc tế nhằm liên kết các trung tâm th viện để chia sẻ các nguồn lực tài nguyên của nhau.
Qua thời gian thực tập tại Th Viện Hà Nội, em đã đợc trang bị thêm nhiều kiến thức thực tế phong phú và bổ ích, đó là cơ sở cho em hoàn thành bài báo cáo của mình. Em rất mong nhận đợc sự đóng góp ý kiến của các thầy, cô giáo và bạn bè để chơng trình đợc tiếp tục hoàn thiện, đáp ứng một cách tốt nhất cho công tác Quản Lý Th Viện.
Em xin chân thành cảm ơn!
Phụ lục 1. modul quản lý độc giả
Dim Rs As DAO.Recordset Private Sub cmdInThe_Click() With frmTheBanDoc
.Label4.Caption = frmQuanLyDocGia.txtHoTen.Text .Label5.Caption = frmQuanLyDocGia.txtNgaySinh.Text .Label8.Caption = frmQuanLyDocGia.txtNgayLamThe.Text .Label9.Caption = frmQuanLyDocGia.txtGiaTriDen.Text If frmQuanLyDocGia.optDuocMuon.Value = True Then .Label10.Caption = "Thẻ Đọc+Mợn" Else .Label10.Caption = "Thẻ Đọc" End If End With frmTheBanDoc.Show frmTheBanDoc.PrintForm Unload frmTheBanDoc
MsgBox "Dã in thẻ bạn đọc", vbOKOnly + vbInformation, "Thông báo"
End Sub
Private Sub cmdMoveFirst_Click() Rs.MoveFirst
Call HienThi End Sub
Private Sub cmdMoveLast_Click() Rs.MoveLast
Call HienThi End Sub
Private Sub cmdMoveNext_Click() Rs.MoveNext
If Not Rs.EOF Then Call HienThi Else Rs.MoveLast Call HienThi End If End Sub
Private Sub cmdMovePrevious_Click() Rs.MovePrevious
If Not Rs.BOF Then Call HienThi
Else
Rs.MoveFirst Call HienThi End If
End Sub
Private Sub cmdSua_Click() On Error GoTo Loi
Rs.Edit If chbSinhVien.Value = 1 Then Rs(12).Value = True Else Rs(12).Value = False End If ' rs(0) = Me.txtSoThe.Text Rs(1) = Trim(Me.txtHoTen.Text) Rs(2) = Me.txtNgaySinh.Text Rs(3) = Me.cboGioiTinh.Text Rs(4) = Me.txtDiaChi.Text Rs(5) = Me.txtTrinhDo.Text Rs(6) = Me.txtChuyenNganh.Text Rs(7) = Me.txtHocHam.Text Rs(8) = Me.txtHocVi.Text Rs(9) = Me.txtNoiCongTac.Text Rs(10) = Me.txtNgayLamThe.Text Rs(11) = Me.txtGiaTriDen.Text If optDuocMuon.Value = True Then Rs(13).Value = True
Else
Rs(13).Value = False End If
Rs.Update
MsgBox "Dã sửa thành công", vbOKOnly + vbInformation, "Thông báo"
Call HienThi: Exit Sub Loi:
MsgBox "Không Thể sửa thông tin đợc vì thông tin nhập vào không hợp lệ!", vbOKOnly + vbInformation, "Sửa thông tin"
End Sub
Private Sub cmdTimKiem_Click()
Dim L 'Khai bao bien xem co quyet dinh tim tiep hay khong? Dim YN ' Khai bao bien hoi xem chon cach tim nao?
cmdThem.Caption = "Thêm &Mới"
Call cmdThem_Click
cmdThem.Caption = "Thêm &Mới"
YN = MsgBox("Bạn tìm theo số thẻ phải không?" & Chr(10) & "Nhấn 'No' dể tìm theo 'Họ và tên'", vbYesNo + vbQuestion +
vbDefaultButton1, "Thông báo") If YN = vbYes Then Me.txtSoThe.SetFocus cmdTimKiem.Caption = "Tìm" cmdTimKiem.Default = True Exit Sub Else Me.txtHoTen.SetFocus cmdTimKiem.Caption = "Tìm" cmdTimKiem.Default = True End If Else
cmdThem.Caption = "Thêm &Mới"
If Me.txtSoThe.Text = "" And Me.txtHoTen.Text = "" Then cmdTimKiem.Caption = "Tìm &Kiếm"
'Call cmdTimKiem_Click
cmdThem.Caption = "Thêm &Mới" Else If Me.txtSoThe.Text <> "" Then cmdTimKiem.Caption = "Tìm &Kiếm" If Rs.RecordCount = 0 Then Call HienThi Else Rs.MoveFirst
Do While Not Rs.EOF
If LCase(Rs(0)) = LCase(Trim(Me.txtSoThe.Text)) Then
Call HienThi
MsgBox "Dã tìm thấy", vbOKOnly + vbInformation, "Thông báo"
cmdTimKiem.Default = False cmdTimKiem.Caption = "Tìm &Kiếm" Exit Do End If Rs.MoveNext Loop If Rs.EOF Then
MsgBox "Không tìm thấy độc giả nào có số thẻ là : " & txtSoThe.Text, vbOKOnly + vbInformation, "Thông báo"
cmdTimKiem.Caption = "Tìm &Kiếm" Rs.MoveFirst
End If End If Else
Rs.MoveFirst
Do While Not Rs.EOF
If LCase(Rs(1)) = LCase(Trim(Me.txtHoTen.Text)) Then
Call HienThi
L = MsgBox("Dã tìm thấy. Bạn có tìm tiếp không??", vbYesNo + vbQuestion, "Thông báo")
cmdTimKiem.Caption = "Tìm &Kiếm" cmdTimKiem.Default = False If L = 7 Then Exit Do End If End If Rs.MoveNext Loop If Rs.EOF Then cmdTimKiem.Caption = "Tìm &Kiếm"
MsgBox "Không tìm thấy", vbOKOnly + vbInformation, "Thông báo" Rs.MoveFirst End If End If End If End If End Sub
Private Sub cmdTTMuonTra_Click() frmChiTietMuonTraCuaDocGia.Show End Sub
Private Sub cmdXoa_Click() Dim YN Dim KT Dim txtST If Rs.RecordCount <> 0 Then 'Dim strSQL As String Dim RsMT As Recordset
Set RsMT = db.OpenRecordset("tblMuonTra", dbOpenDynaset) txtST = Me.txtSoThe.Text
' strSQL = "select * from tblMuonTra where SoThe=txtst"
YN = MsgBox("Bạn có chắc chắn xoá bạn đọc này không? ", vbQuestion + vbYesNo, "Thông báo")
If YN = vbYes Then
If RsMT.RecordCount = 0 Then KT = True
Else
RsMT.MoveFirst
Do While Not RsMT.EOF
If RsMT(0) = txtST And RsMT(11).Value = True Then KT = True Else: KT = False End If RsMT.MoveNext Loop End If If KT = False Then
MsgBox "Bạn đọc đang mợn sách, không thể xoá", vbOKOnly + vbInformation, "Thông báo"
Else
Rs.Delete
MsgBox "Dã xoá rồi", vbOKOnly + vbInformation, "Thông báo"
Rs.MoveNext Call HienThi End If
End If
Else: MsgBox "Danh Sách Bạn Dọc Rỗng", vbOKOnly + vbInformation, "Thông báo"
End If End Sub
Private Sub Form_Load()
Me.Left = (Screen.Width - Me.Width) / 2 Me.Top = Screen.Height * 0.1
Set Rs = db.OpenRecordset("tbldocgia", dbOpenDynaset) cboGioiTinh.AddItem "Nam" cboGioiTinh.AddItem "Nữ" optDuocMuon.Value = True Call HienThi End Sub Sub HienThi() If Rs.RecordCount = 0 Then
MsgBox "Danh sách bạn đọc rỗng", vbOKOnly + vbInformation, "Thông báo"
cmdMoveFirst.Visible = False cmdMoveLast.Visible = False cmdMovePrevious.Visible = False cmdMoveNext.Visible = False cboGioiTinh.Text = "" Me.txtSoThe.Text = "" Me.txtHoTen.Text = "" Me.txtNgaySinh.Text = "" Me.txtDiaChi.Text = "" Me.txtTrinhDo.Text = "" Me.txtChuyenNganh.Text = "" Me.txtNoiCongTac.Text = "" Me.txtNgayLamThe.Text = "" Me.txtHocHam.Text = "" Me.txtHocVi.Text = "" Me.txtGiaTriDen.Text = "" chbSinhVien.Value = 0 Else
If Rs.EOF Then Rs.MoveLast
If Rs(3) = "Nam" Or Rs(3) = "nam" Then cboGioiTinh.Text = "Nam"
ElseIf Rs(3) = "Nu" Or Rs(3) = "nu" Or Rs(3) = "Nữ" Or Rs(3) = "nữ" Then
cboGioiTinh.Text = "Nữ"
Else: cboGioiTinh.Text = "Không xác định" End If
If Rs(12).Value = True Then chbSinhVien.Value = 1 Else chbSinhVien.Value = 0 End If Me.txtSoThe.Text = Rs(0) Me.txtHoTen.Text = Rs(1) Me.txtNgaySinh.Text = Rs(2) Me.txtDiaChi.Text = Rs(4) Me.txtTrinhDo.Text = Rs(5) Me.txtChuyenNganh.Text = Rs(6) Me.txtNoiCongTac.Text = Rs(9) Me.txtNgayLamThe.Text = Rs(10) Me.txtHocHam.Text = Rs(7) Me.txtHocVi.Text = Rs(8) Me.txtGiaTriDen.Text = Rs(11) If Rs(13).Value = True Then optDuocMuon.Value = True Else
optChiDoc.Value = True End If cmdMoveFirst.Visible = True cmdMoveLast.Visible = True cmdMovePrevious.Visible = True cmdMoveNext.Visible = True End If End Sub
Private Sub txtHoTen_GotFocus()
If KiemTraTextRong(txtSoThe.Text) And Me.cmdThem.Caption = "Ghi Lại" Then
MsgBox "Bạn cha nhập số thẻ", vbOKOnly + vbInformation txtSoThe.Text = ""
txtSoThe.SetFocus Exit Sub
End If
If cmdThem.Caption = "Ghi Lại" Then If KiemTraTonTaiThe Then
MsgBox "Số thẻ đã tồn tại", vbOKOnly + vbInformation txtSoThe.Text = ""
txtSoThe.SetFocus End If
End If End Sub
Private Function KiemTraTonTaiThe() As Boolean KiemTraTonTaiThe = False
Dim RsDG8 As DAO.Recordset
Set RsDG8 = db.OpenRecordset("Select * from tbldocgia where sothe='" & txtSoThe.Text & "'")
If RsDG8.RecordCount > 0 Then KiemTraTonTaiThe = True RsDG8.Close
Set RsDG8 = Nothing End Function
2. modul quản lý sách
Dim RsSN As DAO.Recordset ' Khai bao bien de tro toi bang tblSachNhap
Dim RsCL As DAO.Recordset Dim RsNXB As DAO.Recordset
Dim RsMT As DAO.Recordset Dim YNTK
Private Sub cmdCapNhap_Click() Unload Me
frmCapNhapChiTietSach.Show End Sub
Private Sub cmdChiTietSach_Click() Unload Me
frmChiTietSach.Show End Sub
Private Sub cmdGhiSua_Click() Dim RsCL1 As DAO.Recordset Dim RsNXB1 As DAO.Recordset Dim YN
Dim strSQL As String
strSQL = "Select * from tblchungloai where machungloai='" & cboMaLoai.Text & "'"
Set RsCL1 = db.OpenRecordset(strSQL)
Set RsNXB1 = db.OpenRecordset("Select * from tblnhaxuatban where manhaxuatban='" & cboMaNXB.Text & "'")
If RsCL1.RecordCount > 0 And RsNXB1.RecordCount > 0 Then YN = MsgBox("Bạn có chắc chắn sửa không?", vbQuestion + vbYesNo + vbDefaultButton1) If YN = 6 Then RsSN.Edit RsSN(1) = Trim(txtTenSach.Text) RsSN(2) = cboMaLoai.Text RsSN(3) = cboMaTacGia.Text RsSN(4) = cboMaNXB.Text RsSN(8) = txtNgonNgu.Text RsSN(7) = txtSoTrang.Text RsSN(9) = txtGhiChu.Text RsSN.Update
MsgBox "Đã sửa rồi", vbOKOnly + vbInformation, "Thông báo" End If
Else: MsgBox "Không thể ghi lại thay đổi do: 'Mã NXB' Hay 'Mã Chủng Loại' Không Tồn Tại", vbOKOnly + vbInformation, "Thông báo" End If
RsCL1.Close
Set RsCL1 = Nothing RsNXB1.Close
Set RsNXB1 = Nothing End Sub
Private Sub cmdHuySach_Click() If txtMaSach.Text = "" Then
MsgBox "Bạn hủy mã sách nào?", vbOKOnly + vbQuestion txtMaSach.SetFocus Exit Sub End If Dim RsSN121 As DAO.Recordset Set RsSN121 = db.OpenRecordset("tblSachNhap") If RsSN121.RecordCount > 0 Then
Do While Not RsSN121.EOF
If LCase(RsSN121(0)) = LCase(Trim(txtMaSach.Text)) Then RsSN121.Close Set RsSN121 = Nothing frmHuySach.Show Exit Sub End If RsSN121.MoveNext Loop If RsSN121.EOF Then RsSN121.Close Set RsSN121 = Nothing
MsgBox "Không có mã sách " & "'" & txtMaSach.Text & "'", vbOKOnly + vbInformation txtMaSach.Text = "" txtMaSach.SetFocus Exit Sub End If End If End Sub
Private Sub cmdMovePrevious_Click() RsSN.MovePrevious
If RsSN.BOF Then RsSN.MoveFirst Call HienThi Else: Call HienThi End If
End Sub
Private Sub cmdThoat_Click() Dim YN
YN = MsgBox("Bạn có chắc chắn thoát?", vbYesNo + vbQuestion + vbDefaultButton1, "Thông báo")
If YN = 6 Then Unload Me 'frmMain.Show End If
End Sub
Private Sub cmdTimKiem_Click()
If cmdTimKiem.Caption = "Tìm &Kiếm" Then