?? b借書.frm
字號:
Left = 2880
TabIndex = 15
Top = 1080
Width = 855
End
Begin VB.Label Label5
Caption = "罰款金額:"
Height = 375
Index = 2
Left = 240
TabIndex = 14
Top = 2160
Width = 975
End
Begin VB.Label Label6
Caption = "借書日期:"
Height = 375
Index = 1
Left = 240
TabIndex = 13
Top = 1560
Width = 975
End
Begin VB.Label Label1
Caption = $"B借書.frx":0000
Height = 495
Index = 1
Left = 600
TabIndex = 12
Top = 2520
Width = 735
End
Begin VB.Label Label8
Caption = "(4位)"
Enabled = 0 'False
ForeColor = &H000000FF&
Height = 255
Index = 0
Left = 2880
TabIndex = 11
Top = 480
Width = 855
End
Begin VB.Label Label2
Caption = "讀者號:"
Height = 255
Left = 405
TabIndex = 10
Top = 480
Width = 735
End
Begin VB.Label Label4
Caption = "圖書號:"
Height = 255
Left = 405
TabIndex = 9
Top = 1080
Width = 735
End
End
End
Attribute VB_Name = "B借書"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim rs As ADODB.Recordset
Dim SQL As String
Dim msg As String
Dim Index As Integer
Private Sub txtReadNo_Change()
'得到讀者借書信息 罰款、未還圖書數(shù)目、超期圖書數(shù)目
'得到罰款
SQL = " select 罰款金額 from 讀者信息表 where 讀者號='" & Trim(txtReadNo.Text) & "'"
Set rs = SelectSQL(SQL, msg)
If rs.RecordCount > 0 Then '如果存在此讀者號
Me.LblPenalty.Caption = rs.Fields("罰款金額")
Else
Me.LblPenalty.Caption = "無"
End If
'得到未還圖書數(shù)
SQL = " select count(*) as num from 借還信息表 where 讀者號='" & Trim(txtReadNo.Text) & "'"
SQL = SQL & " and 還書日期 is null "
Set rs = SelectSQL(SQL, msg)
If rs.RecordCount > 0 Then '如果存在統(tǒng)計結(jié)果
Me.LblNoReturn.Caption = rs.Fields("num")
Else
Me.LblNoReturn.Caption = "0"
End If
'得到超期圖書數(shù)
Dim validNum As Integer
'如果沒有續(xù)借
SQL = " select count(*) as num from 借還信息表 where 讀者號='" & Trim(txtReadNo.Text) & "'"
SQL = SQL & " and 還書日期 is null and 續(xù)借日期 is null "
SQL = SQL & "and datediff(day,借書日期,getdate())>" & Sys_BorrowLimite
Set rs = SelectSQL(SQL, msg)
If rs.RecordCount > 0 Then '如果存在統(tǒng)計結(jié)果
validNum = rs.Fields("num")
End If
'如果已經(jīng)續(xù)借了
SQL = " select count(*) as num from 借還信息表 where 讀者號='" & Trim(txtReadNo.Text) & "'"
SQL = SQL & " and 還書日期 is null and 續(xù)借日期 is not null "
SQL = SQL & "and datediff(day,借書日期,getdate())>" & Sys_BorrowLimite + Sys_ContinueLimite
Set rs = SelectSQL(SQL, msg)
If rs.RecordCount > 0 Then '如果存在統(tǒng)計結(jié)果
validNum = validNum + rs.Fields("num")
Else
Me.LblValid.Caption = "0"
End If
If validNum = 0 Then
Me.LblValid.Caption = "0"
Else
Me.LblValid.Caption = validNum
End If
rs.Close
End Sub
Private Sub txtBookNo_Change()
'得到圖書名稱
SQL = " select 題名,作者,版次,圖書數(shù)量 from 圖書信息表 where 圖書號='" & Trim(txtBookNo.Text) & "'"
Set rs = SelectSQL(SQL, msg)
If rs.RecordCount > 0 Then '如果存在查詢結(jié)果
Me.LblBookName.Caption = rs.Fields("題名")
Me.LblAuthor.Caption = rs.Fields("作者")
Me.LblPubNo.Caption = rs.Fields("版次")
Me.LblNum.Caption = rs.Fields("圖書數(shù)量")
Else
Me.LblBookName.Caption = "無"
Me.LblAuthor.Caption = "無"
Me.LblPubNo.Caption = "無"
Me.LblNum.Caption = "0"
End If
rs.Close
End Sub
Private Sub CmdSave_Click()
On Error GoTo ErrMsg '出錯處理
If Not CheckData Then
Exit Sub '如果數(shù)據(jù)不合法就退出
'*******************************************************************************************************************************************
Else
'添加新數(shù)據(jù)
Call setData
Call ExecuteSQL(SQL, msg)
'圖書的存儲數(shù)量減少1
SQL = " update 圖書信息表 set 圖書數(shù)量=圖書數(shù)量-1 where 圖書號='"
SQL = SQL & Trim(Me.txtBookNo.Text) & "'"
Call ExecuteSQL(SQL, msg)
SQL = " update 借還信息表 set 圖書號=Trim(txtBookNo.Text) and 讀者號=Trim(txtReadNo.Text) and 借書日期=Trim(DTPicker1.Value)"
SQL = SQL & Trim(txtReadNo.Text) & "'"
Call ExecuteSQL(SQL, msg)
MsgBox ("成功添加數(shù)據(jù)!")
Call txtBookNo_Change '重新獲得數(shù)據(jù)
Call txtReadNo_Change '重新獲得數(shù)據(jù)
End If
Exit Sub
'*******************************************************************************************************************************************
ErrMsg:
MsgBox Err.Description, vbExclamation, "出錯"
End Sub
Private Function CheckData() As Boolean
'檢查數(shù)據(jù)的合法性
Dim msgt As String
msgt = ""
'檢查數(shù)據(jù)
If Trim(Me.txtReadNo.Text) = "" Then '檢查讀者號是否為空
msgt = "讀者號為空; "
ElseIf Trim(Me.txtBookNo.Text) = "" Then '檢查圖書號是否為空
msgt = "圖書號為空; "
ElseIf Not Len(Trim(txtReadNo.Text)) = 4 Then '檢查讀者號是否為4位
msgt = "讀者號不是4位; "
ElseIf Not Len(Trim(txtBookNo.Text)) = 6 Then '檢查圖書號是否為6位
msgt = "圖書號不是6位; "
End If
If Not msgt = "" Then '如果錯誤消息不為空,給出錯誤提示
MsgBox (msgt)
CheckData = False '返回False
Exit Function
End If
'檢查讀者號的合法性,以及借書的合法性
If (Me.LblPenalty.Caption = "無") Then '如果查不到讀者的罰款金額,說明該讀者不存在
MsgBox ("讀者號輸入錯誤!")
CheckData = False '返回False
Exit Function
End If
If CInt(Me.LblNum.Caption) < 1 Then
MsgBox ("此書已被借出!")
CheckData = False '返回False
Exit Function
End If
If CDbl(Me.LblPenalty.Caption) > Sys_MaxPenalty Then
MsgBox ("請讀者先交罰款!")
CheckData = False '返回False
Exit Function
End If
If CInt(Me.LblValid.Caption) > 0 Then
MsgBox ("請讀者先歸還超期的圖書!")
CheckData = False '返回False
Exit Function
End If
If CInt(Me.LblNoReturn.Caption) >= Sys_MaxBorrow Then
MsgBox ("讀者借書已經(jīng)超過最大數(shù)量!")
CheckData = False '返回False
Exit Function
End If
'檢查圖書號的合法性
If (Me.LblBookName.Caption = "無") Then '如果查不到圖書題名,說明不錯在該圖書
MsgBox ("圖書號輸入錯誤!")
CheckData = False '返回False
Exit Function
End If
CheckData = True '合法返回True
End Function
Private Sub setData()
SQL = "insert into 借還信息表 (讀者號,圖書號,借書日期,備注) values('"
SQL = SQL & Trim(Me.txtReadNo.Text) & "','"
SQL = SQL & Trim(Me.txtBookNo.Text) & "','"
SQL = SQL & Trim(Me.DTPicker1.Value) & "','"
SQL = SQL & Trim(Me.txtNotes.Text) & "')"
End Sub
Private Sub cmdCancel_Click()
'取消操作
'重置控件
Me.txtBookNo.Text = ""
Me.txtReadNo.Text = ""
Me.DTPicker1.Refresh
Me.txtNotes.Text = ""
End Sub
Private Sub CmdExit_Click()
'退出操作
圖書管理系統(tǒng).Enabled = True
Unload Me
End Sub
Private Sub Form_Unload(Cancel As Integer)
'退出操作
圖書管理系統(tǒng).Enabled = True
Unload Me
End Sub
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -