* Form Cập nhật Độc giả:
* Form Tìm kiếm theo Độc giả:
+ Tìm kiếm theo Mã độc giả:
* Form Tìm kiếm theo Sách:
+ Tìm kiếm theo Mã sách:
* Form Xử lý thông tin Mượn:
* Form Xử lý thông tin quá hạn:
Chương 5
CÀI ĐẶT, SỬ DỤNG
ĐÁNH GIÁ KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN I. CÀI ĐẶT, SỬ DỤNG:
* Cài đặt: Chương trình được cài đặt bởi Visual Basic 6.0 với giao diện dễ nhìn với các nút lệnh làm việc thuận tiện cho việc cập nhật hay xử lý thông tin.
* Sử dụng: Tạo thư mục “QLTV” và Copy file có tên là “QLTV.vbp” có trong đĩa CD vào ổ cứng. Sau đó chạy chương trình bằng biểu tượng “QLTV” hoặc tạo biểu tượng ra màn hình Desktop để chạy trực tiếp. Chương trình sẽ tự động chạy với form chính.
Sau khi sử dụng xong người sử dụng muốn ra khỏi chương trình thì đưa chuột đến Menu thoát để kết thúc làm việc với chương trình Quản lý Thư viện.
II. ĐÁNH GIÁ KẾT LUẬN CH ƯƠNG TRÌNH:1. Tính khả thi của đề tài: 1. Tính khả thi của đề tài:
Đề tài Quản lý Thư viện là một đề tài mang tính chất thực tế cao, được viết trên ngôn ngữ VB 6.0. Đề tài dựa trên quá trình khảo sát cụ thể hệ thống của trường và đưa ra những giải pháp tối ưu mang lại hiệu quả cao cho người Quản lý Thư viện và độc giả, đề tài này có thể ứng dụng vào trường THCS Tân Tiến hiện nay.
2. Kết quả đạt được:
Sau khi chạy thử chương trình, chương trình đã đạt được một số kết quả do bài toán đặt ra như:
- Cập nhật độc giả nhanh chóng. - Cập nhật và lưu trữ sách đầy đủ.
- Các thông tin xử lý mượn trả sách nhanh gọn. - Tìm kiếm thông tin nhanh, chính xác.
- Kiểm soát được số lượng sách, số lượng độc giả. - Thông kê báo cáo chính xác đạt hiệu quả cao.
3. Những hạn chế cần khắc phục:
Tuy bài toán đã đạt được một số yêu cầu ban đầu của giáo viên hướng dẫn đặt ra. Tuy nhiên, về giao diện cũng như quy trình khai thác hệ thống cũng chưa thật sự thân thiện và dễ sử dụng cho người khai thác hệ thống. Ngoài hệ thống cần phải sửa đổi một số chức năng, cấu trúc dữ liệu cho phù hợp với thực tế.
4. Hướng phát triển của đề tài:
Kết quả chủ yếu của đồ án tốt nghiệp này là mở ra một hướng mới cho việc phát triển chương trình Quản lý Thư viện của trường THCS Tân Tiến với những gì thu được qua quá trình khảo sát hệ thống thực tế. Do thời gian có hạn nên em chi dừng lại mức phân tích thiết kế hệ thống và một phần trong công việc xây dựng hệ thống mới. Chính vì vậy, hệ thống mà em thực hiện không thể tránh khỏi những sai sót nhất định.
Mục đích của đề tài mới tập trung vào mô hình Quản lý Thư viện trường THCS Tân Tiến, chưa có tính mở rộng cho các trường khác cùng hệ cùng mô hình.
KẾT LUẬN
Trong tình hình thực tế hiện nay nhu cầu quản lý các tài liệu văn bản trong các cơ quan, và đặc biệt đối với thư viện trường THCS Tân Tiến vẫn lưu trữ và xử lý thông tin bằng sổ sách là một việc rất mất thời gian và khó khăn.
Do đó chương trình Quản lý Thư viện này sẽ giúp nhân viên thư viện lưu trữ và xử lý thông tin kịp thời và nhanh chóng, đảm bảo các yêu cầu cần thiết của độc giả, đưa các thông tin và dữ liệu kịp thời mà quản lý bằng sổ sách không thể có được.
Sau một thời gian làm đề tài với thời gian có hạn chương trình đã đạt được cơ bản yêu cầu ban đầu đặt ra. Tuy vậy để chương trình được ứng dụng tốt hơn thân thiện hơn với người sử dụng và ứng dụng được vào cho trường THCS Tân Tiến thì tác giả cần phải đầu tư thêm nhiều thời gian và công sức thì mới có thể đưa vào ứng dụng thực tế.
Tuy vậy, do chưa nhiều kinh nghiệm nên chương trình không tránh khỏi những thiếu sót. Rất mong được sự giúp đỡ của các thầy cô và bạn bè để chương trình được hoàn thiện hơn.
Một lần nữa em xin chân thành cảm ơn cô giáo ThS.Nguyễn Thanh Hương cùng các thầy cô trong Bộ môn Công nghệ thông tin đã tận tình chỉ bảo em trong quá trình thực tập. Cảm ơn ban Quản lý thư viện và các thầy cô trường THCS Tân Tiến đã tạo điều kiện cho em thực tập trong thời gian qua.
Hưng yên, tháng 03 năm 2008
Sinh viên thực hiện
PHỤ LỤC * Modul_chinh:
'Khai bao bien cho toan chuong trinh Global cn As New ADODB.Connection Global rs As New ADODB.Recordset Public dd, s As String
Public rsktra As New ADODB.Recordset Public flag_taomoi As Boolean
Sub main()
dd = App.Path & "\QLTVien.mdb" cn.CursorLocation = adUseClient
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dd & ";" & _
"Persist Security Info=False" cn.Open
frmmain.Show 'frmCNDG.Show End Sub
Function mo_bang(caulenh_sql As String) As ADODB.Recordset If mo_bang Is Nothing Then Set mo_bang = New ADODB.Recordset If mo_bang.State = adStateOpen Then mo_bang.Close
mo_bang.Open caulenh_sql, cn, adOpenDynamic, adLockOptimistic, adCmdText End Function
* Form Main:
Private Sub mncapnhatsach_Click() frmCNS.Show
Private Sub mnudg_Click() frmCNDG.Show
End Sub
Private Sub mnuQH_Click() 'frmDGQH.Show
frmXLQH.Show End Sub
Private Sub mnuthoat_Click() Unload Me
End Sub
Private Sub mnutimDG_Click() frmTKDG.Show
End Sub
Private Sub mnutimsach_Click() frmTKS.Show
End Sub
Private Sub mnuXLMS_Click() frmMS.Show
End Sub
Private Sub mnuXLTS_Click() frmTS1.Show
Private Sub TKDGCMS_Click() frm_TKDGchuaMS.Show End Sub
Private Sub TKDGMS_Click() frm_TKDGMS.Show
End Sub
Private Sub TKNCC_Click() frm_TKNhaXB.Show
End Sub
Private Sub TKSCM_Click() frm_TKSChuamuon.Show End Sub
Private Sub TKSDM_Click() frm_TKSDangmuon.Show End Sub
* Form Cập nhật độc giả:
Dim sqlktra As String Dim sql As String Sub mo_csdl()
sql = "SELECT * FROM DOCGIA " Set rs = mo_bang(sql)
Set gridDG.DataSource = rs
hienthi ' goi thu tuc hien thi du lieu cmdhuy.Enabled = False
cmdluu.Enabled = False cmdtaomoi.Enabled = True End Sub Sub hienthi() If rs.RecordCount > 0 Then With rs txtmadg.Text = !Madocgia txthoten.Text = !HovaTen txtlop.Text = !Lop txtnsinh.Value = !NamSinh txtsothe.Text = !SoThe
If !GioiTinh = -1 Then optnam.Value = True If !GioiTinh = 0 Then optnu.Value = True End With
End If End Sub
Private Sub cmdhuy_Click() txtmadg.Text = ""
txthoten.Text = "" txtlop.Text = "" txtnsinh.Text = "" txtsothe.Text = ""
If flag_taomoi = True Then rs.CancelUpdate
End If
cmdluu.Enabled = False cmdhuy.Enabled = False cmdtaomoi.Enabled = True
cmdxoa.Enabled = True cmdsua.Enabled = True End Sub
Private Sub cmdinthe_Click() frmTTV.Show
End Sub
Private Sub cmdluu_Click() If txtmadg.Text = "" Then
MsgBox "Ban chua nhap ma doc gia!", vbInformation, "Thong bao" txtmadg.SetFocus
Exit Sub End If
If txthoten = "" Then
MsgBox "Ban chua nhap ho ten!", vbInformation, "Thong bao" txthoten.SetFocus
Exit Sub End If
If (flag_taomoi = True) Then ' Kiem tra xem co ton tai MADG khi tao moi sqlktra = "SELECT Madocgia FROM DOCGIA WHERE Madocgia='" & txtmadg.Text & "'"
Set rsktra = mo_bang(sqlktra) If rsktra.RecordCount > 0 Then
MsgBox "Da ton tai Ma doc gia:" & txtmadg.Text, vbInformation, "Thong bao" txtmadg.SetFocus
rsktra.Close Exit Sub End If rs.AddNew
'luu du lieu lay tu cac text vao database rs!Madocgia = txtmadg.Text rs!HovaTen = txthoten.Text rs!Lop = txtlop.Text rs!NamSinh = txtnsinh.Value rs!SoThe = txtsothe.Text End If rs.Update rs!HovaTen = txthoten.Text rs!Lop = txtlop.Text rs!NamSinh = txtnsinh.Text rs!SoThe = txtsothe.Text cmdtaomoi.Enabled = True cmdhuy.Enabled = False cmdluu.Enabled = False cmdsua.Enabled = True cmdxoa.Enabled = True End Sub
Private Sub cmdsua_Click() flag_taomoi = False txtmadg.Locked = True txtmadg.Enabled = False cmdluu.Enabled = True cmdsua.Enabled = False End Sub
Private Sub cmdtaomoi_Click() txtmadg.Text = ""
txtlop.Text = "" txtnsinh.Text = "" txtsothe.Text = "" txthoten.Text = "" flag_taomoi = True cmdtaomoi.Enabled = False cmdluu.Enabled = True cmdhuy.Enabled = True cmdsua.Enabled = False cmdxoa.Enabled = False End Sub
Private Sub cmdthoat_Click() Unload Me
End Sub
Private Sub cmdxoa_Click() If rs.RecordCount <= 0 Then
MsgBox "Khong con doc gia nao de xoa!", vbInformation Exit Sub
End If
If MsgBox("co xoa doc gia voi ma la " & txtmadg.Text & " khong?", vbQuestion + vbYesNo) = vbYes Then
rs.Delete
If rs.BOF = True Then rs.MoveNext If rs.BOF = False Then rs.MovePrevious rs.Requery
hienthi End If
cmdluu.Enabled = False End Sub
Private Sub Form_Load() mo_csdl
End Sub
Private Sub gridDG_Click() hienthi
End Sub
* Cập nhật sách:
Dim sqlktra As String Dim sql As String Sub mo_csdl()
sql = "SELECT * FROM SACH " Set rs = mo_bang(sql)
Set gridsach.DataSource = rs hienthi ' goi thu tuc hien thi du lieu cmdhuy.Enabled = False cmdluu.Enabled = False cmdtaomoi.Enabled = True End Sub Sub hienthi() If rs.RecordCount > 0 Then With rs txtNgaynhap.Value = !Ngaynhap txtMS.Text = !Masach txtTentg.Text = !Tentacgia
txtTensach.Text = !Tensach txtLS.Text = !Loaisach txtNXB.Text = !NhaXB txtNamXB.Text = !NamXB txtSotrang.Text = !Sotrang txtSotap.Text = !Sotap txtDG.Value = !Dongia txtSL.Value = !Soluong txtKesach.Text = !Kesach txtGiasach.Text = !Giasach End With End If End Sub
Private Sub cmdhuy_Click() txtNgaynhap.Value = "" txtMS.Text = "" txtTentg.Text = "" txtTensach.Text = "" txtLS.Text = "" txtNXB.Text = "" txtNamXB.Text = "" txtSotrang.Text = "" txtSotap.Text = "" txtDG.Value = "" txtSL.Value = "" txtKesach.Text = "" If flag_taomoi = True Then rs.CancelUpdate
End If cmdluu.Enabled = False cmdhuy.Enabled = False cmdtaomoi.Enabled = True cmdxoa.Enabled = True cmdsua.Enabled = True End Sub
Private Sub cmdluu_Click() If txtNgaynhap.Value = "" Then
MsgBox "Ban chua nhap ngay nhap!", vbInformation, "Thong bao" txtNgaynhap.SetFocus
Exit Sub End If
If txtMS = "" Then
MsgBox "Ban chua nhap ma sach!", vbInformation, "Thong bao" txtMS.SetFocus
Exit Sub End If
If (flag_taomoi = True) Then ' Kiem tra xem co ton tai MASACH khi tao moi
sqlktra = "SELECT Masach FROM SACH WHERE Masach='" & txtMS.Text & "'" Set rsktra = mo_bang(sqlktra)
If rsktra.RecordCount > 0 Then
MsgBox "Da ton tai Ma sach:" & txtMS.Text, vbInformation, "Thong bao" txtMS.SetFocus
rsktra.Close Exit Sub End If rs.AddNew
'luu du lieu lay tu cac text vao database If rs.RecordCount > 0 Then With rs !Ngaynhap = txtNgaynhap.Value !Masach = txtMS.Text !Tentacgia = txtTentg.Text !Tensach = txtTensach.Text !Loaisach = txtLS.Text !NhaXB = txtNXB.Text !NamXB = txtNamXB.Text !Sotrang = txtSotrang.Text !Sotap = txtSotap.Text !Dongia = txtDG.Value !Soluong = txtSL.Value !Kesach = txtKesach.Text !Giasach = txtGiasach.Text End With End If End If rs.Update With rs !Ngaynhap = txtNgaynhap.Value !Masach = txtMS.Text !Tentacgia = txtTentg.Text !Tensach = txtTensach.Text !Loaisach = txtLS.Text !NhaXB = txtNXB.Text !NamXB = txtNamXB.Text !Sotrang = txtSotrang.Text
!Sotap = txtSotap.Text !Dongia = txtDG.Value !Soluong = txtSL.Value !Kesach = txtKesach.Text !Giasach = txtGiasach.Text End With cmdtaomoi.Enabled = True cmdhuy.Enabled = False cmdluu.Enabled = False cmdsua.Enabled = True cmdxoa.Enabled = True End Sub
Private Sub cmdsua_Click() flag_taomoi = False txtMS.Locked = True txtMS.Enabled = False cmdluu.Enabled = True cmdsua.Enabled = False End Sub
Private Sub cmdtaomoi_Click() txtNgaynhap.Value = "" txtMS.Text = "" txtTentg.Text = "" txtTensach.Text = "" txtLS.Text = "" txtNXB.Text = "" txtNamXB.Text = ""
txtSotrang.Text = "" txtSotap.Text = "" txtDG.Value = "" txtSL.Value = "" txtKesach.Text = "" txtGiasach.Text = "" flag_taomoi = True cmdtaomoi.Enabled = False cmdluu.Enabled = True cmdhuy.Enabled = True cmdsua.Enabled = False cmdxoa.Enabled = False End Sub
Private Sub cmdthoat_Click() Unload Me
End Sub
Private Sub cmdxoa_Click() If rs.RecordCount <= 0 Then
MsgBox "Khong con sach nao de xoa!", vbInformation Exit Sub
End If
If MsgBox("co xoa sach voi ma la " & txtMS.Text & " khong?", vbQuestion + vbYesNo) = vbYes Then
rs.Delete
If rs.BOF = True Then rs.MoveNext If rs.BOF = False Then rs.MovePrevious rs.Requery
hienthi End If
cmdluu.Enabled = False End Sub
Private Sub Form_Load() mo_csdl
End Sub
Private Sub gridsach_Click() hienthi
End Sub
* Form Mượn sách:
Dim sqlMS As String Dim sqlDG As String Dim sqlktra As String Dim sql As String Sub mo_csdl()
sql = "SELECT * FROM MUONTRA" Set rs = mo_bang(sql)
Set gridMuonsach.DataSource = rs hienthi ' goi thu tuc hien thi du lieu End Sub Sub hienthi() If rs.RecordCount > 0 Then With rs txtMaDG.Text = !Madocgia txtMS.Text = !Masach
txtNgaymuon.Value = !Ngaymuon txtNgaytra.Value = !Ngayhentra End With
End If End Sub
Public Sub DM_Masach()
sqlMS = "Select Masach From SACH" Set rsMS = mo_bang(sqlMS)
Set txtMS.RowSource = rsMS
txtMS.ListField = "Masach" 'Hien thi truong ma sach End Sub
Public Sub DM_MaDG()
sqlDG = "Select Madocgia From DOCGIA" Set rsDG = mo_bang(sqlDG)
Set txtMaDG.RowSource = rsDG
txtMaDG.ListField = "Madocgia" 'Hien thi truong ma doc gia End Sub
Private Sub cmdhuy_Click() txtMaDG.Text = "" txtMS.Text = "" txtNgaymuon.Value = "" txtNgaytra.Value = "" rs.CancelUpdate End Sub
Private Sub cmdMuon_Click() If txtMaDG.Text = "" Then
MsgBox "Ban chua chon Ma doc gia!", vbInformation, "Thong bao" txtMaDG.SetFocus
Exit Sub End If
If txtMS = "" Then
MsgBox "Ban chua chon Ma sach!", vbInformation, "Thong bao" txtMS.SetFocus
Exit Sub End If
'luu du lieu lay tu cac text vao database rs.AddNew If rs.RecordCount > 0 Then With rs !Madocgia = txtMaDG.Text !Masach = txtMS.Text !Ngaymuon = txtNgaymuon.Value !Ngayhentra = txtNgaytra.Value End With End If rs.Update With rs !Madocgia = txtMaDG.Text !Masach = txtMS.Text !Ngaymuon = txtNgaymuon.Value !Ngayhentra = txtNgaytra.Value End With End Sub
Private Sub cmdthoat_Click() Unload Me
End Sub
Private Sub Form_Load() mo_csdl
DM_Masach DM_MaDG End Sub
Private Sub gridMuonsach_Click() hienthi
End Sub
Private Sub txtNgaymuon_Change() txtNgaytra = txtNgaymuon + 30 End Sub
* Form Trả sách:
Dim sqlMS As String Dim sqlDG As String Dim sqlktra As String Dim sql As String Sub mo_csdl()
sql = "SELECT * FROM MUONTRA" Set rs = mo_bang(sql)
Set gridTS.DataSource = rs
hienthi ' goi thu tuc hien thi du lieu End Sub
cboMDG.Text = rs!Madocgia cboMS.Text = rs!Masach
cboNgayhentra.Value = rs!Ngayhentra cboNT.Value = rs!Ngaytra
End Sub
Public Sub DM_MaDG()
sqlDG = "Select Madocgia From MUONTRA" Set rsDG = mo_bang(sqlDG)
Set cboMDG.RowSource = rsDG
cboMDG.ListField = "Madocgia" 'Hien thi truong ma doc gia End Sub
Private Sub cboMDG_Click(Area As Integer) Set rs = New Recordset
rs.Open "Select Masach from MUONTRA where Madocgia= '" & cboMDG.Text & "'", cn, adOpenDynamic, adLockOptimistic
cboMS.Text = rs.Fields("Masach") End Sub
Private Sub cmdquahan_Click() Dim Thongbao As Integer
If (rs!Ngaytra - rs!Ngayhentra) <= 0 Then
Thongbao = MsgBox("Doc gia tra sach dung han!Xin xoa TT doc gia", vbOKOnly, "Thong bao")
Else
frmXLQH.Show End If
End Sub
Private Sub cmdthoat_Click() Unload Me
End Sub
Private Sub cmdtra_Click() If cboMDG.Text = "" Then
MsgBox "Ban chua chon Ma doc gia!", vbInformation, "Thong bao" cboMDG.SetFocus
Exit Sub End If
If cboMS = "" Then
MsgBox "Ban chua chon Ma sach!", vbInformation, "Thong bao" cboMS.SetFocus
Exit Sub End If
'luu du lieu lay tu cac text vao database 'rs.AddNew If rs.RecordCount > 0 Then With rs !Madocgia = cboMDG.Text !Masach = cboMS.Text !Ngayhentra = cboNgayhentra.Value !Ngaytra = cboNT.Value End With
End If rs.Update With rs !Madocgia = cboMDG.Text !Masach = cboMS.Text !Ngayhentra = cboNgayhentra.Value !Ngaytra = cboNT.Value End With End Sub
Private Sub Form_Load() mo_csdl
'DM_Masach DM_MaDG End Sub
Private Sub gridTS_Click() If Not rs!Ngaytra Then hienthi Else cboMDG.Text = rs!Madocgia cboMS.Text = rs!Masach cboNgayhentra.Value = rs!Ngayhentra cboNT = "" End If End Sub * Form Xử lý quá hạn:
Dim sqlMS As String Dim sqlDG As String Dim sqlktra As String Dim sql As String Sub mo_csdl()
sql = "SELECT * FROM MUONTRA where (Ngaytra-Ngayhentra)>0" Set rs = mo_bang(sql)
Set Grid1.DataSource = rs
hienthi ' goi thu tuc hien thi du lieu End Sub Sub hienthi() If rs.RecordCount > 0 Then With rs txtMDG.Text = !Madocgia txtMS.Text = !Masach txtNgaymuon.Value = !Ngaymuon txtNgayhentra.Value = !Ngayhentra txtNgaytra.Value = !Ngaytra 'txtQuahan.Text = !Quahan End With End If
'txtQuahan = txtNgaytra - txtNgayhentra End Sub
Private Sub cmdquaylai_Click() 'txtMDG.Text = ""
' txtMS.Text = ""
' txtNgayhentra.Value = "" ' txtNgaytra.Value = "" ' txtQuahan.Text = "" rs.MovePrevious End Sub
Private Sub cmdthoat_Click() Unload Me
End Sub
Private Sub cmdtieptuc_Click() 'txtMDG.Text = "" ' txtMS.Text = "" ' txtNgaymuon.Value = "" ' txtNgayhentra.Value = "" ' txtNgaytra.Value = "" ' txtQuahan.Text = "" rs.MoveNext End Sub
Private Sub cmdxoaDG_Click() End Sub
Private Sub Form_Load() mo_csdl
'If rs!Ngaytra - rs!Ngayhentra > 0 Then 'End If
Private Sub grid1_Click() hienthi
txtQuahan = txtNgaytra - txtNgayhentra End Sub
Private Sub txtQuahan_Change()
txtQuahan = txtNgaytra - txtNgayhentra End Sub
* Form Tìm kiếm độc giả:
Public sql As String
Dim rs_timkiem As New ADODB.Recordset Private Sub cmdthoat_Click()
Unload Me End Sub
Sub Ma_Docgia()
Dim sql_MDG As String ' Dung cho Ma doc gia sql_MDG = "Select Madocgia from DOCGIA" Set rs = mo_bang(sql_MDG)
Set cboMDG.RowSource = rs
If rs.RecordCount <= 0 Then Exit Sub cboMDG.ListField = "Madocgia" 'cboMDG.BoundColumn = "Madocgia" End Sub
Sub Ten_Docgia()
Dim sql_TDG As String ' Dung cho Ten doc gia sql_TDG = "Select HovaTen from DOCGIA"
Set rs = mo_bang(sql_TDG) Set cboTDG.RowSource = rs
If rs.RecordCount <= 0 Then Exit Sub cboTDG.ListField = "HovaTen" 'cboTDG.BoundColumn = "HovaTen" End Sub
Private Sub Form_Load() Ma_Docgia
Ten_Docgia End Sub
Private Sub cmdTK_Click()
If optMDG.Value = True Then 'Tim kiem theo ma
sql = "select * from DOCGIA where Madocgia like '" & cboMDG.Text & "%'" End If
If optTDG.Value = True Then ' tim kiem theo ten DG
sql = "select * from DOCGIA where HovaTen like '%" & cboTDG.Text & "'" End If
Set rs_timkiem = mo_bang(sql) If rs_timkiem.RecordCount = 0 Then MsgBox "Khong tim thay ban ghi nao" End If
Set gridTKDG.DataSource = rs_timkiem End Sub
* Form Tìm kiếm sách:
Public sql As String
Private Sub cmdthoat_Click() Unload Me
End Sub
Sub Ma_Sach()
Dim sql_MS As String ' Dung cho Ma sach sql_MS = "Select Masach from SACH" Set rs = mo_bang(sql_MS)
Set cboMS.RowSource = rs
If rs.RecordCount <= 0 Then Exit Sub cboMS.ListField = "Masach"