毕业论文--vb图书管理系统毕业
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
摘 要
随着人类社会的发展人类对知识的需求也不断地增长在这种形势下书籍就
渐渐地成为人们获取并增长知识的主要途径而图书馆就自然而然地在人们的生
活中占据了一定的位置如何科学地管理图书馆不但关系到读者求知的方便程度
也关系到图书馆的发展因此开发一套完善的图书馆管理系统就成不可少了本文
介绍了在Visual Basic60环境下采用自上而下地总体规划自下而上地应用开发
的策略开发本系统的详细过程提出实现图书馆信息管理资源共享的基本目标从
而推动迈向数字化图书馆的步伐并阐述系统结构设计和功能设计从图书的入库
登记到查询浏览从借书证发放到图书的借阅形成了一个整体自动化管理模式从
软件工程的角度进行了科学而严谨的阐述
关键词图书管理借阅浏览Visual Basic60
Abstract With the development of society Mankind need more knowledge also constantly increase Under this fsituation book gradually become the main path to obtain the knowledge of life and library naturally occupied in people certainly position how science ground the management library not only relate to the convenient degree that the reader beg to know but also relate to the library that strategy of development therefore develop the management system of a perfect library cant little this text introduced under the Visual Basic60 the environment adoption" from top
to bottom total programming from the detailed process that bottom but up applied development" develop this system from the step that but the push head into the arithmetic figure of the library and shows the system construction design and function design from the books of store in warehouse to register the search to view books that issue from library card to angle of borrow become a the whole automation the management the mode and proceeds careful explain from the software engineering science
Keywordslibrary borrowsearch to viewVisual Basic60
目 录
概述
11 数据库及其应用?–3
12 数据库系统?–3
13 数据库系统简介?–4
2 数据库系统设计
21 数据库设计概述?–5
22数据库设计周期 ?–5
23 设计工具简介?–6
24 图书管理系统数据库设计?–6
3 系统总体设计
31 图书管理系统简介 ?–11
32 系统功能描述 ?–12
33 系统模块划分 ?–12
34 系统流程
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
?–13
35 开发工具简介 ?–14
36 系统详细设计 ?–15
com 启动界面设计?–15
com 登陆界面设计?–15
com 主窗口设计?–16
com 具体功能模块设计?–16
4 总结谢辞 ?–19
参考文献 ?–20
附录系统原程序 ?–21
1 概 述
11数据库及其应用
自20世纪70年代以来数据库技术得到迅速发展目前世界上已经有数百万个数据库系统在运行其应用已经深入到社会生活的各个领域从企业管理银行管理资源管理经济预测一直到信息检索档案管理普查统计等我国20世纪90年代初在全国范围内装备了12个以数据库为基础的大型计算机系统这些系统分布在邮电计委银行电力铁路气象民航情报公安军事航天和财税等行业
现在数据库技术还在不断发展并且不断的与其它计算机技术相互渗透数据库技术与网络通信技术相结合产生了分布式数据库系统数据库技术与面象对象技术相结合产生了面向对象数据库系统等各种数据库系统
在人类迈向21世纪知识经济的时候信息变为经济发展的战略资源信息技术已成为社会生产力重要的组成部分人们充分认识到数据库是信息化社会
中信息资源管理与开发利用的基础对于一个国家数据库的建设规模使用水平已成为衡量该国信息化程度的重要标志因此数据库的学习是非常重要的
12数据库系统
数据库系统本质上是一个用计算机存储
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
的系统数据库本身可被看作为一种电子文件柜也就是说它是收集计算机数据文件的仓库或容器系统用户可以对这些文件执行插入数据检索数据更改数据删除数据等一系列操作
总之数据库系统是一个计算机存储记录的系统即它是一个计算机系统该系统的目标存储信息并支持用户检索和更新所需要的信息图1-2是一个数据库系统的简图
图1-2 数据库系统简图
13数据库系统简介
本人设计的是一个关于图书馆图书管理的数据库系统通过这个系统管理员可以简捷方便的对图书记录查阅增加删除等功能而用户也可以通过这个系统对进行图书查询借阅归还等功能
该数据库应用程序按照用户权限和实现功能的不同分为两部分外部学生对数据库的查询访问和内部管理人员对数据记录的管理维护每一部分中包含各自实现的各项功能对每一项功能的实现将按照窗体设计以及运行情况的顺序逐一进行设计
本系统采用Microsoft access技术建立数据库使用VB技术建立数据源的链接并且生成图书管理的数据库应用程序从而实现数据库的管理功能
2 数据库系统设计
21数据库设计概述
计算机信息系统以数据库为核心在数据库管理系统的支持下进行信息的收集整理存储检索更新加工统计和传播等操作
对于数据库应用开发人员来说为使现实世界的信息流计算机话并对计算机话的信息进行各种操作就是如何利用数据库管理系统系统软件和相关硬件系统将用户的要求转化成有效的数据结构并使数据库结构易于实现用户新的要求的过程
确切的说数据库设计是指对于一个给定的应用环境提供一个确定最优数据模型与处理模式的逻辑设计以及一个确定数据库存储结构与存取方法的物理设计建立起既能反映现实世界信息和信息联系满足用户数据要求和加工要求有能被某个数据库管理系统所接受同时能实现系统目标并有效存取数据的数据库
22数据库设计周期
根据软件工程的思想数据库设计的周期可以划分为六个阶段
1 规划阶段
确定开发的总目标给出
计划
项目进度计划表范例计划下载计划下载计划下载课程教学计划下载
开发的软件系统的功能性能可靠性以及接等方面的设想
2 需求分析阶段
认真细致地了解用户对数据的加工要求确定系统的功能与边界本阶段的最终结果提供一个可作为设计基础的系统说明书包括对软硬件环境的要求和一整套完善的数据流程图
3 设计阶段
把需求分析阶段所确定的功能细化主要工作是概念设计阶段逻辑设计阶段
物理设计阶段然后对每个阶段内部设计详细的流程
4 程序编制阶段
以一种或几种特定的程序设计语言表达上一阶段确定的各模块控制流程程序编制时应遵循结构化程序设计方法
5 调试阶段
对已编好的程序进行单元调试分调整体调试联调和系统测试验收
6 运行和维护阶段
这是整个设计周期最长的阶段其工作重点是收集和记录系统实际运行的数据在运行中必须保持数据库的完整性必须有效的处理数据故障和进行数据库恢复同时解决开发过程的遗留问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
改正错误进行功能完善
23数据库开发工具简介Microsoft Access2003随着社会发展人类的生产生活越来越离不开信息谁拥有了更多更有效的信息谁就将在竞争中处于有利地位信息产业正在成为一个国家的支柱数据作为信息的载体其管理工具数据库对于信息技术的重要性正日益得到人们的重视只有拥有了先进的数据库技术才能有效地管理好浩如烟海的数据并从中提取出对自己有用的信息来加以利用
数据库定义模型图
com概要设计
软件系统本质上是信息处理系统因此在软件系统的整个开发过程中都必须考虑两方面的问题数据及对数据的处理为了把用户的数据要求清晰明确地表达出来系统分析员通常建立一个概念性的数据模型概念性数据模型是一种面向问题的数据模型是按照用户的观点来对数据和信息建模它描述了从用户角度看到的数据它反映了用户的现实环境且与在软件系统中的实现方法无关这里我们运
用最常用的表示概念性数据模型的方法是实体联系方法即ER模型通常软件系统中有许多数据是需要长期保存为减少数据冗余简化修改数据的过程实现对数据进化规范化
数据库表的关系
数据库E-R图
由E-R图转换成关系模式
图书名 图书类别 作者 书籍号 出版社 录入时间 高等数学
SSSS 0001 高等教育 2006(1 数据库 SSS 0003 工业出版 20066 读者关系图
读者姓名 读者编号 性别 读者类别 工作单位 家庭住址 录入时间 汤水平 001 男 DFF 宜春学院 1111 112678 2006(3
223 003 女 FDFD FDFD 4666 65777 用户关系图
用户名 密码 Admin 000000
com的具体实现
作为Microsoft公司的本地数据库Access在应用中使用的非常广泛为此我选用Access数据库来进行数据库的设计根据前面定义的实体及实体之间的关系形成数据库的表格以及各个表之间的关系
用户信息表
说明该表是为用户进入本系统而设置的用户权限只有同时知道用户名和所对应的密码才能进入本系统
读者信息表
说明该表是对读者的信息进行管理
读者类别表
说明该表规定了读者的类别 图书信息表
说明该表详细介绍了图书的相关信息 图书类别表
说明该表对图书进行了分类 借阅信息表
说明该表详细纪录了图书的借阅情况 上述所做的各表都是围绕图书借阅系统而做的所以做好这个方面信息表是
本系统成功的关键环节之一
3 系统总体设计
31 图书管理系统简介
当今时代是飞速发展的信息时代在各行各业中离不开信息处理这正是计算机被广泛应用于信息管理系统的环境计算机的最大好处在于利用它能够进行信息管理使用计算机进行信息控制不仅提高了工作效率而且大大的提高了其安全性
尤其对于复杂的信息管理计算机能够充分发挥它的优越性计算机进行信息管理与信息管理系统的开发密切相关系统的开发是系统管理的前提本系统就是为了管理好图书馆信息而设计的
图书馆作为一种信息资源的集散地图书和用户借阅资料繁多包含很多的信息数据的管理现今有很多的图书馆都是初步开始使用甚至尚未使用计算机进行信息管理根据调查得知他们以前对信息管理的主要方式是基于文本表格等纸介质的手工处理对于图书借阅情况如借书天数超过限定借书时间的天数的统计和核实等往往采用对借书卡的人工检查进行对借阅者的借阅权限以及借阅天数等用人工计算手抄进行数据信息处理工作量大容易出错由于数据繁多容易丢失且不易查找总的来说缺乏系统规范的信息管理手段尽管有的图书馆有计算机但是尚未用于信息管理没有发挥它的效力资源闲置比较突出这就是管理信息系统的开发的基本环境数据处理手工操作工作量大出错率高出错后不易更改图书馆采取手工方式对图书借阅情况进行人工管理由于信息比较多图书借阅信息的管理工作混乱而又复杂一般借阅情况是记录在借书证上图书的数目和内容记录在文件中图书馆的工作人员和管理员也只是当时对它比较清楚时间一长如再要进行查询就得在众多的资料中翻阅查找了造成查询费时费力如要对很长时间以前的图书进行更改就更加困难了
基于这此问题我认为有必要建立一个图书管理系统使图书管理工作规范化系统
化程序化避免图书管理的随意性提高信息处理的速度和准确性能够及时准确有效的查询和修改图书情况Admin用户可以创建用户修改用户信息以及删除用户普通用户则只能修改自己的用户名和密码系统用户管理模块的关系如下图
系统管理功能模块关系图
34 系统流程分析
本节将对实例进行流程分析所谓系统流程就是用户在使用系统是的工作过程对于多类型用户的管理系统来说每一类用户的工作流程都是不相同的多用户系统的工作流程都从用户登陆模块开始的对多用户的身份进行认证身份认证可以分为以下两个过程
1确认用户是否是有效的系统用户
2确定用户的类型
第 1决定用户能否进入系统第2个过程根据用户的类型决定用户的操作权限从而决定用户的工作界面本系统的流程分析如图如下
系统流程分析图
进入系统后不同类型的用户所能进行的操作也不同这些操作可以笼统的分为系统管理和图书借阅管理模块
35 开发工具简介 Visual Basic60
VB是微软公司出品的一个快速可视化程序开发工具软件借助微软在操作系统和办公软件的垄断地位VB在短短的几年内风靡全球VB是极有和功能强大的软件主要表现在所见即所得的界面设计基于对象的设计方法极短的软件开发周期较易维护的生成代码VB程序语言具有许多优秀的特性用其设计应用程序时有两个基本特点可视化设计和事件驱动编程
?可视化设计
同其他的一些可视化程序开发工具一样VB具有可视化设计的特点微软的Word在刚刚进入市场时同WPS竞争的一个重要的功能砝码就是"所见即所得"的字处理功能VB在设计应用程序界面时也可以说是"所见即所得"在设计时头脑中所想象的应用程序界面完全可以通过键盘鼠标以及徒手画出来而不是编制大量的代码然后再编译生成如果需要修改也是利用键盘鼠标和手画而底层的一些程序代码由VB自动生成或修改VB为用户提供大量的界面元素 在VB中称为控件对象 这些控件对象对于熟悉Windows应用程序的用户而言是一点也不陌生如"窗体""菜单""命令按钮""工具按钮""检查框"等等用户只需要利用鼠标键盘把这些控件对象拖动到适当的位置设置它们的大小形状属性等就可以设计出所需的应用程序界面
?事件驱动编程
Windows操作系统出现以来图形化的用户界面和多任务多进程的应用程序要求程序设计不能是单一性的在使用VB设计应用程序时必须首先确定应用程序如何同用户进行交互例如发生鼠标单击键盘输入等事件时由用户编写的代码控制这些事件的响应这就是所谓的事件驱动编程
Vb60有三种版本各自满足不同的开发需要
1Visual Basic 学习版使编程人员轻松开发Windows 9598和windows NT的应用程序该版本包括所有的内部控件连同gridtab和data-bound控件学习版提供的文档有程序员指南联机帮助及Visual Basic联机手册
2专业版为专业编程人员提供了一整套进行开发的功能完备的工具该版本包括学习版的全部功能连同 ActiveX控件还包括Internet控件和Crystal
Report Writer专业版提供的文挡有程序员指南联机帮助和部件工具指南
3企业版使得专业编程人员能够开发功能强大的组内分布式应用程序该版本包括专业版的全部功能连同自动化管理器部件管理器数据库管理工具Microsoft Visual Sourcesafe面向工程版的控制系统等企业版提供的文挡包括专业版的所有文挡还有客户服务器应用程序开发指南和Sourcesafe用户指南
本系统正是采用Visual Basic 企业版所开发的管理系统
36系统详细设计
根据系统分析系统设计的结果采用VB作为开发工具实现图书管理系统各模块的功能
com 启动界面设计
系统启动首先出现如下对话框
该界面显示了有关的系统信息
com 登陆界面设计
单击启动界面确定将出现如下对话框
该界面为用户登陆界面用户输入自己的用户名和密码就能成功登陆本系统如果密码连续3次输错用户身份没有被确认系统讲自动关闭该设计有助于维护系统的安全防止非法登陆
com 主界面设计
用户登陆成功将进入如下系统主界面
在主界面中将显示本系统的所有功能菜单单击任一菜单将进入相应的功能窗口
com 其他功能模块设计
?图书管理模块的实现
要实现图书管理模块应首先点击图书管理主菜单如下
然后单击添加图书信息其窗体如下
该窗口的功能是为用户添加图书信息而设计的用户可以通过本窗口把图书
的详细资料添加到图书信息库中
?读者信息管理模块的实现
点击读者管理主菜单如下
然后单击添加读者信息其窗口如下
本窗口实现读者信息的添加通过本窗口把读者的详细信息添加到读者信息
库中方便对读者的管理
?图书借阅管理模块的实现
要实现图书借阅管理模块应首先点击图书借阅管理主菜单如下 然后单击还书管理其窗体如下
本窗口的功能是为实现还书管理而设计的用户通过该界面可以有效的管理
图书的归还情况
?系统管理模块的实现
实现系统管理功能点击系统管理主菜单如下
单击添加管理员其窗口如下
新用户可以通过本窗口实现注册和添加
?系统维护模块的实现
系统维护模块主菜单如下
单击数据备份按钮其实现窗口如下
4 总 结谢 辞
经过三个月的设计和开发图书馆管理系统基本开发完毕其功能基本符合用户的需求能够完成用户的图书信息管理图书借阅管理读者信息管理系统维护等方面的功能以及各种相关功能的扩展但是由于毕业设计时间较短加上知识的有限该系统还有许多不足的地方源程序调试方面的问题还有好多出错处理不够等方面问题这些都有待于今后进一步的改善在设计过程中通过学习了解了数据库系统的开发原理和应用基本掌握了开发工具Visual Basic60和Microsoft Access2003的使用为今后的学习和开发打下了坚实的基础
在本次毕业设计中我从指导老师那学到了好多东西老师认真负责的工作态度严谨的治学精神和深厚的理论水平都使我受益非浅在系统设计开发过程中XXXXXX老师给予了很大的帮助帮助解决了很多难题使得系统能及时开发完成还有在我设计过程中许多同学给予了大力的支持在这里一致表示感谢
参 考 文 献
[1]孙越编著Visual Basic数据库开发教程[M]人民邮电出版社 2002
[2]启明工作室Visual Basic Access数据库应用系统开发[M]人民邮电出版社 2004
[3]黄志球李清等数据库应用技术基础[M]机械工业出版社2003
[4]刘韬Visual Basic60数据库系统开发导航[M] 人民邮电出版社2003
[5]恒扬科导Visual Basic60程序设计学与用教程[M] 机械工业出社2003
[6] 刘瑞新 张二峰等Visual Basic管理信息系统开发[M] 机械工业出版社2005
附录系统原程序
系统开始界面程序
Option Explicit
Reg Key Security Options
Const READ_CONTROL H20000
Const KEY_QUERY_VALUE H1
Const KEY_SET_VALUE H2
Const KEY_CREATE_SUB_KEY H4
Const KEY_ENUMERATE_SUB_KEYS H8
Const KEY_NOTIFY H10
Const KEY_CREATE_LINK H20
Const KEY_ALL_ACCESS KEY_QUERY_VALUE KEY_SET_VALUE KEY_CREATE_SUB_KEY KEY_ENUMERATE_SUB_KEYS KEY_NOTIFY KEY_CREATE_LINK READ_CONTROL
Reg Key ROOT Types
Const HKEY_LOCAL_MACHINE H80000002
Const ERROR_SUCCESS 0
Const REG_SZ 1 Unicode nul terminated string
Const REG_DWORD 4 32-bit number
Const gREGKEYSYSINFOLOC "SOFTWARE\Microsoft\Shared Tools Location"
Const gREGVALSYSINFOLOC "MSINFO"
Const gREGKEYSYSINFO "SOFTWARE\Microsoft\Shared Tools\MSINFO"
Const gREGVALSYSINFO "PATH"
Private Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" ByVal hKey As Long ByVal lpSubKey As String ByVal ulOptions As Long ByVal samDesired As Long ByRef phkResult As Long As Long
Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" ByVal hKey As Long ByVal lpValueName As String ByVal lpReserved As Long ByRef lpType As Long ByVal lpData As String ByRef lpcbData As Long As Long
Private Declare Function RegCloseKey Lib "advapi32" ByVal hKey As Long As Long
Private Sub cmdSysInfo_Click
Call StartSysInfo
End Sub
Private Sub cmdOK_Click
Unload Me
frmLoginShow
End Sub
Public Sub StartSysInfo
On Error GoTo SysInfoErr
Dim rc As Long
Dim SysInfoPath As String
Try To Get System Info Program Path\Name From Registry
If GetKeyValue HKEY_LOCAL_MACHINE gREGKEYSYSINFO gREGVALSYSINFO
SysInfoPath Then
Try To Get System Info Program Path Only From Registry
ElseIf GetKeyValue HKEY_LOCAL_MACHINE gREGKEYSYSINFOLOC
gREGVALSYSINFOLOC SysInfoPath Then
Validate Existance Of Known 32 Bit File Version
If Dir SysInfoPath "\MSINFO32EXE" "" Then
SysInfoPath SysInfoPath "\MSINFO32EXE"
Error - File Can Not Be Found
Else
GoTo SysInfoErr
End If
Error - Registry Entry Can Not Be Found
Else
GoTo SysInfoErr
End If
Call Shell SysInfoPath vbNormalFocus
Exit Sub
SysInfoErr
MsgBox "System Information Is Unavailable At This Time" vbOKOnly
End Sub
Public Function GetKeyValue KeyRoot As Long KeyName As String SubKeyRef As String ByRef KeyVal As String As Boolean
Dim i As Long Loop Counter
Dim rc As Long Return Code
Dim hKey As Long Handle To An Open Registry Key
Dim hDepth As Long
Dim KeyValType As Long Data Type Of A Registry Key
Dim tmpVal As String Tempory Storage For A Registry Key Value
Dim KeyValSize As Long Size Of Registry Key Variable
Open RegKey Under KeyRoot HKEY_LOCAL_MACHINE
rc RegOpenKeyEx KeyRoot KeyName 0 KEY_ALL_ACCESS hKey Open Registry Key
If rc ERROR_SUCCESS Then GoTo GetKeyError Handle
Error
tmpVal String 1024 0 Allocate Variable Space
KeyValSize 1024 Mark Variable Size
Retrieve Registry Key Value
rc RegQueryValueEx hKey SubKeyRef 0 _
KeyValType tmpVal KeyValSize GetCreate Key Value
If rc ERROR_SUCCESS Then GoTo GetKeyError Handle Errors
If Asc Mid tmpVal KeyValSize 1 0 Then Win95 Adds Null Terminated String
tmpVal Left tmpVal KeyValSize - 1 Null Found Extract From String
Else WinNT Does NOT Null Terminate String
tmpVal Left tmpVal KeyValSize Null Not Found Extract String Only
End If
Determine Key Value Type For Conversion
Select Case KeyValType Search Data Types
Case REG_SZ String Registry Key Data Type
KeyVal tmpVal Copy String Value
Case REG_DWORD Double Word Registry Key Data Type
For i Len tmpVal To 1 Step -1 Convert Each Bit
KeyVal KeyVal Hex Asc Mid tmpVal i 1 Build Value Char By Char
Next
KeyVal Format "h" KeyVal Convert Double Word To String
End Select
GetKeyValue True Return Success
rc RegCloseKey hKey
Close Registry Key
Exit Function Exit
GetKeyError Cleanup After An Error Has Occured
KeyVal "" Set Return Val To Empty String
GetKeyValue False Return Failure
rc RegCloseKey hKey Close Registry Key
End Function
Private Sub Form_Load
End Sub
系统登陆界面程序
sql "select from 用户表where user_ID " Trim text1Text ""
rs_loginOpen sql conn adOpenKeyset adLockPessimistic
If rs_loginEOF True Then
MsgBox "没有这个用户请重新输入" vbOKOnly vbExclamation ""
text1Text ""
text1SetFocus
Else
username text1Text
If Trim rs_loginFields 1 Trim text2Text Then
Unload Me
frmMainShow
Else
MsgBox "密码不正确请重新输入" vbOKOnly vbExclamation ""
text2SetFocus
text2Text ""
End If
End If
End If
cnt cnt 1
If cnt 3 Then
Unload Me
End If
End Sub
Private Sub Form_Load cnt 0
End Sub
图书管理界面程序
Option Explicit
Dim panduan As String Private Sub Command1_Click
Dim rs_findbook As New ADODBRecordset
Dim conn As New ADODBConnection Dim sql As String
If Check1Value vbChecked Then
sql "书名 " Trim Text1Text "" "" End If
If Check2Value vbChecked Then
If Trim sql "" Then
sql "类别 " Trim Combo1Text " " ""
Else
sql sql "and 类别 " Trim Combo1Text " " ""
End If
End If
If Check3Value vbChecked Then
If Trim sql "" Then
sql "作者 " Trim Text2Text " " ""
Else
sql sql "and 作者 " Trim Text2Text " " ""
End If
End If
If Check4Value vbChecked Then
If Trim sql "" Then
sql "图书编号 " Trim Text3Text " " ""
Else
sql sql "图书编号 " Trim Text3Text " " ""
End If
End If
If Check5Value vbChecked Then
If Trim sql "" Then
sql "出版社 " Trim Text4Text " " ""
Else
sql sql "and 出版社 " Trim Text4Text " " ""
End If
End If
connOpen "provider Microcomcom data source " AppPath
"\databasemdb"
If Trim sql "" Then
MsgBox "请选择查询方式" vbOKOnly vbExclamation
Exit Sub
End If
sql "select from 书籍信息 where " sql
rs_findbookCursorLocation adUseClient rs_findbookOpen sql conn adOpenKeyset adLockPessimistic
DataGrid1AllowAddNew False
DataGrid1AllowDelete False
DataGrid1AllowUpdate False
If rs_findbookRecordCount 0 Then
MsgBox "查询不到该图书信息" vbOKOnly vbExclamation Else
Set DataGrid1DataSource rs_findbook End If
End Sub
Private Sub Command2_Click
Unload Me
End Sub
Private Sub Command3_Click
If Trim book_num "" Then
MsgBox "请选择要借阅的图书" vbOKOnly vbExclamation
Exit Sub
End If
If panduan "是" Then
MsgBox "此书已被借出" vbOKOnly vbExclamation
Exit Sub
End If
Unload Me
frmborrowbookShow
End Sub
Private Sub DataGrid1_RowColChange LastRow As Variant ByVal LastCol
As Integer
book_num DataGrid1Columns 0 CellValue DataGrid1Bookmark
panduan DataGrid1Columns 7 CellValue DataGrid1Bookmark End Sub
Private Sub Form_Load
Dim rs_find As New ADODBRecordset
Dim conn As New ADODBConnection
Dim sql As String
sql "select from 图书类别"
connOpen "provider Microcomcom data source " AppPath
"\databasemdb"
rs_findOpen sql conn adOpenKeyset adLockPessimistic
rs_findMoveFirst
If Not rs_findEOF Then
Do While Not rs_findEOF
Combo1AddItem rs_findFields 0
rs_findMoveNext
Loop
Combo1ListIndex 0
End If
rs_findClose
End Sub
读者管理界面程序
Private Sub Command1_Click
Dim rs_findreader As New ADODBRecordset Dim conn As New ADODBConnection Dim sql As String
If Check1Value vbChecked Then
sql "读者编号 " Trim Text1Text "" "" End If
If Check2Value vbChecked Then
If Trim sql "" Then
sql "读者姓名 " Trim Text2Text " " ""
Else
sql sql "and 类别 " Trim Text2Text " " ""
End If
End If
If Check3Value vbChecked Then
If Trim sql "" Then
sql "读者类别 " Trim Combo1Text " " ""
Else
sql sql "and 读者类别 " Trim Combo1Text " " ""
End If
End If
connOpen "provider Microcomcom data source " AppPath
"\databasemdb"
If Trim sql "" Then
MsgBox "请选择查询方式" vbOKOnly vbExclamation
Exit Sub
End If
sql "select from 读者信息 where " sql
rs_findreaderCursorLocation adUseClient rs_findreaderOpen sql conn adOpenKeyset adLockPessimistic
DataGrid1AllowAddNew False
DataGrid1AllowDelete False
DataGrid1AllowUpdate False
If rs_findreaderRecordCount 0 Then
MsgBox "查询不到该图书信息" vbOKOnly vbExclamation Else
Set DataGrid1DataSource rs_findreader End If
End Sub
Private Sub Command2_Click
Unload Me
End Sub
Private Sub Form_Load
Dim rs_find As New ADODBRecordset
Dim conn As New ADODBConnection
Dim sql As String
sql "select from 读者类别"
connOpen "provider Microcomcom data source " AppPath
"\databasemdb"
rs_findOpen sql conn adOpenKeyset adLockPessimistic
rs_findMoveFirst
If Not rs_findEOF Then
Do While Not rs_findEOF
Combo1AddItem rs_findFields 0
rs_findMoveNext
Loop
Combo1ListIndex 0
End If
rs_findClose
End Sub
图书借阅管理程序
借书管理界面
Dim leibie As String 该读者的类别
Dim qixian As String 该读者借书的期限
Dim shumu As Integer 该读者已借书数量
Dim num As Integer 该读者借书数量的限制
Private Sub Combo1_Click
Combo2ListIndex Combo1ListIndex End Sub
Private Sub Combo2_Click
Combo1ListIndex Combo2ListIndex End Sub
Private Sub Command1_Click
Dim rs_borrowbook As New ADODBRecordset
Dim sql As String
Dim conn As New ADODBConnection
connOpen "provider Microcomcom data source " AppPath
"\databasemdb"
sql "select from 读者信息 where 读者编号 " Combo1Text ""
rs_borrowbookOpen sql conn adOpenKeyset adLockPessimistic
leibie rs_borrowbookFields 3
shumu rs_borrowbookFields 8
rs_borrowbookClose
sql "select from 读者类别 where 种类名称 " leibie ""
rs_borrowbookOpen sql conn adOpenKeyset adLockPessimistic
qixian rs_borrowbookFields 2
num rs_borrowbookFields 1
rs_borrowbookClose
If shumu num Then
MsgBox "该读者借书数额已满" vbOKOnly vbExclamation
Exit Sub
End If
sql "select from 借阅信息"
rs_borrowbookOpen sql conn adOpenKeyset adLockPessimistic
rs_borrowbookAddNew
rs_borrowbookFields 1 Combo1Text
rs_borrowbookFields 2 Combo2Text
rs_borrowbookFields 3 Label8Caption
rs_borrowbookFields 4 Label9Caption
rs_borrowbookFields 5 Date
rs_borrowbookFields 6 Date qixian
rs_borrowbookUpdate
rs_borrowbookClose
sql "select from 书籍信息 where 图书编号 " book_num ""
rs_borrowbookOpen sql conn adOpenKeyset adLockPessimistic
rs_borrowbookFields 7 "是"
rs_borrowbookUpdate
rs_borrowbookClose
sql "select from 读者信息 where 读者编号 " Combo1Text ""
rs_borrowbookOpen sql conn adOpenKeyset adLockPessimistic
rs_borrowbookFields 8 rs_borrowbookFields 8 1
rs_borrowbookUpdate
rs_borrowbookClose
MsgBox "本书借阅成功" vbOKOnly vbExclamation
Unload Me
End Sub
Private Sub Command2_Click
Unload Me
End Sub
Private Sub Form_Load
Dim rs_borrow As New ADODBRecordset
Dim rs_reader As New ADODBRecordset
Dim conn As New ADODBConnection
Dim sql As String
Dim sqlreader As String
connOpen "provider Microcomcom data source " AppPath
"\databasemdb"
sql "select from 书籍信息 where 图书编号 " book_num ""
rs_borrowOpen sql conn adOpenKeyset adLockPessimistic
Label8Caption rs_borrowFields 0
Label9Caption rs_borrowFields 1
Label10Caption rs_borrowFields 3
Label11Caption rs_borrowFields 5
Label12Caption rs_borrowFields 2
Label13Caption rs_borrowFields 4
Label14Caption rs_borrowFields 6
sqlreader "select from 读者信息"
rs_readerOpen sqlreader conn adOpenKeyset adLockPessimistic
If Not rs_readerEOF Then
Do While Not rs_readerEOF
Combo1AddItem rs_readerFields 1
Combo2AddItem rs_readerFields 0
rs_readerMoveNext
Loop
Else
MsgBox "请先登记读者" vbOKOnly vbExclamation
Exit Sub
End If
rs_borrowClose
rs_readerClose
End Sub
Private Sub Frame1_DragDrop Source As Control X As Single Y As Single
End Sub
还书管理界面
Private Sub Combo1_Click
Combo2ListIndex Combo1ListIndex End Sub
Private Sub Combo2_Click
Combo1ListIndex Combo2ListIndex End Sub
Private Sub Combo3_Click
Combo4ListIndex Combo3ListIndex End Sub
Private Sub Combo4_Click
Combo3ListIndex Combo4ListIndex End Sub
Private Sub Command1_Click
Dim rs_reader As New ADODBRecordset
Dim conn As New ADODBConnection
Dim sql As String
findform False
sql "select from 借阅信息 where 读者姓名 " Combo2Text
""
connOpen "provider Microcomcom data source " AppPath
"\databasemdb"
rs_readerCursorLocation adUseClient
rs_readerOpen sql conn adOpenKeyset adLockPessimistic
Set DataGrid1DataSource rs_reader
DataGrid1AllowAddNew False
DataGrid1AllowUpdate False
DataGrid1AllowDelete False
End Sub
Private Sub Command2_Click
Dim rs_book As New ADODBRecordset
Dim conn As New ADODBConnection
Dim sql As String
findform False
sql "select from 借阅信息 where 书籍编号 " Combo3Text
""
connOpen "provider Microcomcom data source " AppPath
"\databasemdb"
rs_bookCursorLocation adUseClient
rs_bookOpen sql conn adOpenKeyset adLockPessimistic
Set DataGrid1DataSource rs_book
DataGrid1AllowAddNew False
DataGrid1AllowUpdate False
DataGrid1AllowDelete False
End Sub
Private Sub Command3_Click
Dim book_number As String
Dim reader_number As String
Dim answer As String
Dim rs_back As New ADODBRecordset
Dim conn As New ADODBConnection
Dim sql As String
connOpen "provider Microcomcom data source " AppPath
"\databasemdb"
book_number DataGrid1Columns 3 CellValue DataGrid1Bookmark
reader_number DataGrid1Columns 1 CellValue DataGrid1Bookmark
answer MsgBox "确定要还这本书吗" vbYesNo ""
If answer vbYes Then
sql "select from 借阅信息 where 书籍编号 "
book_number "" 删除这本书在"借阅信息"中的记录
rs_backCursorLocation adUseClient
rs_backOpen sql conn adOpenKeyset adLockPessimistic
rs_backDelete
rs_backUpdate
rs_backClose
sql "select from 书籍信息 where 图书编号 " book_number
""
rs_backCursorLocation adUseClient
rs_backOpen sql conn adOpenKeyset adLockPessimistic
rs_backFields 7 "否"
rs_backUpdate
rs_backClose
sql "select from 读者信息 where 读者编号 "
reader_number ""
rs_backCursorLocation adUseClient
rs_backOpen sql conn adOpenKeyset adLockPessimistic
rs_backFields 8 rs_backFields 8 - 1
rs_backUpdate
rs_backClose
MsgBox "成功删除" vbOKOnly vbExclamation ""
DataGrid1AllowDelete False
Else
Exit Sub
End If
If findform True Then
Command1_Click
Else
Command2_Click
End If
End Sub
Private Sub Command4_Click
Unload Me
End Sub
Private Sub Form_Load
Dim rs_reader As New ADODBRecordset Dim conn As New ADODBConnection Dim rs_book As New ADODBRecordset Dim sql As String
sql "select from [读者信息]"
connOpen "provider Microcomcom data source " AppPath
"\databasemdb"
rs_readerCursorLocation adUseClient rs_readerOpen sql conn adOpenKeyset adLockPessimistic
If Not rs_readerEOF Then
Do While Not rs_readerEOF
Combo1AddItem rs_readerFields 1
Combo2AddItem rs_readerFields 0
rs_readerMoveNext
Loop
End If
rs_readerClose
sql "select from [借阅信息]"
rs_bookCursorLocation adUseClient rs_bookOpen sql conn adOpenKeyset adLockPessimistic
If Not rs_bookEOF Then
Do While Not rs_bookEOF
Combo3AddItem rs_bookFields 3
Combo4AddItem rs_bookFields 4
rs_bookMoveNext
Loop
End If
rs_bookClose
End Sub
Private Sub Frame1_DragDrop Source As Control X As Single Y As Single
End Sub
系统管理员管理程序
添加管理员
Private Sub Command1_Click Dim sql As String
Dim rs_add As New ADODBRecordset Dim conn As New ADODBConnection
connOpen "provider Microcomcom data source " AppPath
"\databasemdb"
If Trim Text1Text "" Then
MsgBox "用户名不能为空请输入" vbOKOnly vbExclamation ""
Text1SetFocus
Else
sql "select from 用户表"
rs_addOpen sql conn adOpenKeyset adLockPessimistic
While rs_addEOF False
If Trim rs_addFields 0 Trim Text1Text Then
MsgBox "已有这个用户" vbOKOnly vbExclamation ""
Text1SetFocus
Text1Text ""
Text2Text ""
Text3Text ""
Exit Sub
Else
rs_addMoveNext
End If
Wend
If Trim Text2Text Trim Text3Text Then
MsgBox "两次密码不一致" vbOKOnly vbExclamation ""
Text2SetFocus
Text2Text ""
Text3Text ""
Exit Sub
Else
rs_addAddNew
rs_addFields 0 Text1Text
rs_addFields 1 Text2Text
rs_addUpdate
MsgBox "添加用户成功" vbOKOnly vbExclamation ""
MeHide
End If
End If
End Sub
Private Sub Command2_Click
Unload Me
End Sub
更改密码
Private Sub Command1_Click Dim conn As New ADODBConnection Dim rs_mima As New ADODBRecordset Dim sql As String
connOpen "provider Microcomcom data source " AppPath
"\databasemdb"
If Trim Text1Text Trim Text2Text Then
MsgBox "密码不一致" vbOKOnly vbExclamation ""
Text1SetFocus
Text1Text ""
Text2Text ""
Exit Sub
Else
sql "select from 用户表 where user_ID " username ""
rs_mimaOpen sql conn adOpenKeyset adLockPessimistic
rs_mimaFields 1 Text1Text
rs_mimaUpdate
MsgBox "密码修改成功" vbOKOnly vbExclamation ""
Unload Me
End If
End Sub
Private Sub Command2_Click
Unload Me
End Sub
系统维护界面管理
数据备份
Private m_bHaveDone As Boolean
Private Sub Command1_Click
frmopendirShow 1
txtpathTextText frmopendirstrSelDir End Sub
Private Sub Command2_Click
Unload Me
End Sub
Private Sub Command3_Click
m_iBeginSaveTimer 0
Dim rsTableName As New ADODBRecordset
Dim rsColumnName As New ADODBRecordset
Dim rsData As New ADODBRecordset
Dim cnnJLDB As New ADODBConnection
Dim sqlname As String
Dim strName As String
Dim FieldType As Integer
Dim FieldLength As Integer
Dim FieldName As String
Dim FieldNote As String
cnnJLDBOpen "provider Microcomcom data source " AppPath
"\databasemdb"
If Len Trim txtpathTextText 0 Then
Result MsgBox "请指定所要备份数据的路径" vbOKOnly "数据
备份"
Exit Sub
Else
If Right Trim txtpathTextText 1 "\" Then
txtpathTextText Trim txtpathTextText "\"
Else
txtpathTextText Trim txtpathTextText
End If
If Dir txtpathTextText vbDirectory "" Then
Result MsgBox "指定路径不存在请建立后继续" vbOKOnly
"数据备份"
Exit Sub
End If
End If
On Error GoTo ErrorHand
以下为备份数据库
连接数据库
取得数据库所有表名称
Dim strTableName As String
Dim nreccount As Long
Dim RecordSize As Integer
sqlname "select from sysobjects Where type u"
rsTableNameOpen sqlname cnnJLDB adOpenStatic adLockReadOnly
While Not rsTableNameEOF
strTableName Trim rsTableNameName
根据表名确定各个域名及域类型
sqlname "select xtypelengthname from syscolumns where id
in select id from sysobjects where name " strTableName " "
rsColumnNameOpen sqlname cnnJLDB adOpenStatic
adLockReadOnly
rsColumnNameMoveLast
nreccount rsColumnNameRecordCount
ReDim FieldType nreccount
ReDim FieldLength nreccount
ReDim FieldName nreccount
ReDim FieldNote nreccount
rsColumnNameMoveFirst
RecordSize 0
While Not rsColumnNameEOF
nIndex rsColumnNameAbsolutePosition
FieldLength nIndex rsColumnNameLength
RecordSize RecordSize rsColumnNameLength
FieldType nIndex rsColumnNamextype
FieldName nIndex rsColumnNameName
rsColumnNameMoveNext
Wend
rsColumnNameClose
Open txtpathTextText strTableName "dat" For Binary As 1
从表中读纪录
sqlname "select from " Trim strTableName
rsDataOpen sqlname cnnJLDB adOpenStatic adLockReadOnly
lblShowInfoCaption "正在备份数据库中表" Trim TableName
"的数据"
lblShowInfoRefresh
ProcessDataSaveMin 0
Dim lRowCount As Long
Dim n As Long
lRowCount 0
If Not rsDataEOF Then
rsDataMoveLast
lRowCount rsDataRecordCount
rsDataMoveFirst
End If
If lRowCount 0 Then
ProcessDataSave 1
ProcessDataSaveValue 1
lblShowInfoCaption strTableName "表没有纪录"
Else
ProcessDataSave lRowCount
ProcessDataSaveValue ProcessDataSaveMin
End If
Put 1 lRowCount
For n 1 To lRowCount
lblShowInfoCaption "正在备份数据库中表"
strTableName "的数据" Format n "" Format lRowCount
lblShowInfoRefresh
For nStep 0 To nreccount - 1
fieldData rsData nStep
Put 1 fieldData
Next nStep
ProcessDataSaveValue n
m_iBeginSaveTimer 0
rsDataMoveNext
Next n
rsDataClose
Close 1
rsTableNameMoveNext
Wend
rsTableNameClose
m_bHaveDone True
MousePointer 1
Result MsgBox "本系统数据库中的数据备份完毕请保存数据备份目
录下的数据备份文件" vbOKOnly "数据备份"
SaveSetting AppTitle "Settings" "StoreDirection" Trim
txtpathTextText
Unload Me
Exit Sub
ErrorHand
MousePointer 1
MsgBox "数据备份失败请重试必要时联系开发人员" 64 "信息提示" End Sub
Private Sub Form_Load
m_iBeginSaveTimer 0
On Error Resume Next
m_bHaveDone False
txtpathTextText GetSetting AppTitle "Settings"
"StoreDirection" "d\temp"
End Sub
Private Sub Form_Unload Cancel As Integer
m_iBeginSaveTimer 0
Dim iRespond As Integer
If m_bHaveDone False Then 如果还没有备份完数据
iRespond MsgBox "是否确认取消数据备份" 64 4 "信息提示"
If iRespond 7 Then
Cancel -1
End If
End If
End Sub
数据恢复
Private Sub Command1_Click
m_iBeginSaveTimer 0
Dim respond As Integer
respond MsgBox "恢复数据将改写全部数据库现有数据是否继续" 64
4 "是否确认"
If respond 7 Then
Exit Sub
End If
If Len Trim txtpathTextText 0 Then
Result MsgBox "请指定所要备份数据的路径" vbOKOnly "数据
备份"
Exit Sub
Else
If Right Trim txtpathTextText 1 "\" Then
txtpathTextText Trim txtpathTextText "\"
Else
txtpathTextText Trim txtpathTextText
End If
If Dir txtpathTextText vbDirectory "" Then
Result MsgBox "指定路径不存在" vbOKOnly "数据备份"
Exit Sub
End If
End If
On Error GoTo ErrorHand
连接数据库
Dim strFileName As String
Dim strTableName As String
Dim sqlname As String
Dim rsColumnName As New ADODBRecordset
Dim rs As New ADODBRecordset
Dim rsData As New ADODBRecordset
strFileName Dir Trim txtpathTextText "dat"
If strFileName "" Then
MsgBox "该处不包含所要恢复数据的备份文件" 64 "数据恢复"
MousePointer 1
Exit Sub
End If
Dim nreccount As Long
Dim bOK As Boolean
开始一个事务
cnnJLDBBeginTrans
Do While strFileName ""
If strFileName "dtpropertiesdat" Then
bOK False
strTableName Left strFileName Len strFileName - 4
先删除该表的数据
sqlname "truncate Table " Trim strTableName
cnnJLDBExecute sqlname
然后开始备份
sqlname "select from sysobjects Where type u and
name " strTableName ""
rsOpen sqlname cnnJLDB adOpenStatic adLockReadOnly
If Not rsEOF Then
bOK True
End If
rsClose
If bOK True Then
MousePointer 11
根据表名确定各个域名及域类型
sqlname "select xtypelengthname from syscolumns where id in select id from sysobjects where name " strTableName " "
rsColumnNameOpen sqlname cnnJLDB adOpenStatic adLockReadOnly
nreccount 0
If Not rsColumnNameEOF Then
rsColumnNameMoveLast
nreccount rsColumnNameRecordCount
rsColumnNameMoveFirst
End If
rsColumnNameClose
将指定文件数据恢复到数据库中
sqlname "select from " Trim strTableName
rsDataOpen sqlname cnnJLDB adOpenKeyset adLockOptimistic
lblShowInfoCaption "正在恢复" strTableName "
表中的数据"
lblShowInfoRefresh
Open Trim txtpathTextText strFileName For Binary
As 1
Dim lRecordNum As Long
Dim n As Long
Get 1 lRecordNum
If lRecordNum 10000 Then
MyBar lRecordNum 1
Else
MyBar lRecordNum \ 100
End If
MyBarValue 0
If lRecordNum 0 Then
For n 1 To lRecordNum
rsDataAddNew
For nStep 0 To nreccount - 1
Get 1 fieldData
rsData nStep fieldData
Next nStep
rsDataUpdate
m_iBeginSaveTimer 0
If lRecordNum 10000 Then
MyBarValue MyBarValue 1
Else
If n Mod 100 1 Then
MyBarValue MyBarValue 1
End If
End If
Next n
Close 1
Else
Close 1
End If
rsDataClose
End If
End If
strFileName Dir
Loop
lblShowInfoCaption "数据恢复完毕"
lblShowInfoRefresh
MousePointer 1
cnnJLDBCommitTrans
MsgBox "数据恢复完毕" "信息提示"
Unload Me
Exit Sub
ErrorHand
cnnJLDBRollbackTrans
MousePointer 1
MsgBox "数据恢复失败请联系开发人员" 64 "数据恢复" End Sub
Private Sub Command2_Click
SaveSetting AppTitle "Settings" "StoreDirection" Trim
txtpathTextText
Unload Me
End Sub
Private Sub Command4_Click
frmopendirShow 1
txtpathTextText frmopendirstrSelDir
End Sub
Private Sub Form_Load
m_iBeginSaveTimer 0
m_bHaveDone False
txtpathTextText GetSetting AppTitle "Settings"
"StoreDirection" "d\temp"
End Sub
Private Sub Form_Unload Cancel As Integer
m_iBeginSaveTimer 0
End Sub
?–1
- 0 -