?? b借書.frm
字號:
Enabled = 0 'False
ForeColor = &H000000FF&
Height = 255
Index = 1
Left = 3000
TabIndex = 15
Top = 1200
Width = 855
End
Begin VB.Label Label5
Caption = "罰款金額:"
Height = 375
Index = 2
Left = 240
TabIndex = 14
Top = 2040
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 = "(10位)"
Enabled = 0 'False
ForeColor = &H000000FF&
Height = 255
Index = 0
Left = 3000
TabIndex = 11
Top = 600
Width = 855
End
Begin VB.Label Label2
Caption = "讀者號:"
Height = 255
Left = 405
TabIndex = 10
Top = 600
Width = 735
End
Begin VB.Label Label4
Caption = "圖書號:"
Height = 255
Left = 405
TabIndex = 9
Top = 1200
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()
'得到讀者借書信息 罰款、未還圖書數目、超期圖書數目
'得到罰款
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
'得到未還圖書數
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 '如果存在統計結果
Me.LblNoReturn.Caption = rs.Fields("num")
Else
Me.LblNoReturn.Caption = "0"
End If
'得到超期圖書數
Dim validNum As Integer
'如果沒有續借
SQL = " select count(*) as num from 借還信息表 where 讀者號='" & Trim(txtReadNo.Text) & "'"
SQL = SQL & " and 還書日期 is null and 續借日期 is null "
SQL = SQL & "and datediff(day,借書日期,getdate())>" & Sys_BorrowLimite
Set rs = SelectSQL(SQL, msg)
If rs.RecordCount > 0 Then '如果存在統計結果
validNum = rs.Fields("num")
End If
'如果已經續借了
SQL = " select count(*) as num from 借還信息表 where 讀者號='" & Trim(txtReadNo.Text) & "'"
SQL = SQL & " and 還書日期 is null and 續借日期 is not null "
SQL = SQL & "and datediff(day,借書日期,getdate())>" & Sys_BorrowLimite + Sys_ContinueLimite
Set rs = SelectSQL(SQL, msg)
If rs.RecordCount > 0 Then '如果存在統計結果
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 題名,作者,版次,圖書數量 from 圖書信息表 where 圖書號='" & Trim(txtBookNo.Text) & "'"
Set rs = SelectSQL(SQL, msg)
If rs.RecordCount > 0 Then '如果存在查詢結果
Me.LblBookName.Caption = rs.Fields("題名")
Me.LblAuthor.Caption = rs.Fields("作者")
Me.LblPubNo.Caption = rs.Fields("版次")
Me.LblNum.Caption = rs.Fields("圖書數量")
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 '如果數據不合法就退出
Else
'添加新數據
Call setData
Call ExecuteSQL(SQL, msg)
'圖書的存儲數量減少1
SQL = " update 圖書信息表 set 圖書數量=圖書數量-1 where 圖書號='"
SQL = SQL & Trim(Me.txtBookNo.Text) & "'"
Call ExecuteSQL(SQL, msg)
MsgBox ("成功添加數據!")
Call txtBookNo_Change '重新獲得數據
Call txtReadNo_Change '重新獲得數據
End If
Exit Sub
ErrMsg:
MsgBox Err.Description, vbExclamation, "出錯"
End Sub
Private Function CheckData() As Boolean
'檢查數據的合法性
Dim msgt As String
msgt = ""
'檢查數據
If Trim(Me.txtReadNo.Text) = "" Then '檢查讀者號是否為空
msgt = "讀者號為空; "
ElseIf Trim(Me.txtBookNo.Text) = "" Then '檢查圖書號是否為空
msgt = "圖書號為空; "
ElseIf Not Len(Trim(txtReadNo.Text)) = 10 Then '檢查讀者號是否為12位
msgt = "讀者號不是10位; "
ElseIf Not Len(Trim(txtBookNo.Text)) = 12 Then '檢查圖書號是否為12位
msgt = "圖書號不是12位; "
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 ("讀者借書已經超過最大數量!")
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()
'退出操作
圖書管理系統.Enabled = True
Unload Me
End Sub
Private Sub Form_Unload(Cancel As Integer)
'退出操作
圖書管理系統.Enabled = True
Unload Me
End Sub
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -