《Visual Basic程序设计项目化教程》项目16 图书管理系统.ppt_第1页
《Visual Basic程序设计项目化教程》项目16 图书管理系统.ppt_第2页
《Visual Basic程序设计项目化教程》项目16 图书管理系统.ppt_第3页
《Visual Basic程序设计项目化教程》项目16 图书管理系统.ppt_第4页
《Visual Basic程序设计项目化教程》项目16 图书管理系统.ppt_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VisualBasic程序设计项目化教程 主编管小清郭贺彬 项目十六图书管理系统 项目功能描述 本项目设计并完成了一个小型的图书管理系统 系统可对借书人的个人信息及个人借情况进行登记录入 编辑 修改及删除 可对购买图书进行登记 对库存图书进行查询汇总 并对借书人损坏书籍进行登记录入 项目十六图书管理系统 项目主要知识点 编程方式访问数据库无源数据库连接图书管理系统的设计项目实施步骤 1 阅读相关基础知识2 图书管理系统功能设计简述3 SQLServer2000数据库设计4 图书管理系统窗体设计5 程序代码调试 16 1基础知识概述 16 1 1无源数据库连接1 无源数据库连接概述 无源数据库 连接并不是说不需要数据源 如果没有数据源则连接将成为纸上谈兵 只是不需要配置ODBC数据源 利用ADO通过代码编程进行连接 2 使用ADO对象模型访问数据库为了能够在程序中使用ADO对象编程 在连接数据库前 在VisualBasic6 0菜单 工程 引用 中选择MicrosoftActiveXDataObjects2 8Library组件 运用ADO对象模型的主要元素Connection 连接 中的ConnectionString属性进行连接 ConnectionString为可读写string类型 在模块中指定一个连接字符串 告诉ADO如何连接数据库 16 2图书管理系统功能设计 16 2 1系统目标通过使用小型图书管理系统 可以方便地对个人借书 还书 损坏书籍赔偿及图书信息进行管理 16 2 2系统功能 1 个人信息对借书人的必要的个人信息及借书情况进行添加 修改 删除 2 图书信息可以通过图书编号或时间进行书籍查询 并输出查询结果 同时对损坏的书籍进行赔偿登记 3 系统管理可以添加 删除系统用户 登记新图书 并对图书信息进行修改 删除 16 2 3系统结构图 图书管理系统系统结构图 如图16 1所示 图16 1图书管理系统结构图 16 3数据库设计 16 3 1建立tushugl数据库启动SQLServer2000中企业管理器 建立tushugl数据库 建立个人信息 个人借书 图书登记 用户信息 图书赔偿数据表 1 个人信息表 如图16 2所示 图16 2个人信息表 16 3数据库设计 2 个人借书表 如图16 3所示 图16 3个人借书表 16 3数据库设计 3 图书登记表 如图16 4所示 图16 4图书登记表 16 3数据库设计 4 用户信息表 如图16 5所示 图16 5用户信息表 16 3数据库设计 5 图书赔偿表 如图16 6所示 图16 6图书赔偿表 16 3 2连接数据库 1 引用ADO在VisualBasic环境下 选择 工程 引用 命令 在出现的对话框中选择 MicrosoftActiveXDataObjects2 0Library 然后单击 确定 按钮 如下图16 7所示 图16 7引用ADO 16 3 2连接数据库 2 创建模块文件建立公共模块可以提高代码的效率 同时使得修改和维护代码都很方便 1 添加模块在VisualBasic环境下 选择 工程 添加模块 则出现模块对话框 如图16 8所示 选择模块图标后 单击 打开 按钮 则模块已经添加到工程中了 默认情况下名为Module1 图16 8模块对话框 16 3 2连接数据库 2 定义ADO连接对象在 图书管理系统 工程中 创建模块文件 在模块中 定义ADO连接对象 语句如下 PublicconnAsNewADODB Connection 标记连接对象PublicrsAsNewADODB Recordset 标记连接对象 3 创建实例对象在子程序中 用如下的语句创建实例对象 DimconnAsADODB ConnectionDimrsAsADODB RecordsetsSetconn NewADODB Connection 创建实例对象Setrs NewADODB Recordsets 创建实例对象 4 建立连接 打开数据库conn ConnectionString Provider SQLOLEDB 1 Persist Security Info False Server 机器名 实例名 UserID sa Password DataBase tushugl conn Open 16 4 图书管理系统 窗体设计 16 4 1主窗体设计1 设计概述在主窗体界面中单击菜单上的功能按钮 可以调用相应的子窗体 在状态栏中显示当前的日期 时间以及公司的网址 对界面背景进行添加图片和阴影字的设计 2 主窗体设计 1 创建主窗体新建一个 标准EXE 工程并将工程命名为 图书管理系统 选择 工程 添加MDI窗体 命令 与上一个项目不同的是我们采用MDI 多文档界面 在应用程序中 使用多文档界面 MDI 可以同时打开显示 处理多个文档 使数据处理更加方便 在MDI应用程序中至少包含两种窗体 父窗体和子窗体 每个窗体都有相应的特性 16 4 图书管理系统 窗体设计 MDI窗体的特性MDI窗体有且只有一个 子窗体至少有一个或一个以上 所有的窗体无论任何操作都不能移出MDI窗体 父窗体最小化时 所有的子窗体也同时最小化 并且MDI窗体及其所有的子窗体将由一个图标来代表 MDI子窗体的属性在建立了MDI子窗体之后 要想Form1成为子窗体 要将其MDIChild属性设置为True 16 4 图书管理系统 窗体设计 2 设置主窗体的属性主窗体的属性如表16 1所示 表16 1窗体属性表 16 4 图书管理系统 窗体设计 3 创建ADO对象模块文件 在菜单中选择 工程 添加模块 命令 将模块添加到工程后 默认名为Module1 重命名为baseSQL 在模块中定义整个工程的公共变量 PublicconnAsNewADODB Connection 定义连接对象Publicrs dengjiAsNewADODB Recordset 定义记录集对象Publicrs jieshuAsNewADODB RecordsetPublicrs peichangAsNewADODB RecordsetPublicrs adduserAsNewADODB RecordsetPublicrs deluserAsNewADODB RecordsetPublicrs loginAsNewADODB RecordsetPublicrs peichangAsNewADODB Recordset 16 4 图书管理系统 窗体设计 4 创建全局变量模块文件 将模块添加到工程中了 默认情况下名为Module2 可重命名为耻下basedim 在模块中定义整个工程的公共变量PublicuserIDAsString 定义当前用户IDPublicuserpowAsString 定义用户权限PublicfindAsBoolean 定义查询PublicfindokAsBooleanPublicfrmdataAsBooleanPublicConstkeyenter 13 enter键的ASCII码 16 4 2主窗体菜单 1 创建菜单选择 工具 菜单编辑器 编辑菜单 弹出如图16 8所示菜单编辑器对话框 根据系统的需要创建主菜单和子菜单 图16 8图书管理系统菜单设计 16 4 2主窗体菜单 系统菜单项表系统菜单项如表16 2所示 16 4 2主窗体菜单 主窗体代码在本项目中 子菜单事件都是Click事件 这里给出主窗体部分代码 添加用户 子菜单Click事件 调出添加用户窗体代码 PrivateSubadduser Click frmadduser Show1EndSub 查询输出 子菜单Click事件 调出查询输出窗体代码 PrivateSubchaxunshuchu Click frmfind Show1EndSub 退出 子菜单Click事件 调出退出窗体代码 PrivateSubexit Click UnloadMeEndSub 16 4 2主窗体菜单 图书登记 子菜单Click事件 调出图书登记窗体代码 PrivateSubcheckin Click frmdengji ShowEndSub 个人借书 子菜单Click事件 调出个人借书窗体代码 PrivateSubpersonborrow Click frmjieshu ShowEndSub 图书赔偿 子菜单Click事件 调出图书赔偿窗体代码 PrivateSubtushupeichang Click frmpeichang Show1EndSub 16 4 3创建各子窗体 1 子窗体设计 1 设计说明图书管理系统的子窗体类型主要有 系统登录 数据编辑录入 查询 打印报表 等 在图书管理系统中 要创建的所有子窗体如表16 3所示 16 4 3创建各子窗体 2 子窗体代码 图书管理系统 项目 尽管有些子窗体界面功能设计与项目十五 汽车销售管理系统 基本相同 例如系统登录子窗体 图书登记子窗体 查询子窗体等 但由于访问数据库方式发生了巨大的变化 使用ADO对象模型 采用编程式访问数据库 所以在 图书管理系统 子窗体中 除了设计窗体的界面外 更重要的是编程代码 是本项目的重点难点内容 16 4 3创建各子窗体 2 系统登录子窗体关于系统登录界面设计 可参考项目六 我们重点介绍系统登录子窗体的代码 1 窗体加载代码Setconn NewADODB Connection 创建连接实例conn ConnectionString Provider SQLOLEDB 1 Persist SecurityInfo False Server ZHENGSHAOJ UserID sa Password DataBase tushugl 连接数据库conn ConnectionTimeout 30conn Open 16 4 3创建各子窗体 2 打开记录集对象的代码rs login Open select from用户信息 conn adOpenKeyset adLockOptimistic adCmdText3 个人信息窗体设计个人信息窗体属于数据编辑录入类型窗体 我们在项目十五中 介绍了两种创建数据编辑录入窗体的方法 本项目中我们以 个人信息 子窗体为例 继续深入学习第二种创建数据编辑录入窗体的方法 1 设计思路在个人信息窗体中 即能对个人信息进行添加 修改 删除 也同时能看到每个人借书的详细资料 16 4 3创建各子窗体 2 启动 数据窗体向导 启动 数据窗体向导 的方法 可参考项目十五中关于 数据编辑录入窗体 的创建 3 提供连接信息本项目采用无源数据库连接 这样在提供连接信息时与项目十五完全不同 其具体信息如图16 9所示 16 4 3创建各子窗体 4 选择窗体类型和数据绑定类型窗体类型我们选择 主表 细表 绑定类型我们选择 ADO代码 图16 10窗体类型和数据绑定类型 16 4 3创建各子窗体 5 主表记录源主表记录源选择 个人信息 并选定所有字段 如图16 11所示 图16 11主表记录源 16 4 3创建各子窗体 6 详细资料记录源细表记录源选择 个人借书 然后把需要详细描述的字段作为选定的字段 如图16 12所示 图16 11细表记录源 16 4 3创建各子窗体 7 记录源关系选择一个字段作为连接主 细表的字段 如图16 12所示 图16 12主 细表关联字段 16 4 3创建各子窗体 8 选择窗体控件选择窗体所需要的控件 如图16 13所示 图16 13窗体控件选择 16 4 3创建各子窗体 9 用数据窗体向导制作的 个人信息 按照我们的选择 生成的数据窗体如图16 14所示 图16 14个人信息窗体 16 4 3创建各子窗体 10 个人信息窗体代码用数据窗体向导制作的 个人信息 窗体 代码自动产生 4 图书登记子窗体设计与主要代码关于图书登记窗体 由于我们采用编程访问数据库 所以编程代码是重点及难点问题 设计思路图书登记窗体是数据编辑录入窗体 其窗体设计参考项目十五中数据编辑录入窗体的第一种方法 用我们所学的控件创建 使窗体能对记录进行添加 修改 删除 16 4 3创建各子窗体 2 图书登记子窗体图书登记窗体如图16 15所示 图16 15图书登记窗体 16 4 3创建各子窗体 图书登记子窗体控件图书登记窗体上控件列表 表16 4图书窗体上的控件表 16 4 3创建各子窗体 16 4 3创建各子窗体 4 图书登记窗体主要代码 窗体加载代码 PrivateSubForm Load conn CursorLocation adUseClient adUserClient控制记录集游标 是客户端还是服务器端 若选择 adUserSever是服务器端 选择adUseClient是客户端 Setrs dengji NewADODB Recordset 创建记录集实例Ifrs dengji State adStateOpenThen 检测数据库是否打开状态rs dengji CloseEndIf 16 4 3创建各子窗体 rs dengji Open select from图书登记 conn adOpenKeyset adLockOptimistic adCmdTex 打开 图书登记 表SetMe DataGrid1 DataSource rs dengji DataGrid1绑定数据源DataGrid1 Col 0 文本框与DataGrid1绑定Text1 0 Text DataGrid1 TextDataGrid1 Col 1Text1 1 Text DataGrid1 TextDataGrid1 Col 2Text1 2 Text DataGrid1 TextDataGrid1 Col 3DTPicker1 Value DataGrid1 TextDataGrid1 Col 4Text1 4 Text DataGrid1 TextDataGrid1 Col 5Text1 5 Text DataGrid1 Text 16 4 3创建各子窗体 添加记录 按钮代码 PrivateSubCommand1 Click DoWhilers dengji EOF FalseIfrs dengji Fields 0 Trim Text1 0 Text ThenStr MsgBox 您输入的图书编号己存在 是否将图书数量 累加到原始图书上 vbQuestion vbYesNo 编号重复 Ifstr1 vbYesThenrs dengji Fields 4 Int rs dengji Fields 5 Int Text1 4 Text rs dengji UpdateMsgBox 添加成功 请验证 vbInformation 累加成功 ExitSubElseText1 0 Text ExitSub 16 4 3创建各子窗体 EndIfElsers dengji MoveNextEndIfLooprs dengji AddNewrs dengji Fields 编号 Trim Text1 0 Text rs dengji Fields 书名 Trim Text1 1 Text rs dengji Fields 类型 Trim Text1 2 Text rs dengji Fields 购买日期 DTPicker1 Valuers dengji Fields 数量 Val Trim Text1 4 Text rs dengji Fields 定价 Val Trim Text1 5 Text rs dengji UpdateMsgBox 数据己添加成功 vbInformation 添加成功 EndSub 16 4 3创建各子窗体 删除记录 按钮代码 PrivateSubCommand2 Click Ifrs dengji EOF TrueThenMsgBox 没有记录 无法删除 ExitSubEndIfIfrs dengji EOF FalseThenText1 0 Text rs dengji Fields 0 IfMsgBox 删除当前记录吗 vbYesNo vbQuestion vbYesThenrs dengji Deleters dengji UpdateEndIfMsgBox 数据己删除 vbInformation 删除图书登记 Elsers dengji MoveNextEndIfEndSub 16 4 3创建各子窗体 下一条 按钮代码 PrivateSubCommand3 Click IfCommand4 Enabled FalseThenCommand3 Enabled TrueEndIfIfrs dengji EOF FalseThenrs dengji MoveNextIfrs dengji EOFThenMsgBox 这是最后一条记录 vbOKCancel vbQuestion rs dengji MoveLastEndIf 16 4 3创建各子窗体 Text1 0 Text rs dengji Fields 0 Text1 1 Text rs dengji Fields 1 Text1 2 Text rs dengji Fields 2 DTPicker1 Value rs dengji Fields 3 Text1 4 Text rs dengji Fields 4 Text1 5 Text rs dengji Fields 5 EndIfEndSub 16 4 3创建各子窗体 上一条 按钮代码PrivateSubCommand4 Click IfCommand3 Enabled FalseThenCommand4 Enabled TrueEndIfIfrs dengji BOF FalseThenrs dengji MovePreviousIfrs dengji BOFThenMsgBox 这是第一条记录 vbOKCancel vbQuestionrs dengji MoveFirstExitSub 16 4 3创建各子窗体 EndIfText1 0 Text rs dengji Fields 0 Text1 1 Text rs dengji Fields 1 Text1 2 Text rs dengji Fields 2 DTPicker1 Value rs dengji Fields 3 Text1 4 Text rs dengji Fields 4 Text1 5 Text rs dengji Fields 5 EndIfEndSub 16 4 3创建各子窗体 个人借书和图书赔偿子窗体分别如下图16 16和16 17所示 它们与图书登记子窗体的代码基本相同 在此不作介绍 图16 16个人借书窗体 16 4 3创建各子窗体 图16 17图书赔偿窗体 16 4 3创建各子窗体 5 查询子窗体设计 1 设计思路 查询 是应用软件中必不可少的部分 几乎任何一个应用软件的设计都离不开查询 本系统可以按照图书的编号进行查询 也可以按照购书时间进行查询 2 查询子窗体界面查询子窗体界面如图16 18所示 图16 18图书查询窗体 16 4 3创建各子窗体 3 查询子窗体控件查询子窗体控件如表16 5所示 16 4 3创建各子窗体 4 查询子窗体的主要代码 加载窗体代码 PrivateSubForm Load DimiAsIntegerIfrs dengji State adStateOpenThen 检验数据库状态rs dengji CloseEndIfrs dengji Open select from图书登记orderby编号desc conn adOpenKeyset adLockOptimistic adCmdTextIfrs dengji EOF FalseThen 添加编号和日期 16 4 3创建各子窗体 Withrs dengjiDoWhileNot EOFCombo1 0 AddItem Fields 0 Combo1 1 AddItem Fields 0 Combo2 0 AddItem Fields 3 Combo2 1 AddItem Fields MoveNextLoopEndWithEndIfEndSub 16 4 3创建各子窗体 查询按钮代码PrivateSubCommand1 Click Ifrs dengji State adStateOpenThen 检验数据库状态rs dengji CloseEndIfIfOption1 Value TrueThenOption2 Enabled Falsers dengji Open select from图书登记where编号between Combo1 0 Text and Combo1 1 Text conn adOpenKeyset adLockOptimistic adCmdTextfrm datamanage Show 调查询结果输出窗体EndIf 16 4 3创建各子窗体 IfOption2 Value TrueThenOption1 Enabled Falsers dengji Open select from图书登记where购买日期between Combo2 0 Text and Combo2 1 Text frm datamanage ShowEndIfUnloadMeEndSub 16 4 3创建各子窗体 5 查询结果输出窗体查询结果输出窗体如图16 19所示 图16 19图书查询结果输出 16 4 3创建各子窗体 6 报表窗体设计 1 设计概述报表是数据管理系统不可缺少部分 VisualBasic6 0提供了数据报表设计器来建立数据报表 数据报表设计器是一个多功能的报表生成器 以创建联合分层结构报表的能力为特色 同数据源一起使用 可以从几个不同的相关表创建报表 除创建可打印报表之外 也可以将报表导入到HTML或文本文件中 2 设计方法配置一个数据源 用于访问数据库 并设定DataReport对象的DataSource属性和DetaMember属性 运行时 使用Show方法显示数据报表 本项目我们以图书登记信息分组输出为例详细介绍设计过程 16 4 3创建各子窗体 添加数据环境设计器我们利用数据环境设计器 设置分组字段 单击 工程 添加DataEnvironment 命令 在 图书管理系统 中添加一个数据环境设计器 如图16 20所示 图16 20数据环境设计器 16 4 3创建各子窗体 设置Connection1属性选中 Connection1 单击鼠标右键 在弹出的菜单中选择 属性 命令 弹出由如图16 21所示的对话框 设置数据链接属性 然后在图16 22中设计连接选项卡 图16 21数据链接属性 16 4 3创建各子窗体 图16 22连接选项卡 16 4 3创建各子窗体 添加命令Command1选中 Connection1 单击鼠标右键 在弹出的菜单中选择 添加命令 如图16 23所示 图16 23添加Command1命令 16 4 3创建各子窗体 设置Command1通用属性选中 Command1 单击鼠标右键 在弹出的菜单中选择 属性 命令 在 Command1 属性对话框中 选择 通用 选项卡 在 数据库对象 列表框中选择 图书类型 如图16 24所 图16 24Command1数据库对象及对象名称 16 4 3创建各子窗体 设置Command1分组属性选中 Command1 单击鼠标右键 在弹出的菜单中选择 属性 命令 在 Command1 属性对话框中 选择 分组 选项卡 勾选 分组命令对象 并将 图书登记 字段 类型 添加到 用于分组字段 如图19 25所示 图16 25Command1分组属性 16 4 3创建各子窗体 分组设置完成后的结果分组设置完成后 数据环境设计器将显示分组后的Commnad1对象 如图16 26所示 至此 通过 图书登记 表中字段 类型 对图书登记信息进行分组的设置完成了 图16 27分组后的Command1对象 16 4 3创建各子窗体 添加数据报表选择 工程 添加DataReport 命令 在 图书管理系统 工程中添加一个DataRe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论