📄 borrow_re.frm
字号:
.TextMatrix(1, i) = ""
Next
End With
End Sub
Private Sub cmdReborrow_Click()
Dim iKN%, Index%, strSQL$
If Val(txtBorrowed) = 0 Then Exit Sub
Index = Val((InputBox("请输入续借图书在借书清单中的序号:", _
"图书借阅管理")))
If Index < 1 Or Index > LendedBooks.Rows - 1 Then
MsgBox "输入的序号无效!", vbCritical, "图书借阅管理"
Exit Sub
End If
With LendedBooks
'修改图书借阅记录
strSQL = "UPDATE 借阅 SET 借书日期='" & Date & "',还书日期='" _
& DateAdd("m", 1, Date) & "',续借否 = '是' " _
& "WHERE 书号='" & .TextMatrix(Index, 2) _
& "' AND 读者号='" & Trim(ReaderNO) & "'"
End With
Library_Manager.Library_Manager_Con.Execute strSQL
'修改借书清单
LendedBooks.TextMatrix(Index, 3) = Date
LendedBooks.TextMatrix(Index, 4) = DateAdd("m", 1, Date)
LendedBooks.TextMatrix(Index, 5) = "是"
End Sub
Private Sub cmdBorrow_Click()
Dim strCode$, strT$, i%
If Val(txtBorrowed) >= 5 Then
MsgBox "已到最大借书量,不能再借书!", vbCritical, "图书借阅管理"
Exit Sub
End If
strCode = UCase(InputBox("请输入图书条码:", "图书借阅管理"))
If strCode = "" Then Exit Sub
'检查当前库中有该条码的图书是否输入正确
With Library_Manager.rsBook
If .State = adStateClosed Then .Open
.Find "书号='" & strCode & "'"
If .EOF Then
MsgBox "图书馆中无书号为<" & strCode & ">的图书!", _
vbCritical, "图书借阅管理"
Exit Sub
End If
If .Fields("数量") <= .Fields("外借数") Then
MsgBox "本书已经全部外借了!", _
vbCritical, "图书借阅管理"
Exit Sub
End If
End With
'检查指定条码对应的图书是否已在借书清单中,不允许借同样的图书
With LendedBooks
For i = 1 To .Rows - 1
If .TextMatrix(i, 2) = strCode Then Exit For
Next
If i <> .Rows Then
MsgBox strCode & "书号图书你已经借阅,在借书清单中序号为" _
& i & "!", , "图书借阅管理"
Exit Sub
End If
End With
'添加借书记录
With Library_Manager.rsBorrow_Re
If .State = adStateClosed Then .Open
.AddNew
.Fields("书号") = strCode
.Fields("读者号") = Trim(ReaderNO)
.Fields("借书日期") = Date
.Fields("还书日期") = DateAdd("m", 1, Date)
.Fields("续借否") = "否"
.Update
End With
'修改馆藏书目可借数,在检查条码时对应的馆藏记录已是当前记录
With Library_Manager.rsBook
.Fields("外借数") = .Fields("外借数") + 1
'生成借书清单项目信息
If Val(txtBorrowed) = 0 Then
strT = " " & 1
Else
strT = " " & LendedBooks.Rows
End If
strT = strT & vbTab & .Fields("书名")
strT = strT & vbTab & strCode
.Update '保存对可借数的修改
.Filter = "" '取消按库室名过滤
End With
'生成借书清单项目信息
strT = strT & vbTab & Date
strT = strT & vbTab & DateAdd("m", 1, Date)
strT = strT & vbTab & " 否"
'添加借书清单项目
With LendedBooks
If Val(txtBorrowed) <> 0 Then
.AddItem strT
Else
.FixedRows = 0
.RemoveItem 1
.AddItem strT
.FixedRows = 1
End If
End With
'修改显示的个人借书数量
txtBorrows = Val(txtBorrows) - 1
txtBorrowed = Val(txtBorrowed) + 1
If 5 > Val(txtBorrowed) Then
cmdBorrow.Enabled = True
cmdReborrow.Enabled = True
Else
cmdBorrow.Enabled = False
cmdReborrow.Enabled = False
End If
End Sub
Private Sub cmdNum_Click()
Dim strNum$, strSQL1$, strSQL2$, i%
'输入借阅证编号
strNum = InputBox("请输入读者号码:", "图书借阅管理")
'检查借阅证号是否正确
With Library_Manager.rsReader
If .State = adStateClosed Then .Open
.MoveFirst
.Find "读者号='" & strNum & "'"
If .EOF Then
MsgBox "读者号输入错误!", vbCritical, "图书借阅管理"
Exit Sub
End If
End With
If strNum = "" Then Exit Sub
'获得读者个人及借书信息
strSQL1 = "select * from 读者 where 读者号 = '" & strNum & "'"
strSQL2 = "select distinct 书名, 借阅.书号,借书日期,还书日期,续借否 from 借阅, 图书" & _
" where 借阅.书号 = 图书.书号 " & _
"and 借阅.读者号 = '" & strNum & "'" & "order by 借书日期"
With Library_Manager.Library_Manager_Con
If .State = adStateClosed Then .Open
Set objInfo = New Recordset
Set objInfo = .Execute(strSQL1)
Set objBooks = New Recordset
Set objBooks = .Execute(strSQL2)
End With
'显示读者个人信息
If objInfo.RecordCount > 0 Then
With objInfo
ReaderNO = .Fields("读者号")
ReaderName = .Fields("姓名")
Sex = .Fields("性别")
ReaderType = .Fields("类别")
txtYN = .Fields("欠书否")
txtBorrowed = objBooks.RecordCount
txtBorrows = 5 - objBooks.RecordCount
End With
'根据借书情况请用借阅功能按钮
cmdNum.Enabled = False
If objBooks.RecordCount > 0 Then
cmdReborrow.Enabled = True
cmdReturn.Enabled = True
End If
If 5 > Val(txtBorrowed) Then
cmdBorrow.Enabled = True
cmdReborrow.Enabled = True
Else
cmdBorrow.Enabled = False
cmdReborrow.Enabled = False
End If
'显示借书清单
If objBooks.RecordCount > 0 Then _
ShowBooksList objBooks, LendedBooks
End If
End Sub
Private Sub cmdReturn_Click()
Dim strCode$, i%, isOut As Boolean
strCode = UCase(InputBox("请输入书号:", "图书借阅管理"))
If strCode = "" Then Exit Sub
'检查指定条码对应的图书是否已在借书清单中
With LendedBooks
For i = 1 To .Rows - 1
If .TextMatrix(i, 2) = strCode Then Exit For
Next
If i = .Rows Then
MsgBox strCode & "书号输入错误!", , "图书借阅管理"
Exit Sub
Else
'检查图书是否超期
If .TextMatrix(i, 0) Like "[*]*" Then isOut = True
End If
End With
'删除或修改借书记录
With Library_Manager.rsBorrow_Re
If .State = adStateClosed Then .Open
.Filter = "读者号='" & Trim(ReaderNO) & "'"
.Find "书号='" & strCode & "'"
.Delete '删除未超期借书记录
'End If
.Update
.Filter = ""
End With
'修改可借数
With Library_Manager.rsBook
If .State = adStateClosed Then .Open
.Find "书号='" & strCode & "'"
.Fields("外借数") = .Fields("外借数") - 1
.Update
.Filter = ""
End With
'删除或修改借书清单项目
With LendedBooks
'删除借书清单中的借书记录
If .Rows <> 2 Then
.RemoveItem i '如果不是最后一条借书记录,则将其删除
Else
'清除第1行中的借书记录数据
For i = 0 To .Cols - 1
.TextMatrix(1, i) = ""
Next
End If
End With
'修改读者借书数目
txtBorrows = Val(txtBorrows) + 1
txtBorrowed = Val(txtBorrowed) - 1
If 5 > Val(txtBorrowed) Then
cmdBorrow.Enabled = True
cmdReborrow.Enabled = True
Else
cmdBorrow.Enabled = False
cmdReborrow.Enabled = False
End If
End Sub
Private Sub Form_Load()
Dim strCN, i%
With LendedBooks
'调整各列宽度
.ColWidth(0) = 600: .ColWidth(1) = 3000: .ColWidth(2) = 1000
.ColWidth(3) = 1000: .ColWidth(4) = 1000: .ColWidth(5) = 800
.ColAlignment(0) = 1: .ColAlignment(4) = 1
.ColAlignment(5) = 1: .ColAlignment(7) = 1
'显示列表字段名称
strCN = Array("序号", "书名", "书号", "借书日期", "还书日期", "续借否")
For i = 0 To 5
.TextMatrix(0, i) = strCN(i)
Next
End With
End Sub
Private Sub Form_Resize()
LendedBooks.Width = Abs(Me.ScaleWidth - 2 * LendedBooks.Left)
LendedBooks.Height = Abs(Me.ScaleHeight - LendedBooks.Top - 200)
End Sub
Private Sub cmdExit_Click()
Unload Me '关闭借阅管理窗体
End Sub
Private Sub ShowBooksList(Data As Recordset, List As MSFlexGrid)
On Error Resume Next
Dim i%, iRow%, OutDate As Boolean, strT$
With List
.FixedRows = 0
.RemoveItem 1
'显示借书记录
While Not Data.EOF
strT = Data.AbsolutePosition
For i = 0 To Data.Fields.Count - 1
strT = strT & vbTab & Data.Fields(i)
Next
If IsDate(Data.Fields("还书日期")) Then
If CDate(Data.Fields("还书日期")) < Date Then
OutDate = True
iRow = iRow + 1
strT = "* " & strT '为超期的借书记录添加标记
Else
strT = " " & strT
End If
Else
strT = " " & strT
End If
.AddItem strT
Data.MoveNext
Wend
.FixedRows = 1 '固定字段标题
End With
If OutDate Then '显示借书超期提示
MsgBox "你共有" & iRow & "本书已经超期!", vbCritical, "图书借阅管理"
'禁用借书、续借按钮
cmdBorrow.Enabled = False
cmdReborrow.Enabled = False
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -