📄 main.frm
字号:
'调用cmdKong_Click过程清空所有文本,打开还书对话框
Lentfrm.Show (1)
cmdKong_Click
End Sub
Private Sub cmdClose_Click()
'结束程序运行,退出本系统
End
End Sub
Private Sub cmdEditBook_Click()
'修改图书基本信息窗体出现
EditBook.Show (1)
End Sub
Private Sub cmdEditJSZ_Click()
'修改借书证窗体出现
EditBookId.Show (1)
End Sub
Private Sub cmdFind_Click()
'查找图书窗体出现
Findfrm.Show
End Sub
Private Sub cmdJieShu_Click()
'借出图书按钮
'判断数据库是否借出字段,如果借出给出提示
If rst3.Fields("是否借出") = True Then
MsgBox "此书已经借出!", 0 + 48, "提示"
'设置图书编号输入框为空,并设置光标位置到图书编号输入框
txtBookBian.Text = ""
txtBookBian.SetFocus
'图书信息框架隐藏,快捷键框架显示
Frame4.Visible = False
Frame6.Visible = True
Exit Sub
End If
'打开表BookFlag
'设置借书记录并保存到数据库
rst2.AddNew
rst2.Fields("图书编号") = rst3.Fields("图书编号")
rst2.Fields("书名") = rst3.Fields("书名")
rst2.Fields("价格") = rst3.Fields("价格")
rst2.Fields("出版社") = rst3.Fields("出版社")
rst2.Fields("借出日期") = Date
rst2.Fields("借书证号") = BookId
rst2.Fields("姓名") = txtName.Text
rst2.Fields("类别") = rst3.Fields("类别")
rst2.Update
'打开表Book,设置相应更改保存到数据库
rst3.Edit
rst3.Fields("是否借出") = True
rst3.Fields("借出日期") = Date
rst3.Update
DataRef
'设置图书编号为窗,使光标定位到图书编号输入框
txtBookBian.Text = ""
txtBookBian.SetFocus
'Frame4框架隐藏,Frame6框架出现
Frame4.Visible = False
Frame6.Visible = True
End Sub
Private Sub cmdKong_Click()
'清空所有文本
txtBookId.Text = ""
txtName.Text = ""
txtClass.Text = ""
txtDepart.Text = ""
txtBookHao.Text = ""
txtBookName = ""
txtZhiCheng = ""
txtFa.Text = ""
txtBookBian.Text = ""
'图书信息框架隐藏,快捷键框架出现
Frame4.Visible = False
Frame6.Visible = True
'清空还书列表,定位光标到借书证号
LV2.ListItems.Clear
txtBookId.SetFocus
End Sub
Private Sub cmdLogin_Click()
loop1: '如果没有此证,返回
LentLogin.Show (1)
If LoginFlag Then
LV2.ListItems.Clear
rst1.Seek "=", BookId '查找借书证号码
If rst1.NoMatch Then
MsgBox "没有此借书证号码!", 0 + 48, "错误"
LoginFlag = False
GoTo loop1 '返回loop1
End If
'将数据库相应内容赋给相应变量
txtBookId.Text = BookId
txtName.Text = rst1.Fields("姓名") & vbNullString
txtClass.Text = rst1.Fields("班级") & vbNullString
txtDepart.Text = rst1.Fields("部门") & vbNullString
txtZhiCheng = rst1.Fields("职称") & vbNullString
txtFa.Text = rst1.Fields("罚款") & Empty
'图书编号输入框设置为空,并把光标定位到图书编号输入框
txtBookBian.Text = ""
txtBookBian.SetFocus
'Frame4框架隐藏,Frame6框架显示
Frame4.Visible = False
Frame6.Visible = True
'输出所借图书
DataRef
LoginFlag = False
If rst1.Fields("罚款") > 0 Then
If MsgBox(txtBookId & " " & txtName & " 共计欠费 " _
& rst1.Fields("罚款") & "元 是否从数据库中删除?", 4 + 48, "欠费") _
= vbYes Then
'从数据库中删除欠费记录
rst1.Edit
rst1.Fields("罚款") = 0
rst1.Update
txtFa.Text = rst1.Fields("罚款") & Empty
End If
Else '把罚款设置为0
rst1.Edit
rst1.Fields("罚款") = 0
rst1.Update
End If
End If
End Sub
Private Sub EditIdMnu_Click()
'菜单--编辑借书证
EditBookId.Show (1)
End Sub
Private Sub EditMnu_Click()
'菜单--编辑图书
EditBook.Show (1)
End Sub
Private Sub ExitMnu_Click()
'菜单--退出
Unload Me
End Sub
Private Sub FenMnu_Click()
'菜单--图书分类
SetType.Show (1)
End Sub
Private Sub Form_Load()
'设置数据库路径
DBpath = App.Path + "\DataBase\Data.mdb"
'连接数据库,打开表Personal
Set db1 = Workspaces(0).OpenDatabase(DBpath, False)
Set rst1 = db1.OpenRecordset("Personal", dbOpenTable)
rst1.Index = "借书证号"
'连接数据库,打开表BookFf
Set db2 = Workspaces(0).OpenDatabase(DBpath, False)
Set rst2 = db2.OpenRecordset("BookFf", dbOpenTable)
Set qry2 = db2.CreateQueryDef("")
rst2.Index = "图书编号"
'连接数据库,打开表Book
Set db3 = Workspaces(0).OpenDatabase(DBpath, False)
Set rst3 = db3.OpenRecordset("Book", dbOpenTable)
rst3.Index = "图书编号"
'设置文件所在路径
SETpath = App.Path + "\Database\Set.Dat"
'打开设置文件,读取设置文件内容给相应变量
Open SETpath For Random As #1 Len = Len(SetFlag)
Get #1, 1, SetFlag
BookNum = SetFlag.BookNum
FaCost = SetFlag.BookCost
'初始化ListView列表中的字段内容
LV2.View = lvwReport
LV2.ColumnHeaders.Add , , "借书证号"
LV2.ColumnHeaders.Add , , "借书人姓名"
LV2.ColumnHeaders.Add , , "图书编号"
LV2.ColumnHeaders.Add , , "书名"
LV2.ColumnHeaders.Add , , "价格"
LV2.ColumnHeaders.Add , , "类别"
LV2.ColumnHeaders.Add , , "出版社"
LV2.ColumnHeaders.Add , , "借出日期"
'设置图书编号、书名等输入框为空
txtBookId.Text = ""
txtName.Text = ""
txtClass.Text = ""
txtDepart.Text = ""
txtBookHao.Text = ""
txtBookName.Text = ""
txtZhiCheng.Text = ""
txtFa.Text = ""
txtCost.Text = ""
txtChuBan.Text = ""
txtLentDate.Text = ""
End Sub
Private Sub Form_Unload(Cancel As Integer)
'关闭窗体时,关闭所有数据库
rst1.Close
rst2.Close
rst3.Close
db1.Close
db2.Close
db3.Close
Close #1
End Sub
Private Sub LoginMnu_Click()
'菜单--登录
cmdLogin_Click
End Sub
Private Sub SearchMnu_Click()
'菜单--查找
Findfrm.Show
End Sub
Private Sub SetMnu_Click()
'菜单--设置
setfrm.Show (1)
End Sub
Private Sub txtBookBian_KeyPress(KeyAscii As Integer)
'判断在图书编号输入框按回车键执行的过程
If KeyAscii = 13 Then
If txtBookId.Text = "" Then
MsgBox "请先登录!", 0 + 48, "提示"
cmdLogin.SetFocus
txtBookBian.Text = ""
Exit Sub
End If
'查找图书编号
rst3.Seek "=", txtBookBian.Text
'如果没有找到,给出提示
If rst3.NoMatch Then
MsgBox "没有此图书编号,请重新填写", 0 + 48, "填写错误"
'设置光标位置到图书编号输入框,Frame4隐藏,Frame6出现
txtBookBian.SetFocus
Frame4.Visible = False
Frame6.Visible = True
Exit Sub
End If
'找到情况,Frame4出现,Frame6隐藏
Frame4.Visible = True
Frame6.Visible = False
'将数据库相应字段赋给相应变量
txtBookHao.Text = txtBookBian.Text
txtBookName.Text = rst3.Fields("书名") & vbNullString
txtChuBan.Text = rst3.Fields("出版社") & vbNullString
txtCost.Text = rst3.Fields("价格") & Empty
txtLentDate = Date
txtType.Text = rst3.Fields("类别") & vbNullString
End If
End Sub
'自定义DataRef过程,用于输出已借图书
Private Sub DataRef()
Dim i As Integer
Dim SeaStr As String
'查询数据库的借书证号
SeaStr = "select * from Bookff where 借书证号="
SeaStr = SeaStr & "'" & BookId & "'"
qry2.SQL = SeaStr
Set rst = qry2.OpenRecordset()
'如果记录为空,给出可以借书数目提示
If rst.RecordCount = 0 Then
Label1.Caption = "可以借" & BookNum & "本书"
Exit Sub
End If
rst.MoveLast
RecNumBookFf = rst.RecordCount
rst.MoveFirst
LV2.ListItems.Clear
'将数据库字段赋给相应列表,并显示记录
For i = 1 To RecNumBookFf
LV2.ListItems.Add i, , rst.Fields("借书证号") & vbNullString
With LV2.ListItems(i)
.SubItems(1) = rst.Fields("姓名") & vbNullString
.SubItems(2) = rst.Fields("图书编号") & vbNullString
.SubItems(3) = rst.Fields("书名") & vbNullString
.SubItems(4) = rst.Fields("价格") & Empty
.SubItems(5) = rst.Fields("类别") & vbNullString
.SubItems(6) = rst.Fields("出版社") & vbNullString
.SubItems(7) = rst.Fields("借出日期") & vbNullString
End With
rst.MoveNext
'如果到记录末尾,退出For循环
If rst.EOF Then Exit For
Next i
'判断借书数目和规定借书数目,给出提示
If RecNumBookFf >= BookNum Then
MsgBox "已经借了 " & BookNum & "本书,不能再借了!", 0 + 48, "提示"
'设置所有输入框为空
txtBookId.Text = ""
txtName.Text = ""
txtClass.Text = ""
txtDepart.Text = ""
txtZhiCheng = ""
txtFa.Text = ""
'定位光标位置到登录按钮,清空ListView列表记录,使Label1标签框给出提示
cmdLogin.SetFocus
LV2.ListItems.Clear
Label1.Caption = "已经借的书"
Exit Sub
End If
'统计借书数目,提示还可借图书数目
'算法:规定借书数目减去数据库中找到的借书数目,得出还可借图书数目
Label1.Caption = "已经借出 " & RecNumBookFf & "本,还可以再借 " _
& BookNum - RecNumBookFf & "本"
End Sub
Private Sub txtBookId_KeyPress(KeyAscii As Integer)
'借书证号输入框
'如果按回车键,还书列表清空,将借书证号赋给变量:BookId
If KeyAscii = 13 Then
LV2.ListItems.Clear
BookId = txtBookId.Text
rst1.Seek "=", BookId '查找借书证号码,如果没有该借书证号给出提示
If rst1.NoMatch Then
MsgBox "没有此借书证号码!", 0 + 48, "错误"
'设置光标位于借书证号输入框,并清空其他所有输入框
txtBookId.SetFocus
txtName.Text = ""
txtClass.Text = ""
txtDepart.Text = ""
txtZhiCheng.Text = ""
txtFa.Text = ""
Exit Sub
End If
'清空所有图书信息框架的输入框
txtBookHao.Text = ""
txtBookName.Text = ""
txtCost.Text = ""
txtChuBan.Text = ""
txtLentDate.Text = ""
txtBookBian.Text = ""
'借书证号
txtBookId.Text = BookId
txtName.Text = rst1.Fields("姓名") & vbNullString
txtClass.Text = rst1.Fields("班级") & vbNullString
txtDepart.Text = rst1.Fields("部门") & vbNullString
txtZhiCheng = rst1.Fields("职称") & vbNullString
txtFa.Text = rst1.Fields("罚款") & Empty
txtBookBian.SetFocus
DataRef '输出所借图书
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -