📄 frmborrowm.frm
字号:
VERSION 5.00
Object = "{67397AA1-7FB1-11D0-B148-00A0C922E820}#6.0#0"; "msadodc.ocx"
Object = "{CDE57A40-8B86-11D0-B3C6-00A0C90AEA82}#1.0#0"; "msdatgrd.ocx"
Begin VB.Form frmBorrowM
BackColor = &H00C0C0C0&
Caption = "图书借阅管理"
ClientHeight = 6675
ClientLeft = 3300
ClientTop = 2160
ClientWidth = 10020
LinkTopic = "Form1"
ScaleHeight = 6675
ScaleWidth = 10020
Begin MSDataGridLib.DataGrid dtgBorrow
Bindings = "frmBorrowM.frx":0000
Height = 3375
Left = 360
TabIndex = 7
Top = 1440
Width = 8775
_ExtentX = 15478
_ExtentY = 5953
_Version = 393216
AllowUpdate = -1 'True
BackColor = 12640511
HeadLines = 1
RowHeight = 16
BeginProperty HeadFont {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "宋体"
Size = 9
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ColumnCount = 2
BeginProperty Column00
DataField = ""
Caption = ""
BeginProperty DataFormat {6D835690-900B-11D0-9484-00A0C91110ED}
Type = 0
Format = ""
HaveTrueFalseNull= 0
FirstDayOfWeek = 0
FirstWeekOfYear = 0
LCID = 2052
SubFormatType = 0
EndProperty
EndProperty
BeginProperty Column01
DataField = ""
Caption = ""
BeginProperty DataFormat {6D835690-900B-11D0-9484-00A0C91110ED}
Type = 0
Format = ""
HaveTrueFalseNull= 0
FirstDayOfWeek = 0
FirstWeekOfYear = 0
LCID = 2052
SubFormatType = 0
EndProperty
EndProperty
SplitCount = 1
BeginProperty Split0
BeginProperty Column00
EndProperty
BeginProperty Column01
EndProperty
EndProperty
End
Begin MSAdodcLib.Adodc adoBorrow
Height = 690
Left = 120
Top = 5520
Visible = 0 'False
Width = 2055
_ExtentX = 3625
_ExtentY = 1217
ConnectMode = 0
CursorLocation = 3
IsolationLevel = -1
ConnectionTimeout= 15
CommandTimeout = 30
CursorType = 3
LockType = 3
CommandType = 8
CursorOptions = 0
CacheSize = 50
MaxRecords = 0
BOFAction = 0
EOFAction = 0
ConnectStringType= 1
Appearance = 1
BackColor = -2147483643
ForeColor = -2147483640
Orientation = 0
Enabled = -1
Connect = ""
OLEDBString = ""
OLEDBFile = ""
DataSourceName = ""
OtherAttributes = ""
UserName = ""
Password = ""
RecordSource = ""
Caption = "Adodc1"
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "宋体"
Size = 9
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
_Version = 393216
End
Begin VB.CommandButton cmdReturn
Caption = "归还(&R)"
Height = 495
Left = 6360
TabIndex = 6
Top = 5760
Width = 1095
End
Begin VB.CommandButton cmdBack
Caption = "返回(&X)"
Height = 495
Left = 7560
TabIndex = 5
Top = 5760
Width = 1095
End
Begin VB.CommandButton cmdLoss
Caption = "丢失(&L)"
Height = 495
Left = 5160
TabIndex = 4
Top = 5760
Width = 975
End
Begin VB.CommandButton cmdRenew
Caption = "续借(&N)"
Height = 495
Left = 3840
TabIndex = 3
Top = 5760
Width = 1095
End
Begin VB.CommandButton cmdAdd
Caption = "借阅(&B)"
Height = 495
Left = 2400
TabIndex = 2
Top = 5760
Width = 1215
End
Begin VB.ComboBox cboState
BackColor = &H00FFFFFF&
BeginProperty Font
Name = "宋体"
Size = 9
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00000000&
Height = 300
ItemData = "frmBorrowM.frx":0018
Left = 2040
List = "frmBorrowM.frx":0028
Style = 2 'Dropdown List
TabIndex = 1
Top = 600
Width = 1575
End
Begin VB.Label Label1
BackStyle = 0 'Transparent
Caption = "图书借阅状态"
Height = 495
Left = 240
TabIndex = 0
Top = 600
Width = 1335
End
End
Attribute VB_Name = "frmBorrowM"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
'定义conditon变量
Dim condition As String
Dim rs As ADODB.Recordset
Dim SQLStr As String
Dim vBookNo As String
'网格控件加载函数
Private Sub adoBorrowRefresh()
'设置ADO控件adoBorrowRefresh的连接字符串
adoBorrow.ConnectionString = CONSTR
Dim tmpRecordSource As String '设置数据源
tmpRecordSource = "select br.CardNo as 借阅证号,c.Reader as 读者姓名,br.BookNo as 图书编号,bk.BookName as 图书名称,br.BorrowDate as 借阅日期,br.RenewDate as 续借日期,br.ReturnDate as 归还日期,br.Fine as 罚金 from BorrowInfo br,CardInfo c,BookInfo bk where br.CardNo=c.CardNo and br.BookNo=bk.BookNo " + condition + " order by br.CardNo,br.BookNo"
adoBorrow.RecordSource = tmpRecordSource
adoBorrow.Refresh
With dtgBorrow '设置dtgBorrow显示每列的宽度
.Columns(0).Width = 800
.Columns(1).Width = 800
.Columns(2).Width = 800
.Columns(3).Width = 1500
.Columns(4).Width = 1000
.Columns(5).Width = 1000
.Columns(6).Width = 1000
.Columns(7).Width = 800
End With
End Sub
'单击cboState控件,选择一种图书状
Private Sub cboState_Click()
If cboState.ListIndex = 0 Then '如果选择全部
condition = ""
Else '如果选择其他
condition = "and br.BorrowState=" + Trim(Str(cboState.ListIndex - 1))
End If
Call adoBorrowRefresh '调用adoBorrowRefresh过程
End Sub
'单击"借阅"按钮,调用frmBorrowEdit窗体输入借阅人信息和图书信息,生成图书借阅记录
'插入到BorrowInfo表中
Private Sub cmdAdd_Click()
SQLStr = "select * from CardInfo where CardState="
'给借阅编辑窗口frmBorrowEdit赋值
frmBorrowEdit.txtCNo = ""
frmBorrowEdit.txtReader = ""
frmBorrowEdit.txtTypeName = ""
frmBorrowEdit.txtMaxCount = ""
frmBorrowEdit.txtMaxDays = ""
frmBorrowEdit.txtBCount = ""
frmBorrowEdit.Show 1 '启动编辑窗体frmBOrrowEdit
adoBorrow.Refresh '刷新adoBorrow控件
Call adoBorrowRefresh
End Sub
'返回按钮
Private Sub cmdBack_Click()
Unload Me
End Sub
'单击"丢失"按钮,如果所选的图书丢失,从BorrowInfo表中删除
Private Sub cmdLoss_Click()
'如果没有选择记录,则不需要做任何操作
If adoBorrow.Recordset.BOF Or adoBorrow.Recordset.EOF Then
MsgBox "请选择丢失书籍的记录", vbInformation, "丢失信息"
Exit Sub
End If
'丢失
Dim IsLoss As Integer
IsLoss = MsgBox("此书是否丢失?", vbYesNo + vbQuestion + vbDefaultButton1, "丢失信息")
If IsLoss = vbYes Then '丢失处理
Dim vPrice As Single
vBookNo = dtgBorrow.Columns(2).Text '从数据网格控件中提取所选记录的图书编号
SQLStr = "select * from BookInfo where BookNo='" + Trim(vBookNo) + "'"
Set rs = SQLQuery(SQLStr)
vPrice = 10 * rs.Fields("Price")
If MsgBox("你丢失了所借的书,需要交罚金!" + vbCrLf + "罚金为" + Str(vPrice) + "元" + vbCrLf + "是否交罚金", vbQuerstion + vbYesNo + vbDefaultBotton2, "丢失处罚") = vbNo Then
Exit Sub
End If
'删除丢失图书的借阅记录
SQLStr = "delete from BorrowInfo where BookNo='" + Trim(vBookNo) + "'"
SQLExt SQLStr '执行delete语句
SQLStr = "delete from BookInfo where BookNo='" + Trim(vBookNo) + "'"
SQLExt SQLStr '执行delete语句
MsgBox "此丢失书籍信息已经删除", vbInformation, "丢失信息"
End If
adoBorrow.Refresh '刷新
Call adoBorrowRefresh
End Sub
'单击"续借"按钮
Private Sub cmdRenew_Click()
'如果没有选择记录,则不需要做任何操作
If adoBorrow.Recordset.BOF Or adoBorrow.Recordset.EOF Then
MsgBox "请选择需要续借的书籍", vbInformation, "信息提示"
Exit Sub
End If
'读取BorrowInfo的信息
vBookNo = dtgBorrow.Columns(2).Text '从数据网络控件中提取所选记录的图书编号
SQLStr = "select * from BorrowInfo where BookNo='" + Trim(vBookNo) + "'"
Set rs = SQLQuery(SQLStr)
'如果这本书不是在借阅状态下,是不能续借的
If rs.Fields("BorrowState") <> 0 Then
MsgBox "此书不是在借阅状态,不能续借", vbInformation, "续借信息"
Exit Sub
End If
'续借
Dim IsRenew As Integer
IsRenew = MsgBox("是否续借所选择的书籍?", vbYesNo + vbQuestion + vbDefaultButton1, "续借信息")
If IsRenew = vbYes Then
rs.Fields("RenewDate") = Format(Now, "yyyy-mm-dd") '更新续借日期
'续借时,借阅从当前日期开始计算,更新归还日期
Dim rst As ADODB.Recordset
SQLStr = "select * from CardType where CTypeID="
SQLStr = SQLStr & "(select CTYpeID from CardInfo where CardNo='"
SQLStr = SQLStr & dtgBorrow.Columns(0).Text & "')"
Set rst = SQLQuery(SQLStr)
rs.Fields("ReturnDate") = Now + rst.Fields("renewDays")
rs.Fields("BorrowState") = 1 '更新借阅状态
rs.Update
MsgBox "续借成功", vbInformation, "信息提示"
End If
adoBorrow.Refresh '刷新
Call adoBorrowRefresh
End Sub
'单击"归还"按钮,检查是否"过期",若过期,进行处罚
'从表BorrowInfo表删除该图书的借阅记录
Private Sub cmdReturn_Click()
'如果没有选择记录,则不需要做任何操作
If adoBorrow.Recordset.EOF Or adoBorrow.Recordset.EOF Then
MsgBox "请选择需要归还书籍的记录", vbInformation, "归还信息"
Exit Sub
End If
'归还
Dim IsReturn As Integer
IsReturn = MsgBox("是否归还所选择的书籍?", vbYesNo + vbQuestion + vbDefaultButton1, "还书信息")
If IsReturn = vbYes Then
vBookNo = dtgBorrow.Columns(2).Text '从数据网格控件中提取所选记录的图书编号
SQLStr = "select * from BorrowInfo where BookNo='" + Trim(vBookNo) + "'"
Set rs = SQLQuery(SQLStr)
'过期处理
If rs.Fields("BorrowState") = 2 Then
If MsgBox("您所借的书已过期,需要交罚金!" + vbCrLf + "罚金为" + Str(Int(0.3 * (Now - rs.Fields("ReturnDate")) * 100) / 100) + "元" + vbCrLf + "是否交罚金", vbQuestion + vbYesNo + vbDefaultButton2, "过期处罚信息") = vbNo Then
Exit Sub
End If
End If
SQLStr = "delete from BorrowInfo where BookNo='" + Trim(vBookNo) + "'"
SQLExt SQLStr '执行delete语句
MsgBox "此书已经归还", vbInformation, "还书信息"
End If
adoBorrow.Refresh '刷新
Call adoBorrowRefresh
End Sub
'窗体frmBorrowM加载事件
Private Sub Form_Load()
cboState.ListIndex = 0 '设置证件状态
condition = "" '给两个condition初始化
'如果没有选择记录,则不需要做任何操作
If adoBorrow.Recordset.BOF Or adoBorrow.Recordset.EOF Then
Exit Sub
End If
'刷新BorrowInfo的信息,主要为是否过期,且有多少罚金
SQLStr = "select * from BorrowInfo"
Set rs = SQLQuery(SQLStr)
While Not rs.EOF
'过期书籍需要修改状态和罚金,借阅状态BorrowState:0--借阅,1--续借,2--过期
If rs.Fields("returnDate") < Now Then
rs.Fields("fine") = 0.3 * (Now - rs.Fields("returnDate"))
rs.Fields("BorrowState") = 2
End If
rs.MoveNext
Wend
adoBorrow.Refresh
Call adoBorrowRefresh '调用aodBorrowRefresh过程
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -