Excel VBA高效办公应用-第十四章-Excel图书管理系统
2017-06-24 22:58
330 查看
本示例提供了以下功能:
1. 图书资料管理(订阅、搜索、删除)
2. 读者管理(添加、搜索、删除)
3. 借阅图书
4. 归还图书
看上去功能挺齐全,可用Excel实现事务管理系统,在如今的互联网时代,还真是鸡肋啊。
话又说回来,2003年,这个示例或许看起来很酷,麻雀虽小,五脏俱全啊。
好,先来实现一下图书查询功能吧。
Private Sub 搜索资料_Click()
Dim i As Integer '定义用于循环的整型变量
Dim j As Integer '定义用于循环的整型变量
Dim k As Integer '定义用于循环搜索关键字的整型变量
'定义判断资料是否在的布尔变量
Dim CunZai As Boolean
'定义判断资料是否在的数据行中找到匹配
Dim HangCunZai As Boolean
'定义用于保存“资料信息”记录数的整型变量
Dim iRowCount As Integer
'一行记录中各列逐次与搜索关键字匹配,合计匹配次数
Dim iCount As Integer
'把“资料信息”工作表的记录行数赋予iCount
iCount = Sheets("资料信息").[A5].CurrentRegion.Rows.Count + 4
'为CunZai布尔变量赋初值
CunZai = False
'使用For…Next循环语句
For i = 6 To iCount
'开始从每行的第一列开始匹配搜算关键字,重置标记
HangCunZai = False
iRowCount = 0 '列匹配次数重置
For k = 1 To 11
If Trim(Cells(3, 13)) = Trim(Cells(i, k)) Then
'如果有相同记录,使用For…Next循环语句
' For j = 1 To 11
' '把符合条件的记录信息赋予第三行
' Cells(3, j) = Cells(i, j)
' '把CunZai布尔变量的值设为True
' CunZai = True
' Next j
'弹出提示已经搜索到符合条件资料的信息
' MsgBox "已经搜索到符合条件的资料记录!", vbOKOnly, "提示"
'选择符合条件的记录行
HangCunZai = True '发生匹配,退出本次循环
iRowCount = iRowCount + 1
CunZai = True '至少有一行匹配
End If
Next k
'单行匹配结束
If iRowCount < 1 Then
Rows(i).Hidden = True '如果一列都未匹配,则隐藏此行记录
End If
Next i
' '判断是否搜索到资料
' If CunZai = False Then
' '弹出提示没有搜索到符合条件资料的信息
' MsgBox "没有搜索到符合条件的资料记录,请核实!", vbOKOnly, "提示"
' End If
End Sub
原示例只提供了书名查询,经过我这么一改,支持任意关键字的查询,而且,支持多行结果返回。有意思!
1. 图书资料管理(订阅、搜索、删除)
2. 读者管理(添加、搜索、删除)
3. 借阅图书
4. 归还图书
看上去功能挺齐全,可用Excel实现事务管理系统,在如今的互联网时代,还真是鸡肋啊。
话又说回来,2003年,这个示例或许看起来很酷,麻雀虽小,五脏俱全啊。
好,先来实现一下图书查询功能吧。
Private Sub 搜索资料_Click()
Dim i As Integer '定义用于循环的整型变量
Dim j As Integer '定义用于循环的整型变量
Dim k As Integer '定义用于循环搜索关键字的整型变量
'定义判断资料是否在的布尔变量
Dim CunZai As Boolean
'定义判断资料是否在的数据行中找到匹配
Dim HangCunZai As Boolean
'定义用于保存“资料信息”记录数的整型变量
Dim iRowCount As Integer
'一行记录中各列逐次与搜索关键字匹配,合计匹配次数
Dim iCount As Integer
'把“资料信息”工作表的记录行数赋予iCount
iCount = Sheets("资料信息").[A5].CurrentRegion.Rows.Count + 4
'为CunZai布尔变量赋初值
CunZai = False
'使用For…Next循环语句
For i = 6 To iCount
'开始从每行的第一列开始匹配搜算关键字,重置标记
HangCunZai = False
iRowCount = 0 '列匹配次数重置
For k = 1 To 11
If Trim(Cells(3, 13)) = Trim(Cells(i, k)) Then
'如果有相同记录,使用For…Next循环语句
' For j = 1 To 11
' '把符合条件的记录信息赋予第三行
' Cells(3, j) = Cells(i, j)
' '把CunZai布尔变量的值设为True
' CunZai = True
' Next j
'弹出提示已经搜索到符合条件资料的信息
' MsgBox "已经搜索到符合条件的资料记录!", vbOKOnly, "提示"
'选择符合条件的记录行
HangCunZai = True '发生匹配,退出本次循环
iRowCount = iRowCount + 1
CunZai = True '至少有一行匹配
End If
Next k
'单行匹配结束
If iRowCount < 1 Then
Rows(i).Hidden = True '如果一列都未匹配,则隐藏此行记录
End If
Next i
' '判断是否搜索到资料
' If CunZai = False Then
' '弹出提示没有搜索到符合条件资料的信息
' MsgBox "没有搜索到符合条件的资料记录,请核实!", vbOKOnly, "提示"
' End If
End Sub
原示例只提供了书名查询,经过我这么一改,支持任意关键字的查询,而且,支持多行结果返回。有意思!
相关文章推荐
- Excel VBA高效办公应用-第十七章-用户权限管理系统
- Excel VBA高效办公应用-第三章-使用Excel的内置函数
- Excel VBA高效办公应用-第十一章-教师员工数据管理-Part3 (排座位小程序)
- Excel VBA高效办公应用-第六章-客户资料管理-Part2 (简单查询功能的VBA实现及记录单功能)
- Excel VBA高效办公应用-第六章-客户资料管理-Part1 (窗口冻结及排序)
- Excel VBA高效办公应用-第十六章-VBA高效文件操作(使用级联菜单管理多个工作簿)
- Excel VBA高效办公应用-第十一章-教师员工数据管理-Part2 (课表助手小程序)
- Excel VBA高效办公应用-第六章-客户资料管理-Part3 (对筛选结果进行统计)
- Excel VBA高效办公应用-第十一章-教师员工数据管理-Part1 (教师考核评测数据处理)
- C#桌面办公应用-工资管理系统系列九
- Excel VBA高效办公应用-第一章-Excel VBA简介
- Excel VBA高效办公应用-第五章-销售数据的处理与分析-Part1(自动插入多张图表)
- Excel VBA高效办公应用-第八章-商品销售决策与分析-Part3 (商品进货量决策)
- Excel VBA高效办公应用-第七章-VBA财务报表分析-Part2 (资产负债表分析)
- 用MongoDB数据库来管理办公系统中文档型的表单和信息——通用流程化应用审批单设计思路(二,续)
- Excel VBA高效办公应用-第二章-Excel VBA编辑基础-Part4(VBA控制语句)
- Excel VBA高效办公应用-第二章-Excel VBA编辑基础-Part3(Is, Like运算符的用法详解)
- Excel VBA高效办公应用-第七章-VBA财务报表分析-Part3 (现金流量表分析)
- Excel VBA高效办公应用-第四章-用VBA处理市场调查问卷数据
- C#桌面办公应用-工资管理系统系列十