📄 findfrm.frm
字号:
VERSION 5.00
Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
Begin VB.Form Findfrm
BorderStyle = 3 'Fixed Dialog
Caption = "查找图书"
ClientHeight = 5175
ClientLeft = 45
ClientTop = 330
ClientWidth = 6735
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 5175
ScaleWidth = 6735
ShowInTaskbar = 0 'False
StartUpPosition = 1 '所有者中心
Begin VB.PictureBox Picture2
BorderStyle = 0 'None
Height = 615
Left = 1080
ScaleHeight = 615
ScaleWidth = 3375
TabIndex = 10
Top = 1680
Width = 3375
Begin VB.Label Label3
AutoSize = -1 'True
Caption = "以实现多个记录的查找"
ForeColor = &H000000C0&
Height = 180
Left = 0
TabIndex = 12
Top = 360
Width = 1800
End
Begin VB.Label Label2
AutoSize = -1 'True
Caption = "提示:书名查询可输入*来代替多个字符"
ForeColor = &H000000C0&
Height = 180
Left = 0
TabIndex = 11
Top = 120
Width = 3060
End
End
Begin MSComctlLib.ListView LV
Height = 2535
Left = 120
TabIndex = 9
Top = 2520
Width = 6495
_ExtentX = 11456
_ExtentY = 4471
Sorted = -1 'True
LabelWrap = -1 'True
HideSelection = -1 'True
_Version = 393217
ForeColor = 32768
BackColor = 16777215
BorderStyle = 1
Appearance = 1
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
NumItems = 0
End
Begin VB.CommandButton cmdClose
Cancel = -1 'True
Caption = "关 闭(&C)"
Height = 375
Left = 5280
TabIndex = 8
ToolTipText = "关闭此对话框"
Top = 2040
Width = 1335
End
Begin VB.CommandButton cmdKong
Caption = "全部清空(&L)"
Height = 375
Left = 5280
TabIndex = 7
ToolTipText = "清空所有文本"
Top = 840
Width = 1335
End
Begin VB.CommandButton cmdBeginFind
Caption = "开始查找(&F)"
Height = 375
Left = 5280
TabIndex = 6
ToolTipText = "开始查找符合条件的记录"
Top = 360
Width = 1335
End
Begin VB.TextBox txtBookName
BeginProperty Font
Name = "宋体"
Size = 12
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00FF0000&
Height = 375
Left = 2160
TabIndex = 5
Top = 1200
Width = 2415
End
Begin VB.TextBox txtBookBian
BeginProperty Font
Name = "宋体"
Size = 12
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00FF0000&
Height = 360
Left = 2160
TabIndex = 0
Top = 720
Width = 2415
End
Begin VB.PictureBox Picture1
BorderStyle = 0 'None
Height = 1215
Left = 240
ScaleHeight = 1215
ScaleWidth = 1815
TabIndex = 2
Top = 480
Width = 1815
Begin VB.Label Label1
AutoSize = -1 'True
Caption = "书 名"
BeginProperty Font
Name = "宋体"
Size = 12
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00FF0000&
Height = 240
Index = 1
Left = 840
TabIndex = 4
Top = 840
Width = 930
End
Begin VB.Label Label1
AutoSize = -1 'True
Caption = "图书编号"
BeginProperty Font
Name = "宋体"
Size = 12
Charset = 134
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00FF0000&
Height = 240
Index = 0
Left = 840
TabIndex = 3
Top = 240
Width = 1035
End
End
Begin MSComctlLib.TabStrip TabStrip1
Height = 2415
Left = 120
TabIndex = 1
Top = 0
Width = 5055
_ExtentX = 8916
_ExtentY = 4260
_Version = 393216
BeginProperty Tabs {1EFB6598-857C-11D1-B16A-00C0F0283628}
NumTabs = 1
BeginProperty Tab1 {1EFB659A-857C-11D1-B16A-00C0F0283628}
Caption = "查找"
ImageVarType = 2
EndProperty
EndProperty
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "宋体"
Size = 9.75
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
End
End
Attribute VB_Name = "Findfrm"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
' **********************************************************************
' 描 述:银龙图书管理系统
' 中国VB网收集整理 http://www.ChinaVB.net
' QQ交流群:13047826 14356878
' 发表源码或文章请发邮件到:info@chinavb.net
' **********************************************************************Dim i As Integer
Dim rst1 As Recordset '打开表Book
Dim rst2 As Recordset '打开表BookFf
Dim rst As Recordset
Dim db1 As Database
Dim db2 As Database
Dim qry1 As QueryDef
Dim qry2 As QueryDef
Dim RecNum As Integer '查找符合条件总记录数
Dim i As Integer
Dim FindStr As String '查找SQL语句
Private Sub cmdBeginFind_Click()
'判断图书编号和书名都为空时给出提示,并设置光标位于图书编号
If txtBookBian = "" And txtBookName = "" Then
MsgBox "请填写相关查找信息!", 0 + 48, "提示"
txtBookBian.SetFocus
Exit Sub
End If
'清空ListView控件内容
Lv.ListItems.Clear
'使本窗体上的光标改变形状,光标样式为11
Findfrm.MousePointer = 11
'判断图书编号不为空,书名为空时的情况
If txtBookBian <> "" And txtBookName = "" Then
'对图书编号和数据库对比,如果没有找到给出提示
rst1.Seek "=", txtBookBian
If rst1.NoMatch Then
MsgBox "没有找到匹配记录!", 0 + 48, "查找失败"
'使本窗体上的光标改变形状,光标样式为0
Findfrm.MousePointer = 0
Exit Sub
End If
'判断数据库BookFf表是否借出字段
If rst1.Fields("是否借出") = True Then
rst2.Seek "=", txtBookBian
'使Listview控件增加数据库图书编号字段内容
Lv.ListItems.Add , , rst1.Fields("图书编号") & vbNullString
'使Listview控件显示数据库相应内容
With Lv.ListItems(1)
.SubItems(1) = rst1.Fields("书名") & vbNullString
.SubItems(2) = rst1.Fields("类别") & vbNullString
.SubItems(3) = rst1.Fields("价格") & Empty
.SubItems(4) = rst1.Fields("出版社") & vbNullString
.SubItems(5) = rst1.Fields("是否借出")
.SubItems(6) = rst2.Fields("借书证号") & vbNullString
.SubItems(7) = rst2.Fields("姓名") & vbNullString
.SubItems(8) = rst2.Fields("借出日期")
End With
Else
'否则使ListView控件显示数据库相应内容
Lv.ListItems.Add , , rst1.Fields("图书编号") & vbNullString
With Lv.ListItems(1)
.SubItems(1) = rst1.Fields("书名") & vbNullString
.SubItems(2) = rst1.Fields("类别") & vbNullString
.SubItems(3) = rst1.Fields("价格") & Empty
.SubItems(4) = rst1.Fields("出版社") & vbNullString
.SubItems(5) = rst1.Fields("是否借出")
End With
End If
'判断图书编号为空,书名不为空时的情况
ElseIf txtBookBian = "" And txtBookName <> "" Then
'查询数据库Book表的书名字段,支持模糊查询,如通配符*?之类
FindStr = "select * from Book where 书名 like"
'一行写不完,将语句分成二行
FindStr = FindStr & "'" & txtBookName & "'"
'将FindStr赋给SQL语句变量:qry1
qry1.SQL = FindStr
Set rst = qry1.OpenRecordset
'如果记录为0,即没找到记录时给出提示
If rst.RecordCount = 0 Then
MsgBox "没有找到匹配记录!", 0 + 48, "查找失败"
Findfrm.MousePointer = 0
Exit Sub
End If
'使记录定位于最末尾
rst.MoveLast
'统计录总数,赋给变量RecNum
RecNum = rst.RecordCount
'使记录定位于最头部
rst.MoveFirst
'对数据库所有记录进行对比,判断是否借出
For i = 1 To RecNum
If rst.Fields("是否借出") = True Then
'如果没有借出,对图书编号进行查找
rst2.Seek "=", rst.Fields("图书编号")
'使ListView控件显示找到的记录
Lv.ListItems.Add i, , rst.Fields("图书编号") & vbNullString
'使ListView控件显示记录的详细内容
With Lv.ListItems(i)
.SubItems(1) = rst.Fields("书名") & vbNullString
.SubItems(2) = rst.Fields("类别") & vbNullString
.SubItems(3) = rst.Fields("价格") & Empty
.SubItems(4) = rst.Fields("出版社") & vbNullString
.SubItems(5) = rst.Fields("是否借出")
.SubItems(6) = rst2.Fields("借书证号") & vbNullString
.SubItems(7) = rst2.Fields("姓名") & vbNullString
.SubItems(8) = rst2.Fields("借出日期")
End With
Else
'没有找时,使ListView显示相应信息
Lv.ListItems.Add i, , rst.Fields("图书编号") & vbNullString
With Lv.ListItems(i)
.SubItems(1) = rst.Fields("书名") & vbNullString
.SubItems(2) = rst.Fields("类别") & vbNullString
.SubItems(3) = rst.Fields("价格") & Empty
.SubItems(4) = rst.Fields("出版社") & vbNullString
.SubItems(5) = rst.Fields("是否借出")
End With
End If
'移动到下一个记录,如果到最末退出本过程
rst.MoveNext
If rst.EOF Then Exit For
Next
Else
'判断图书编号和书名是否都进行了输入并查找
'如果是则给出提示,并将图书编号、书名设为空
MsgBox "请选择一项进行查找", 0 + 48, "提示"
txtBookBian = ""
txtBookName = ""
'设置光标定位于图书编号,改变窗体上光标样式为0
txtBookBian.SetFocus
Findfrm.MousePointer = 0
Exit Sub
End If
'改变窗体上光标样式为0
Findfrm.MousePointer = 0
End Sub
Private Sub cmdKong_Click()
'全部清空按钮,使图书编号、书名、ListView控件内容为空,并定位光标到图书编号
txtBookBian = ""
txtBookName = ""
Lv.ListItems.Clear
txtBookBian.SetFocus
End Sub
Private Sub cmdClose_Click()
'关闭按按钮
Unload Me
End Sub
Private Sub Form_Load()
'连接DataBase目录下的Data数据库,打开表Book
DBpath = App.Path + "\DataBase\Data.mdb"
Set db1 = Workspaces(0).OpenDatabase(DBpath, False)
Set rst1 = db1.OpenRecordset("Book", dbOpenTable)
Set qry1 = db1.CreateQueryDef("")
'创建图书编号的索引
rst1.Index = "图书编号"
'打开数据库
Set db2 = Workspaces(0).OpenDatabase(DBpath, False)
Set rst2 = db2.OpenRecordset("BookFf", dbOpenTable)
'创建一个查询赋给变量qry2,默认值为空
Set qry2 = db2.CreateQueryDef("")
'对图书编号索引
rst2.Index = "图书编号"
'设置图书编号和书名为空
txtBookBian.Text = ""
txtBookName.Text = ""
'设置ListView字段
Lv.View = lvwReport
Lv.GridLines = False
Lv.ColumnHeaders.Add , , "图书编号"
Lv.ColumnHeaders.Add , , "书名"
Lv.ColumnHeaders.Add , , "类别"
Lv.ColumnHeaders.Add , , "价格"
Lv.ColumnHeaders.Add , , "出版社"
Lv.ColumnHeaders.Add , , "是否借出"
Lv.ColumnHeaders.Add , , "借书证号"
Lv.ColumnHeaders.Add , , "借书人姓名"
Lv.ColumnHeaders.Add , , "借书日期"
End Sub
Private Sub txtBookBian_KeyPress(KeyAscii As Integer)
'如果按回车键,调用cmdBeginFind_Click过程(图书编号输入框)
If KeyAscii = 13 Then
txtBookName.Text = ""
cmdBeginFind_Click
End If
End Sub
Private Sub txtBookName_KeyPress(KeyAscii As Integer)
'如果按回车键,调用cmdBeginFind_Click过程(书名输入框响应开始查找按钮)
If KeyAscii = 13 Then
txtBookBian.Text = ""
cmdBeginFind_Click
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -