?? 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 + -