当前位置:文档之家› 厦门海洋职业学院2007-2008第一学期-数据库原理与应用实验指导书_百度...

厦门海洋职业学院2007-2008第一学期-数据库原理与应用实验指导书_百度...

本文由wdyllff贡献
doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。
目录
实验一 熟悉 Microsoft Access 数据库 …… 2 实验二 人力资源管理系统之系统分析和实用数据库的创建 …… 3 实验三 人力资源管理系统之查询的设计 …… 8 实验四 人力资源管理系统之窗体的设计 …… 15 实验五 人力资源管理系统之报表的设计 …… 27 实验六 人力资源管理系统之“控制面板”窗体的设计 …… 33 实验七 人力资源管理系统之自定义应用程序外观 …… 36 实验八 熟悉 VB 和 SQL Server …… 38 实验九 用 VB 和 SQL Server 开发图书销售系统之分析与创建数据库…… 39 实验十 用 VB 和 SQL Server 开发图书销售系统之创建类模块…… 44 实验十一 用 VB 和 SQL Server 开发图书销售系统之创建登陆窗体模块 …… 46 实验十二 用 VB 和 SQL Server 开发图书销售系统之创建 MDI 窗体模块 …… 50 实验十三 用 VB 和 SQL Server 开发图书销售系统之创建图书基本资料窗体 …… 56 实验十四 用 VB 和 SQL Server 开发图书销售系统之创建入库、销售维护窗体 …… 62 实验十五 用 VB 和 SQL Server 开发图书销售系统之创建密码、查询管理窗体 …… 77
-1-
实验一 熟悉 Microsoft Access 数据库
一、实验目的 本实验的主要目的是对数据库有一个感性认识。 通过本实验,使学生了解 Access 的使用和操作方法。
二、实验内容及要求 掌握菜单的功能和使用方法 1、 功能要求: 1) 知道如何建立数据库 2) 建立窗体和建立查询及模块 2、约束条件 安装了 Access 三、实验步骤 1、前期工作 首先要设置合适的开发环境,是在 Windows 平台下,选择的数据库系统是 Access2000,应用的编程工具是 Access2000。 2、数据库系统的建立 我们在 Access2000 中新建一个数据库文件,命名为“人力资源管理系 统.mdb” 。 新增窗体命名为“测试” 。 四、实验仪器 计算机数十台
-2-
实验二 人力资源管理系统之系统分析和实 用数据库的创建
一、实验目的 实验的主要目的是进一步提高学生的计算机应用能力,培养学生利用关系数 据库系统的技术。 通过本实验,使学生掌握数据库的应用能力。 本实验主要达到以下目的: 学会读懂别人的需求与设计文档 掌握数据库的创建 培养学生开发信息系统的初步能力
二、实验内容及要求 人力资源管理系统 1、 功能要求: 1)职工档案资料管理; 2)考勤管理; 3)工资管理; 2、约束条件 无 三、实验步骤 1、创建数据库
步骤如下: (1) 启动 Access 2000,它会弹出入图 6.1 所示的对话框,现在我们是要创建新的数据库, 而不是要打开数

据库,所以在弹出的对话框中选择“空数据库” ;
-3-
图 6.1 选择“空数据库” (2) 单击“确定”按钮,Access 2000 将会弹出如图 6.2 所示“文件新建数据库”对话框,首 先我们要选择数据库文件的保存位置, 我们可以使用资源管理器一样的方法来选择路径, 如 图 6.3 所示,然后在对话框的“文件名”组合框中输入“人力资源管理系统” ,最后单击“创 建”按钮, “人力资源管理系统”的数据库就创建完成。
图 6.2 “文件新建数据库”对话框
图 6.3 用资源管理器来选择路径
-4-
(3) 创建好的数据库打开时如图 6.4 所示,用户可以在左边选中所需要的创建的对象,然后 单击“新建”按钮,就可以创建所需要的对象。
图 6.4 选中所需要的创建的对象窗口 2、 创建数据 根据本系统要实现的功能,我们要建立如下所述的各数据表: 职工基本信息:存放职工的基本信息 如:姓名, 出生日期,所在部门,职务等; 调动信息:存放职工的调动情况; 工资:存放职工每月的工资清单信息; 考勤信息:记录职工的加班,迟到,矿工,早退等; 部门表:存放部门信息,如部门名称,编号。
-5-
-6-
-7-
3、上机验收 实验完成,学生上交 Access 数据库文件。 4、评分 数据库及表的完整性进行评分。 四、实验仪器 计算机数十台
人力资源管理系统之查询的设计 实验三 人力资源管理系统之查询的设计
一、实验目的 实验的主要目的是进一步提高学生的计算机应用能力,培养学生利用关系数 据库系统的技术。
-8-
通过本实验,使学生掌握数据库的应用能力。 本实验主要达到以下目的: 学会读懂别人的需求与设计文档 掌握数据库的查询设计 培养学生开发信息系统的初步能力
二、实验内容及要求 人力资源管理系统 1、 功能要求: 1)职工档案资料管理; 2)考勤管理; 3)工资管理; 2、约束条件 无 三、实验步骤 1、查询的设计
6.3.1 创建参数查询 现在我们以创建本系统中“职工基本信息按编号查询” ,来详细讲解“参数查询”是 如何的创建的。 步骤如下: (1)利用前面介绍的方法建立一个关于职工基本信息的简单查询,在其中包括“职工 编号” ,进入该查询设计视图,如图 6.5 所示
-9-
图 6.5 查询设计视图窗口 (2)在“职工编号”字段对应的设计网格的“条件”栏中,输入“[请输入职工编号]” ,如 图 6.6 所示
图 6.6 在条件栏中输入信息
图 6.7 输入参数值图
图 6.8 系统自动查出职工的信息窗口 参数查询中,如果要进行模糊查询,则可以使用“LIKE”运算符,例如,按职工的 姓

氏来查找职工的基本信息,则可以在“姓名”字段对应的“条件”网格中输入“LIKE[请 输入职工的姓氏]&” * ” ”,则可以所搜出姓名以特定的字符开始的职工信息;如果在“姓
- 10 -
名”字段对应的条件网格中输入“LIKE ”* ”&[请输入职工的姓氏]” ,则可以所搜出姓名 中包含特定的字符的职工信息。这里的“*”代表任意数目的字符, “&”表示字符连接运算 符。 6.3.2 创建操作查询 操作查询包括删除查询,更新查询,追加查询,和生成查询。下面我们就以实例来讲 解操作查询的在本系统中的运用。 1.生成表查询 它实际上是将查询出来的数据以表的形式保存起来。下面利用生成表查询将所有的女 职工的信息保存一张新表。方法如下: (1)利用前面的方法创建一个选择查询,查出所有的女职工的信息,并进入该查询的设 计视图中。 (2)选择“查询”菜单中的“生成表查询”命令,在 Access 弹出如图 6.9 所示的“生成 表”对话框输入生成表的表名称,如“女职工信息” 。选择将新的表保存到当前的数据库或 者另外一个数据库中,若保存到另外的数据库中,则还需要输入文件的保存路径。这里我们 选择“当前数据库”
图 6.9 “生成表”对话框 (3)单击“确定”按钮,并关闭该查询的设计视图。 (4)这时我们刚才修改过的查询的图标会变成 ,双击该查询会跳出如图 6.10 所示的对 话框,提示将创建一个新表,单击“Y”按钮,完成生成表查询操作。切换到“表”对象窗 口中会看到新生成的“女职工基本信息”表。
图 6.10 提示创建一个新表 2.更新查询 它可以对一张或多张表中的记录进行批量更新。 以更新职工工资为例说明更新查询的 具体步骤:
- 11 -
(1)在数据库窗口中选择“查询”对象后,双击“在设计视图中创建查询” 。 (2)在“显示表”对话框中把“工资”表加到查询的设计窗体中。 (3)选择“查询”菜单中的“更新查询”命令,则在查询设计网格中出现了“更新到”网 格如图 6.11 所示, “加班费” 选择 字段添加到设计网格中, “更新到” 并在 网格中输入 “120” , 在条件输入“[ 加班费]<100”这里的意思是将所有职工加班费少于 100 元,更改为 120 元。
图 6.11 “更新到”网格 窗口 (4)关闭查询设计视图,然后我们双击运行刚才我们创建的更新查询,Access 会跳出如图 6.12 所示的对话框点击“是”按钮,整个更形查询就创建完成。打开我们的工资表就可以看 到数据已被修改。
图 6.12 更新查询
- 12 -
3.追加查询 它会在数据表中进行追加记录, 通常利用追加查询实现记录的批量追

加。 将所有的男 职工基本信息追加到前面利用生成表查询创建的“女职工基本信息”表中,方法如下: (1) 利用前面的知识创建一个男职工信息的查询, 并进入查询的设计视图中, 然后选择 “查 询”菜单中的“追加查询”命令,系统弹出“追加” 对话框,如图 6.13 所示。 在此我们要将记录追加到“女职工基本信息”表中,所以这里在追加到的表名称中选 择“女职工基本信息” 。单击“确定”按钮。
图 6.13 “追加” 对话框 (2)退出查询的设计视图模式,双击运行刚才编辑的查询,将会将查询中的数据添加到目 标表中。我们打开女职工基本信息表,就可以看到追加的记录了。 4.删除查询 它可以删除数据表中的符合条件的记录。 下面我们将用删除查询将 “女职工基本信息” 表中的男职工的记录全部删除掉。 (1)在数据库窗口中,选择“查询”对象后,双击“在设计视图中创建查询” 。 (2)在“显示表”对话框中把“女职工基本信息”表添加到设计窗体中,并添加“性别” 字段到设计网格中。 (3)选择“查询”菜单中的“删除查询”命令,可以看到设计网格中出现了“删除”栏和 “条件”栏,在“删除”栏中显示的是“where” ,表示条件,在“条件”栏中输入删除条件 “男” ,如图 6.14 所示。
- 13 -
图 6.14 删除查询窗口 ( 4) 执行该查询,系统会弹出删除记录的提示对话框,如图 6.15 所示,若单击“是”按钮 则会删除“女职工基本信息”表中的所有的男职工的记录。可以打开表格看看运行结果。
图 6.15 删除记录的提示对话框
3、上机验收 实验完成,学生上交 Access 数据库文件。 4、评分 数据库及表的完整性进行评分。 四、实验仪器 计算机数十台
- 14 -
实验四 人力资源管理系统之窗体的设计 实验四 人力资源管理系统之窗体的设计
一、实验目的 实验的主要目的是进一步提高学生的计算机应用能力,培养学生利用关系数 据库系统的技术。 通过本实验,使学生掌握数据库的应用能力。 本实验主要达到以下目的: 学会读懂别人的需求与设计文档 掌握窗体的设计 培养学生开发信息系统的初步能力
二、实验内容及要求 人力资源管理系统 1、 功能要求: 1)职工档案资料管理; 2)考勤管理; 3)工资管理; 2、约束条件 无 三、实验步骤 1、窗体的设计
窗 体是用户界面,数据库的使用和维护都是通过窗体来完成的,它的作用主要有: 输入数据库数据;编辑数据内容;弹出注释,警告的消息框;控制应用程序的运行步骤;打 印数据; “控制面板”的创建。窗体设计的好坏直接体现用户

界面是否友好,这会大大的降 低数据库的使用效率。为此,我们在创建好表,查询的基础上,要多花点时间来规划好每个 窗体设计。 1.使用“设计视图”创建窗体 下面利用窗体的设计视图来创建本系统中的“职工基本管理信息”窗体 步骤如下: (1) 在要创建窗体的“人类资源管理系统”数据库的窗口中选择“窗体”选项卡。 (2) 单击“新建”按钮,Access 2000 立即弹出“新建窗体”对话框,如图 6.16 所示, 在这里我们在列表框里选择第一项“设计视图” ,在下拉列表框里选择我们选择“职工基本 信息表”表。
- 15 -
图 6.16 “新建窗体”对话框 (3) 点击“确定”按钮,进入窗体的设计界面,如图 6.17 所示。在图中有一个工具面板,一 张“职工基本信息”表的字段列表, 一个窗体的设计页面。在窗体中添加要显示的字段有 一种较简单的方法,用鼠标拖动“字段列表”中的字段到窗体上,即可完成,如图 6.18 所 示。
- 16 -
图 6.17 窗体的设计界面
图 6.18 在窗体中添加要显示的字段 (4) 我们在可以在如图 6.19 所示中的工具箱里查看到突起状态的就是“命名按钮” ,在工具 箱中按下“命令按钮” ,如图 6.20 所示然后把光标移到窗体中,按下鼠标“左键”就可以画 出我们所要的按钮。 当按钮画好之后,Access 2000 就会自动弹出对话框来让您设置刚才所画的“命令按钮” 的属性,也就是设置“命名按钮”被用户按下时,做什么动作。如:添加记录。
图 6.19 工具箱
- 17 -
图 6.20 在工具箱中点击按钮 (5) 如图 6.21 所示就是“命令按钮”属性设置向导,在图中有两个列表框,单击左边的“类 别”列表框,在右边的“操作”列表框就会显示相应的操作出来,这里我们选择“添加新记 录” ,点击“下一步”按钮,如图 6.22 所示我们可以看到有“文本”和“图片”两种选择, 这两个选项将决定“命令按钮”是什么样子的,我们可以中最左边的“示例”当中看到预览 效果。这里我们选择“文本” ;
图 6.21 “命令按钮”属性设置向导
图 6.22 选择“文本”和“图片”
- 18 -
(6)点击“下一步”按钮,将会弹出如图 6.23 所示的对话框,让您来命名“命令按钮”的 名称,此时在文本框中,已经有一个默认的名称,如果您需要更改名称,就可以一个见名思 义的名称,然后点击“完成”按钮,按钮的设计就完成了。如图 6.24 所示大家可以添加所 需的“按钮”上去。
图 6.23 命名“命令按钮”的名称
图 6.24 完成按钮设计的窗口 (7)最后点击右上角的“关闭”按钮,给窗体起个“保存名称” ,窗体就创建完成

了。新建
- 19 -
的窗体打开的样子如图 6.25 所示。
图 6.25 新建的窗体样式 2.“窗体向导”创建窗体 利用窗体向导创建本系统的“考勤”窗体 (1)在数据库窗口中选中“窗口”对象,双击“使用向导创建窗体”或者单击“新建”按 钮,在弹出的“新建窗体”对话框中选择“窗体向导” ,如图 6.26 所示。
图 6.26 “新建窗体”对话框
- 20 -
(2)单击“确定”按钮,Access 会自动弹出窗体向导对话框,如图 6.27 所示 ,其中“表/ 查询” 下拉列表中列出了数据库中已经有的表和查询, 这些对象可以作为新建窗体的数据源, “可用字段”列表中则列出来当前选中的数据源可用的所有字段, “选定的字段”列表框中 的字段则是新建窗体中显示的字段。
图 6.27 窗体向导对话框 (3) “表/查询”下拉列表,我们选择“考勤信息”作为窗体的数据源,这时 Access 会将我 们选定的数据源的所有字段显示在“可用字段”列表框中,我们可以直接双击字段或者通过 中间的“>”按钮来移动,完成字段的选定。 如图 6.28 所示。
图 6.28 选定字段
- 21 -
(4)单击“下一步”按钮,进入窗体布局的选择窗口,如图 6.29 所示,其中对话框右边的 单选框列出了所有的布局方式, 左边则显示了选中布局的预览效果。 这里我们选择 “纵栏式” 。
图 6.29 窗体布局的选择窗口
(5)单击“下一步”按钮,进入窗体样式的选择窗口。如图 6.30 所示,其中对话框右边的 列表中列出了系统自带的多种窗体的样式, 左边相应的显示出了该样式的预览效果, 这里可 以根据自己的需要和爱好选择。
- 22 -
图 6.30 窗体样式的选择窗口 (6)单击“下一步”按钮,进入“窗体向导”的最后一步,在此为窗体指定标题为“考勤 信息录入窗体” ,如图 6.31 所示,另外,还可以选择是打开窗体还是进入窗体设计视图修改 窗体的设计。最后单击“完成”按钮,即完成了“考勤信息录入窗体”的创建工作,如图 6.32 所示
图 6.31 为窗体指定标题
- 23 -
图 6.32 完成后的“考勤信息录入窗体” 3.“图表向导”创建窗体 利用“图表向导”创建图表窗体,使数据更加清晰明白。以“工资信息”为例说明方法: (1)在数据库窗口中选择“窗体”对象之后,单击“新建”按钮,在弹出的“新建窗体” 对话框中,选择“图表向导” ,并选择要创建的图表的数据源。这里选择“工资”表。如图 6.33 所示
图 6.33“新建窗体”对话框 (2)单击“确定”按钮后,系统将弹出“图表向导”对话框,要求选择图表数据所在的字 段,我们选择“姓名”“

年月”“基本工资”三个字段。如图 6.34 所示 , ,
- 24 -
图 6.34“图表向导”对话框 (3)单击“下一步”按钮,系统弹出新的对话框,要求选择所采用的图表类型,这里我们选 择“柱形图” ,如图 6.35 所示。
- 25 -
图 6.35 选择所采用的图表类型 (4)单击 “下一步”按钮,系统弹出新的对话框,要求指定数据在图表中的布局方式,这 里要求以“姓名”作为横坐标,以“平均值基本工资”为纵坐标,双击“求和基本工资” , 系统将弹出“汇总”对话框,如图所示。然后我们选择“AVG”求平均值,最后的设置如图 6.36 所示
图 6.36 “汇总”对话框 (5)单击 “下一步”按钮,系统弹出新的对话框,要求设置图表的标题以及是否显示图表 的图例,我们将标题设为“职工工资图表” ,在确定向导的设置完成所需的操作,单击“确 定”按钮,系统将会显示出图表窗体的显示结果,如图 6.37 所示
- 26 -
图 6.37 图表窗体的显示结果
3、上机验收 实验完成,学生上交 Access 数据库文件。 4、评分 数据库及表的完整性进行评分。 四、实验仪器 计算机数十台
人力资源管理系统之报表的设计 实验五 人力资源管理系统之报表的设计
一、实验目的 实验的主要目的是进一步提高学生的计算机应用能力,培养学生利用关系数 据库系统的技术。 通过本实验,使学生掌握数据库的应用能力。 本实验主要达到以下目的: 学会读懂别人的需求与设计文档 掌握报表的设计 培养学生开发信息系统的初步能力
- 27 -
二、实验内容及要求 人力资源管理系统 1、 功能要求: 1)职工档案资料管理; 2)考勤管理; 3)工资管理; 2、约束条件 无 三、实验步骤
报表的设计 在绝大部分的数据库管理系统中, 报表打印功能都是一个必备的模块, Access 2000 在 中我们可以利用它提供的 “报表” 对象轻松的完成这样功能。 在本系统中就有工资明细报表, 考勤流水报表,职工基本信息报表 ,这些企业的需要的重要表格。 1.利用向导创建“考勤信息报表” (1)在数据库窗体中选择“报表”对象后,单击“新建”按钮,打开“新建报表”对话框, 选择其中的“报表向导”后,单击“确定”按钮启动报表向导,在选择报表的数据来源,可 以来自多个表或查询,这里我们选择“部门”表。 (2)单击“下一步”按钮,系统弹出新的对话框,询问是否添加分组级别,所谓分组级别, 是指数据按照指定的字段的值进行分组, 分组字段值相同的那些记录将作为一组, 在报表中 相邻的位置显示,在此我们选择“部门名称”字段添加到分组级别中,

在 Access 中,可以 添加多个分组级别, 并可以通过向导中的左右箭头添加按钮或删除分组级别。 另外还可以选 中某一分组级别字段后,单击优先级对应的上下箭按钮来调整优先顺序。另外,单击“分组 选项”按钮,还可以在弹出的“分组间隔”对话框中选定的分组字段指定分组间隔。 (3)单击“下一步”按钮,系统弹出新的对话框,询问是否对数据进行排序,在下拉列表 框中可以选择排序字段,单击在它的按钮可以在两种排序方式之间切换。我们选择“部门编 号”作为排序字段。 (4)单击“下一步”按钮,系统弹出新的对话框,要求确定报表的布局。报表向导提供了 一些布局选项, 还提供了字段的多少选择纵向或横向打印, 大家可以在左边的布局样式的看 到选择的预览效果。 (5)单击“下一步”按钮,系统弹出新的对话框,要求确定报表的样式。 (6)单击“下一步”按钮,系统弹出新的对话框,要求为报表指定标题,报表标题之后点 击“完成”按钮即可,最后生成报表效果如图 6.38 所示
- 28 -
图 6.38 报表效果图 2.利用设计视图创建“职工基本信息报表”为例讲解 步骤如下: (1)在要创建报表的“人类资源管理系统”数据库的窗口中选择“报表”选项卡。 (2) 单击“新建”按钮,Access 2000 立即弹出“新建报表”对话框,如图 6.39 所示,在 这里我们在列表框里选择第一项“设计视图” ,在下拉列表框里选择我们选择需要的“职工 基本信息”表。
- 29 -
图 6.39 “新建报表”对话框 (3)点击“确定”按钮,将打开如下窗体,如图 6.40 所示有一个工具箱,一个“职工基本 信息”表的字段列表,一个报表设计窗体。报表设计窗体中分为三部分:页面页眉,主题, 页面页脚。页面页眉:报表每页最开头所显示的文字或数据,如报表标题;主题:报表的主 要内容;页面页脚:报表每页的最后面所要显示的文字或数据,如报表的页码。
图 6.40 打开的窗体 (4)这里我们直接把字段列表中的“字段“,拖到“主题”中就可以了,主体的数据显示 就设置完成了。如图 6.41 所示
- 30 -
图 6.41 设置主体的数据显示 (5)为“报表”添加上标题,还有一些修饰性的控件来增加报表的友好性。如图 6.42 所示 中呈突起状态的分别是: “标签”与“直线”控件,标签是用来显示文本的,想在报表显示 报表的标题,就要用到标签控件,那么直线控件能,它是用来显示直线的。
图 6.42 “标签”与“直线”控件 (6)在工具箱上按下标签按钮,在报表窗体上画出的需要的标签,画好后光标就会在标签 内闪烁,在这里输

入要显示的文本,我们输入“职工基本信息报表” ,要将 “职工基本信息 表” 的字体设置大点或者更改字体颜色可以选中标签控件, 在右键菜单中打开标签的 “属性” 窗体,在里面可以设置很多属性,包括标签的大小,位置,颜色,文本内容等等。如图 6.44 所示。
- 31 -
图 6.43 输入要显示的文本
图 6.44 设置标签的属性 (7) 在字段两行字段的行距之间放置 “直线” 控件,也可以打开属性窗体来设置直线的样式。 如图 6.45 所示。
图 6.45 设置直线的样式 (8)最后点击右上角的“关闭”按钮,给报表起个“保存名称” ,报表到此就创建完成了。 新建的报表打开的样子如图 6.46 所示。
- 32 -
图 6.46 新建的报表样式
3、上机验收 实验完成,学生上交 Access 数据库文件。 4、评分 数据库及表的完整性进行评分。 四、实验仪器 计算机数十台
人力资源管理系统之“控制面板” 实验六 人力资源管理系统之“控制面板” 窗体的设计
一、实验目的 实验的主要目的是进一步提高学生的计算机应用能力,培养学生利用关系数 据库系统的技术。
- 33 -
通过本实验,使学生掌握数据库的应用能力。 本实验主要达到以下目的: 学会读懂别人的需求与设计文档 掌握“控制面板”窗体的设计 培养学生开发信息系统的初步能力
二、实验内容及要求 人力资源管理系统 1、 功能要求: 1)职工档案资料管理; 2)考勤管理; 3)工资管理; 2、约束条件 无 三、实验步骤 1、 “控制面板”窗体的设计
“控制面板”实际上是一个窗体,我们通过这个主窗体来操作其他的对象,比如打开 “职工基本信息“表,打开“部门信息报表”等。 利用前面学过的窗体创建方法, 用设计视图添加一个新窗体, 在窗体的控件属性设置 如表所示。
- 34 -
完成主窗体的设计如图 6.47 所示。
- 35 -
图 6.47 主窗体的设计图
3、上机验收 实验完成,学生上交 Access 数据库文件。 4、评分 数据库及表的完整性进行评分。 四、实验仪器 计算机数十台
实验七 人力资源管理系统之自定义应用程 实验七 人力资源管理系统之自定义应用程 序外观
一、实验目的 实验的主要目的是进一步提高学生的计算机应用能力,培养学生利用关系数 据库系统的技术。 通过本实验,使学生掌握数据库的应用能力。 本实验主要达到以下目的: 学会读懂别人的需求与设计文档
- 36 -
掌握自定义应用程序外观 培养学生开发信息系统的初步能力 二、实验内容及要求人力资源管理系统 1、 功能要求: 1)职工档案资料管理; 2)考勤管理; 3)

工资管理; 2、约束条件 无 三、实验步骤
自定义应用程序的外观 1.界面设计 考虑系统的界面的时应当注意界面的友好、美观、大方,充分考虑操作人员的计算机 水平和使用习惯,可从以下几方面考虑: 整洁:界面的布置应该有条理性,特别是显示/输入的信息比较多时,操作人员应该能 够迅速找到相关的信息。 明白:所有的功能必须一目了然,所使用提示必须能够明白表达它的功能。比如说,一 个回单按钮使用“考勤历史记录”作为它的标题比使用“考勤查询”更能明白表述它执行的 功能。 确定:所有的提示,比如窗口标题、按钮标题等,必须用词统一明确,不能有二义性和 混乱现象。比如,如果使用一个按钮作“保存记录”的用户界面,那么在其的他窗体都应该 使用同样的标题——“保存记录”或其它,如果在“职工基本信息编辑”窗体中使用“保存 记录” ,而在则“部门信息编辑”窗体中使用比如“信息保存”等标题,会导致操作人员无 适从。 易用:如在职工基本信息中“文化程度”字段的内容比较统一,如果每次录入职工信息都要 人工的输入内容,则会显得很不人性化,所以系统提供下拉列表方式来选择字段内容; 2.程序的发布 在 Access 数据库中,程序和数据保存在同一个文件(.mdb)中,只要在安装有 Access 的 计算机中打开此文件,即可运行该系统。
3、上机验收 实验完成,学生上交 Access 数据库文件。 4、评分 数据库及表的完整性进行评分。 四、实验仪器
- 37 -
计算机数十台
实验八 实验八 熟悉 VB 和 SQL Server
一、实验目的 实验的主要目的是进一步提高学生的计算机应用能力,培养学生利用关系数 据库系统的技术。 通过本实验,使学生掌握数据库的应用能力。 本实验主要达到以下目的: 学会读懂别人的需求与设计文档 掌握 SQL Server 数据库的创建 掌握 VB 的基本使用 培养学生开发信息系统的初步能力
二、实验内容及要求 掌握 SQL Server 的建库和建表操作及 VB 的建立窗体和数据库连接 1、 功能要求: 1)SQL Server 的建库和建表操作; 2)VB 的建立窗体; 3)建立 VB 的数据库连接; 2、约束条件 无 三、实验步骤 1、前期工作 首先要设置合适的开发环境,是在 Windows 平台下,选择的数据库系统是 SQL Server2000,应用的编程工具是 VB6.0。 2、数据库系统的建立 我们在 SQL Server2000 中新建一个数据库,命名为“图书销售系统” 。 并在其中建立一张表,命名为“测试表”
- 38 -
VB6.0 中新增窗体命名为“测试” 。 在测试窗体中建立与 SQL Server 2000 的 ADO 数据库链接。 3、上机验收 实验完成,

学生上交 VB 工程及窗体文件。 4、评分 数据库及 VB 数据库的链接的正确性进行评分。 四、实验仪器 计算机数十台
实验九 用 VB 和 SQL Server 开发图书销售 系统之分析与创建数据库
一、实验目的 实验的主要目的是进一步提高学生的计算机应用能力,培养学生利用关系数 据库系统的技术。 通过本实验,使学生掌握数据库的应用能力。 本实验主要达到以下目的: 学会读懂别人的需求与设计文档 掌握数据库的创建 培养学生开发信息系统的初步能力
二、实验内容及要求 图书销售系统 1、 功能要求:
(1) 能够对所有的图书基本进行维护和管理,包含二个表:图书基本信息表,包含的 字段:书号,书名,出版社,作者,单价,库存数量,折扣。图书入库表操作包含的字 段:流水号,操作员帐号,书号,书名,数量,入库价,销售价,入库时间。系统需要 能够对商品信息进行添加,修改和删除,查找等。 (2) 跟踪图书销售信息,当有客户买书时,将要记录相关的操作信息。 (3) 进行价格维护,当登陆的人员为管理员时,将提供此功能,修改书籍的价格。 (4)帐号管理。当登陆的人员为管理员时,将提供此功能,管理员可进行添加帐号,注
- 39 -
销帐号等操作。
2、约束条件 无 三、实验步骤 1、分析与创建数据库
数据库是整个系统的灵魂,数据库结构设计的好坏将直接影响整个系统,合理的数据库 设计可以提高数据存储的效率, 保证数据库的完整和一致, 同时, 也有利于系统功能的实现。
11.3.1
根据系统的功能分析结果, 设计如下面所示的数据项和数据结构:
·BookRecord(图书库存) BookNO,BookName, Publisher,Author,SalesPrice, : Quantity,Discount。 ·InRecord(图书入库表) :Sn, Account, BookNo, BookName,InDate, Inprice, Quantity,.SalesPrice。 ·MantainRecord (图书价格维护):sn,MantainDate,BookNO,Account,Operation, OriginalData,NewData。 ·SalesDetail (图书销售明细):Sn,account,BookNO,BookName,SalesPrice,Quantity, Discount。 ·BookSale (图书销售):Sn,Account,SumMoney,SaleDate。 ·Operator (操作员信息表):Account,Name,Password,Isdeleted。 根据数据库规范化设计,完整性设计理念,本章所用到的各表之间的关系描述如下: * BookRecord 表中的 “BookNO” 字段对应 InRecord 表、 MantainRecord 表、 SalesDetail 表的“BookNO”字段,形成一对多的关系。 * Operator 表中的“account”字段对应 InRecord 表、SalesDetail 表、MantainRecord 表的“Account”字段,形成一对多的关系。 这 6 个表之间的关系表现如 11.3 图所示:
- 40 -
- 41 -
- 42 -
图 11.3 各表之间

的关系
- 43 -
3、上机验收 实验完成,学生上交分离出来的数据库文件。 4、评分 数据库及表的完整性进行评分。 四、实验仪器 计算机数十台
实验十 用 VB 和 SQL Server 开发图书销售 系统之创建类模块
一、实验目的
- 44 -
实验的主要目的是进一步提高学生的计算机应用能力,培养学生利用关系数 据库系统的技术。 通过本实验,使学生掌握数据库的应用能力。 本实验主要达到以下目的: 学会读懂别人的需求与设计文档 掌握类模块的创建 培养学生开发信息系统的初步能力
二、实验内容及要求 图书销售系统 1、 功能要求:
(1) 能够对所有的图书基本进行维护和管理,包含二个表:图书基本信息表,包含的 字段:书号,书名,出版社,作者,单价,库存数量,折扣。图书入库表操作包含的字 段:流水号,操作员帐号,书号,书名,数量,入库价,销售价,入库时间。系统需要 能够对商品信息进行添加,修改和删除,查找等。 (2) 跟踪图书销售信息,当有客户买书时,将要记录相关的操作信息。 (3) 进行价格维护,当登陆的人员为管理员时,将提供此功能,修改书籍的价格。 (4)帐号管理。当登陆的人员为管理员时,将提供此功能,管理员可进行添加帐号,注 销帐号等操作。
2、约束条件 无 三、实验步骤 1、创建类模块
首先要新建工程,打开 VB6.0,在“新建工程”对话框中选择“标准 EXE” ,点击“确 定” ,将工程保存为“图书销售系统” 。在本章所介绍的系统中,需要声明一些全局变量,用 来保存所需要的数据。点击 VB6.0 菜单“工程” ,选择“添加模块” ,模块名称为默认。输 入如下代码: Public usertype As Integer '定义用户类型 Public username As String '保存用户帐号 Public bookno As String, bookname As String '保存书号,书名 Public exitType As Integer '定义退出主窗体类型,0 为退出,1 为重新登陆 Public con As New ADODB.Connection '定义全局变量连接数据库 Public rs As New ADODB.Recordset '定义全局变量,保存数据集 Public pwd As String '记录下密码
3、上机验收
- 45 -
实验完成,学生上交 VB 工程文件。 4、评分 程序的正确性进行评分。 四、实验仪器 计算机数十台
实验十一 用 VB 和 SQL Server 开发图书销 售系统之创建登陆窗体模块
一、实验目的 实验的主要目的是进一步提高学生的计算机应用能力,培养学生利用关系数 据库系统的技术。 通过本实验,使学生掌握数据库的应用能力。 本实验主要达到以下目的: 学会读懂别人的需求与设计文档 掌握 VB 窗体的创建 培养学生开发信息系统的初步能力
二、实验内容

及要求 图书销售系统 1、 功能要求:
(1) 能够对所有的图书基本进行维护和管理,包含二个表:图书基本信息表,包含的 字段:书号,书名,出版社,作者,单价,库存数量,折扣。图书入库表操作包含的字 段:流水号,操作员帐号,书号,书名,数量,入库价,销售价,入库时间。系统需要 能够对商品信息进行添加,修改和删除,查找等。 (2) 跟踪图书销售信息,当有客户买书时,将要记录相关的操作信息。 (3) 进行价格维护,当登陆的人员为管理员时,将提供此功能,修改书籍的价格。 (4)帐号管理。当登陆的人员为管理员时,将提供此功能,管理员可进行添加帐号,注 销帐号等操作。
2、约束条件 无 三、实验步骤
- 46 -
1、创建登录窗体模块 11.5.1 窗体模块功能
本章所介绍的图书销售系统是一个基于不同用户的系统。因此登录窗体模块在 运行时将分析登录的帐号是管理员还是普通人员,然后根据帐号的类型提供不同的功能。
11.5.2
窗体界面的设计
在工程中添加一个窗体,命为 frmlogin,用来作为登录窗体。登录窗体的界面 设计如图 11.4 如所示:
图 11.4 登录窗体 登录窗体的主要控件及属性如表 11.7 所示:
- 47 -
11.5.3
窗体模块的工作流程
在本系统中有 2 类不同身份的用户,不同身份的用户所拥有的权限是不同的。 在设计 Operator 表的过程中,为了方便起见,我们只创建了一个管理员帐号,名为:admini。 当然,读者可以另建一个表,保存管理员帐号的相关信息。在程序中,我们将会调用全局变 量 username 来保存当前登陆的操作员帐号,以方便其它的操作。下面我们来编写窗体模块的 按钮控件的代码 1.在“确定”按钮的 Click 事件中,程序将会调用全局变量“con”连接数据 库中, “rs”填充表数据。然后根据用户输入的帐号,密码进行查询,判断。如果帐号存在, 密码正确,程序将根据帐号的类型不同,设置主窗体“frmmain”的一些菜单,按钮是否可见。 如果帐号不存在,或者密码不对,或者该帐号已经注销,则显示相应的提示;如果输入三次 都不正确,则退出程序。程序代码如下: Private Sub cmdOK_Click() Static i As Integer '定义静态变量 i=i+1 If i > 3 Then MsgBox "对不起,您已经输入三次,关闭程序" End
- 48 -
End If '如果数据连接是关闭,则打开 If con.State = 0 Then con.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=图书销售系统" End If If txtname <> "" Then If txtname.Text = "admini" Then '用户类型为管理员 Private Sub cmdOK_Click() Static i As Integer '定义静态变量 i=i+1 If i > 3 Then MsgBox "对不起,

您已经输入三次,关闭程序" End End If '如果数据连接是关闭,则打开 If con.State = 0 Then con.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=图书销售系统" End If If txtname <> "" Then If txtname.Text = "admini" Then '用户类型为管理员 If rs.Fields(3).Value = True Then '如果该帐号已经注销 MsgBox "该帐号已经注销!" txtname.SelStart = 0 txtname.SelLength = Len(txtname) txtname.SetFocus txtpwd.Text = "" rs.Close '关闭数据集 Exit Sub End If
If Trim(rs.Fields("Password").Value) = txtpwd.Text Then
If usertype = 0 Then '当帐号为普通类型 frmmain.mnuUser.Visible = False frmmain.Toolbar1.Buttons(4).Visible = False frmmain.mnuPrice.Visible = False End If username = txtname.Text '记录帐号名 pwd = txtpwd.Text Unload Me i = 0 '重新初始化 i frmmain.Show Else
- 49 -
MsgBox "密码不正确", 48
txtpwd.Text = "" txtpwd.SetFocus End If End If If rs.State <> 0 Then rs.Close '关闭数据集 End If End If End Sub 2. “取消”按钮的代码如下: Private Sub cmdcancel_Click() End End Sub
2、上机验收 实验完成,学生上交 VB 程序文件。 3、评分 程序的正确性进行评分。 四、实验仪器 计算机数十台
实验十二 实验十二 用 VB 和 SQL Server 开发图书销 售系统之创建 MDI 窗体模块
一、实验目的 实验的主要目的是进一步提高学生的计算机应用能力,培养学生利用关系数 据库系统的技术。 通过本实验,使学生掌握数据库的应用能力。 本实验主要达到以下目的: 学会读懂别人的需求与设计文档 掌握 MDI 窗体的创建 培养学生开发信息系统的初步能力
二、实验内容及要求
- 50 -
图书销售系统 1、 功能要求:
(1) 能够对所有的图书基本进行维护和管理,包含二个表:图书基本信息表,包含的 字段:书号,书名,出版社,作者,单价,库存数量,折扣。图书入库表操作包含的字 段:流水号,操作员帐号,书号,书名,数量,入库价,销售价,入库时间。系统需要 能够对商品信息进行添加,修改和删除,查找等。 (2) 跟踪图书销售信息,当有客户买书时,将要记录相关的操作信息。 (3) 进行价格维护,当登陆的人员为管理员时,将提供此功能,修改书籍的价格。 (4)帐号管理。当登陆的人员为管理员时,将提供此功能,管理员可进行添加帐号,注 销帐号等操作。
2、约束条件 无 三、实验步骤 1、创建 MDI 窗体模块
11.6.1 窗体模块的功能 如果用户登录成功,将会出现 MDI 主窗体。MDI 窗体是为整个系统的其它窗体 提供一个统一管理的环境。在 MDI 窗体中设计了菜单项,工具栏,不同的用户,将会显示 不同的菜单和工具栏的按钮,这样就实现了系统功能随用户的不

同而不同的设计思路。
11.6.2 窗体菜单栏的设计
1. 在工程中添加一个类型为 “MDI 窗体” 的窗体,并命名为 frmMain,将其 Caption 属性设为“图书销售系统” 。 程序运行的界面如图 11.5 如示
- 51 -
图 11.5 程序运行的界面
2.为 MDI 窗体设计菜单,如表 11.8 所示。
- 52 -
为各菜单的的 Click 事件添加代码: Private Sub mnuBookRecord_Click() '基本资料 frmBookRecord.Show End Sub Private Sub mnuBookReport_Click() '图书报表 bookreport.Show End Sub Private Sub mnuBookSale_Click() '图书销售 frmBookSale.Show End Sub
Private Sub mnuEditPwd_Click() '修改密码
frmEditPwd.Show End Sub Private Sub mnuexit_Click() '退出 exitType = 0 Unload Me End Sub
- 53 -
Private Sub mnuInRecord_Click() '图书入库 frmBookIn.Show End Sub
Private Sub mnuLogin_Click() '重新登陆
exitType = 1 Unload Me End Sub
Private Sub mnumoneyreport_Click() '销售报表
booksale.Show End Sub
Private Sub mnuprice_Click() '价格维护
frmprice.Show End Sub
Private Sub mnuLogin_Click() '重新登陆
exitType = 1 Unload Me End Sub
Private Sub mnumoneyreport_Click() '销售报表
booksale.Show End Sub
Private Sub mnuprice_Click() '价格维护 frmprice.Show
End Sub 3. MDI 窗体添加工具栏,按住 为 “CTRL+T” ,将弹出 “部件” 对话框,选择 “Microsoft Windows Common Controls 6.0(SP4)”,点击“确定”,工具箱中将出现几个控件,选择控件,在窗体里画 出,控件自动移动到菜单的下方,名称为默认“Toolbar1” 。在窗体上选择该控件,右击, 选择“属性” ,在弹出的“属性页”中添加 7 个按钮,其属性如表 11.9 如示:
- 54 -
为 Toolbar1 的 Click 事件添加如下代码: Private Sub Toolbar1_ButtonClick(ByVal button As MSComctlLib.button) Select Case button.Index '判断是点击哪个按钮 Case 1 mnuBookRecord_Click '基本信息菜单
Case 2 mnuInRecord_Click '图书入库菜章 Case 3
mnuBookSale_Click '图书销售菜单
Case 4
mnuprice_Click '价格维护菜单
Case 5
mnuBookReport_Click '图书报表菜单
Case 6
mnuSalesReport_Click '销售明细报表菜单
Case 7
mnumoneyreport_Click '销售报表菜单
Case 8
mnuexit_Click '退出菜单 End Select End Sub 4.在 MDI 主窗体退出事件 Unload 中,系统会根据用户点击的是“重新登录”还是“退出” 按钮(调用全局变量 exitType 判断) ,确定是重新登录还是退出。代码如下: Private Sub MDIForm_Unload(Cancel As Integer)
Dim a As Integer
- 55 -
Select Case exitType '判断关闭主窗体的类型 exittype Case 0 ‘ 如果是退出 a = MsgBox("确认要退出系统吗?", 36)
If a = 6 Then '点击“确定”
End '退出程序 Else
Cancel = -1 '取消,不关闭
End If Case 1 '

如果是重新登陆 a = MsgBox("确认要重新登陆系统吗?", 36) If a = 6 Then '点击“确定” frmlogin.Show Unload Me exitType = 0 '重新赋值给全局变量 Else Cancel = -1 '取消,不关闭 exitType = 0 '重新赋值给全局变量 End If End Select End Sub 到此,主窗体的代码编写全部完成了。
5、上机验收 实验完成,学生上交 VB 程序文件。 6、评分 对程序的正确性进行评分。 四、实验仪器 计算机数十台
实验十三 实验十三 用 VB 和 SQL Server 开发图书销 售系统之创建图书基本资料窗体
一、实验目的
- 56 -
实验的主要目的是进一步提高学生的计算机应用能力,培养学生利用关系数 据库系统的技术。 通过本实验,使学生掌握数据库的应用能力。 本实验主要达到以下目的: 学会读懂别人的需求与设计文档 掌握图书基本资料窗体的创建 培养学生开发信息系统的初步能力
二、实验内容及要求 图书销售系统 1、 功能要求:
(1) 能够对所有的图书基本进行维护和管理,包含二个表:图书基本信息表,包含的 字段:书号,书名,出版社,作者,单价,库存数量,折扣。图书入库表操作包含的字 段:流水号,操作员帐号,书号,书名,数量,入库价,销售价,入库时间。系统需要 能够对商品信息进行添加,修改和删除,查找等。 (2) 跟踪图书销售信息,当有客户买书时,将要记录相关的操作信息。 (3) 进行价格维护,当登陆的人员为管理员时,将提供此功能,修改书籍的价格。 (4)帐号管理。当登陆的人员为管理员时,将提供此功能,管理员可进行添加帐号,注 销帐号等操作。
2、约束条件 无 三、实验步骤 1、创建图书基本资料窗体
11.7.1 窗体模块的功能 本窗体用于显示 BookRecord 表(图书库存)的数据,用户可以进行添加,查找, 浏览,修改等操作。 程序运行时,窗体如图 11.6 如示:
- 57 -
图 11.6 显示 BookRecord 表(图书库存)的数据 11.7.2 窗体界面设计 (1) 为工程添加一个新窗体,名称为:frmBookRecord,在本窗体中,我们将要在部件 中 引 用 两 个 控 件 。 按 CTRL+T , 调 出 部 件 对 话 框 , 选 择 “ Microsoft ADO Data Control6.0(OLEDB)”及“Microsoft DataGrid Control6.0(OLEDB)” ,点击“确定” 。如图 11.7 所示。
图 11.7 引用控件
- 58 -
(2) 在工具栏中选择 ADO 控件及“DataGrid”控件,把它们添加到窗体中,这样,我们就 可以利用 ADO 控件来操作数据库。本窗体还要引用一些 Label,TextBox 等控件,TextBox 控件用来显示相关字段的数据,我们通过建立一个 TextBox 控件数组来显示字段相关数据。 Label 控件在此不做介绍,读者可在图 11.6 中看出其 Caption 属性。下面的表 11.10 中

仅介 绍除 Label 控件外其它控件的属性。
- 59 -
11.7.3 程序代码解析 1.为了使 dgbookrecord 控件的列显示为中文名,我们可右击该控件,点击“检索字 段” 该控件将检索出字段名, , 然后我们再选择 “属性…” 在弹出的 , “属性页” 选择 中, “列” , 依次修改各字段的“标题” ,使之显示为中文。 2.当操作员点击“添加”按钮时,则进行添加新记录的操作。当用户连续点击该按 钮,而不输入有效的数据,程序将会发生错误而中断,为了避免这个问题,使用“ on error goto”错误处理语句。程序如下: Private Sub cmdadd_Click() '添加按钮 On Error GoTo handle '避免连续点击而出现错误,使程序中断. AdoBookRecord.Recordset.AddNew Exit Sub handle: End Sub 3.限于篇幅所限,不再详细地介绍按钮的代码,其它按钮的代码如下:
- 60 -
Private Sub cmdcancel_Click() '取消按钮 AdoBookRecord.Recordset.CancelBatch End Sub Private Sub cmddel_Click() Dim a As Integer If AdoBookRecord.Recordset.EOF = True Then Exit Sub '没有记录则跳开 a = MsgBox("确认要删除当前记录?", 36) If a = 6 Then AdoBookRecord.Recordset.Delete End If End Sub Private Sub cmdexit_Click() '退出按钮 Unload Me End Sub Private Sub cmdfind_Click() frmfind.Show End Sub Private Sub cmdfirst_Click() '移动到首条记录按钮 If AdoBookRecord.Recordset.EOF = True Then Exit Sub '没有记录则跳开 AdoBookRecord.Recordset.MoveFirst End Sub Private Sub cmdlast_Click() '移动到最后一条记录按钮 If AdoBookRecord.Recordset.EOF = True Then Exit Sub '没有记录则跳开 AdoBookRecord.Recordset.MoveLast End Sub Private Sub cmdnext_Click() '下一条记录按钮 If AdoBookRecord.Recordset.EOF = True Then Exit Sub '没有记录则跳开 If AdoBookRecord.Recordset.AbsolutePosition _ <> AdoBookRecord.Recordset.RecordCount Then '如果当前记录不是最后一条 AdoBookRecord.Recordset.MoveNext '记录指针移到下一条 Else MsgBox "已经到达最后一条记录!" End If End Sub Private Sub cmdpre_Click() '上一条记录按钮 If AdoBookRecord.Recordset.EOF = True Then Exit Sub '没有记录则跳开 If AdoBookRecord.Recordset.AbsolutePosition <> 1 Then '如果当前记录不是第一条
- 61 -
AdoBookRecord.Recordset.MovePrevious ' 记录指针移到上一条 Else MsgBox "已经到达第一条记录" End If End Sub Private Sub cmdrefresh_Click() '刷新按钮 On Error GoTo handle AdoBookRecord.Recordset.Update AdoBookRecord.RecordSource = "select * from bookrecord" AdoBookRecord.Refresh Exit Sub handle: MsgBox Err.Description '描述错误原因 AdoBookRecord.Recordset.CancelBatch End Sub Private Sub cmdsave_Click() '保存按钮 On Error GoTo handle '发生错误则跳到 handle AdoBookRecord.Recordset.Update Exit Sub handle: MsgBox Err.Description '描述错误原因 AdoBookRecord.Recordset.CancelBatch End Sub
3、上机

验收 实验完成,学生上交 VB 程序文件。 4、评分 程序的正确性进行评分。 四、实验仪器 计算机数十台
实验十四 实验十四 用 VB 和 SQL Server 开发图书销 售系统之创建入库、 售系统之创建入库、销售维护窗体
一、实验目的
- 62 -
实验的主要目的是进一步提高学生的计算机应用能力,培养学生利用关系数 据库系统的技术。 通过本实验,使学生掌握数据库的应用能力。 本实验主要达到以下目的: 学会读懂别人的需求与设计文档 掌握 VB 窗体的创建 培养学生开发信息系统的初步能力
二、实验内容及要求 图书销售系统 1、 功能要求:
(1) 能够对所有的图书基本进行维护和管理,包含二个表:图书基本信息表,包含的 字段:书号,书名,出版社,作者,单价,库存数量,折扣。图书入库表操作包含的字 段:流水号,操作员帐号,书号,书名,数量,入库价,销售价,入库时间。系统需要 能够对商品信息进行添加,修改和删除,查找等。 (2) 跟踪图书销售信息,当有客户买书时,将要记录相关的操作信息。 (3) 进行价格维护,当登陆的人员为管理员时,将提供此功能,修改书籍的价格。 (4)帐号管理。当登陆的人员为管理员时,将提供此功能,管理员可进行添加帐号,注 销帐号等操作。
2、约束条件 无 三、实验步骤 1、创建图书入库窗体
11.8.1 窗体模块功能 当有图书入库时,就需要使用到本窗体,保存入库信息。为了保证表之间数据 的完整性,操作员点击保存后,程序将判断当前入库的书是否是新书,如是,则弹出图书基 本资料窗体,让操作员输入基本资料,然后再保存入库信息;否则,则在 inRecord 表中添 加新的记录,然后更新 BookRecord 表中该书的数量。窗体界面设计如图 11.8:
- 63 -
图 11.8 窗体界面 11.8.2 窗体模块设计 为工程添加新窗体,名称为“frmBookIn” ,然后为窗体添加一个 ADO 控件, 一个包含 7 个文本框的控件数组,一个 DataGrid 控件,10 个命令按钮,在本窗体中,我们 将会用到一个新的控件:DTPicker 控件,用来显示日期。DTPicker 不是基本控件,我们需 要通过部件来添加。按 CTRL+T,弹出部件对话诓,选择”Microsoft Windows Common Controls-2 6.0”,点击“确定” ,工具箱中自动添加几个控件,选择,放入到相应的位置。 各控件的属性设置如表 11.11 所示。
- 64 -
11.8.3 程序代码解析 1.在窗体的通用代码声明处,声明窗体模块级变量 i,添加子程序: Option Explicit Dim i As Integer '定义模块变量 Sub txtFill() '填充数据到文本框 On Error Resume Next '避免无数据填充到文本框出错 For i = 0 To adoInRecord.Recordset.Fie

lds.Count - 2 txtinrecord(i).Text = adoInRecord.Recordset.Fields(i).Value Next dtime.Value = adoInRecord.Recordset("indate").Value End Sub Sub txtclear() '清除文本框内容
- 65 -
For i = 2 To 6 txtinrecord(i).Text = "" Next End Sub 2.窗体初始化时,连接数据 ADO 连接数据库,修改 dginrecord 的列名等。 Private Sub Form_Load() adoInRecord.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;" _ & "Persist Security Info=False;User ID=admini;Initial Catalog=图书销售系统" https://www.doczj.com/doc/29264187.html,mandType = adCmdText AdoInRecord.RecordSource = "select * from inrecord" adoInRecord.Refresh Set dginrecord.DataSource = adoInRecord '改变 dginrecord 列的名称 With dginrecord .Columns(0).Caption = "流水号" .Columns(1).Caption = "操作员" .Columns(2).Caption = "书号" .Columns(3).Caption = "书名" .Columns(4).Caption = "数量" .Columns(5).Caption = "入库价" .Columns(6).Caption = "销售价" .Columns(7).Caption = "入库时间" End With dtime.Value = Date '使得日期控件的日期为当前日期 txtinrecord(1).Text = username End Sub 3.其它按钮的代码相对简单,我们只介绍保存按钮的代码。其它按钮的代码如下: Private Sub cmdadd_Click() '添加按钮 txtinrecord(1).Text = username '自动插入当前的帐号 txtinrecord(2).SetFocus txtclear '清除文本框内容 End Sub Private Sub cmdcancel_Click() '取消按钮 For i = 1 To 6 txtinrecord(i).Text = "" Next dtime.Value = Date End Sub Private Sub cmdexit_Click() '退出按钮
- 66 -
Unload Me End Sub Private Sub cmdfind_Click() '查找按钮 Dim str1 As String str1 = InputBox("请输入书号:", "模糊查找书名") If str1 <> "" Then adoInRecord.RecordSource = "select * from inrecord where bookno like '" & str1 & "%'" adoInRecord.Refresh txtFill End If End Sub Private Sub cmdfirst_Click() '“第一条”按钮 On Error Resume Next '避免没有记录的情况 If adoInRecord.Recordset.AbsolutePosition <> 1 Then adoInRecord.Recordset.MoveFirst '如果当 前记录不是第一条,移动到第一条 txtFill '填充数据到文本框 End Sub Private Sub cmdlast_Click() '“最后一条”按钮 On Error Resume Next '避免没有记录的情况 If adoInRecord.Recordset.AbsolutePosition <> adoInRecord.Recordset.RecordCount Then '如果 当前记录不是最后一条 adoInRecord.Recordset.MoveLast txtFill '填充数据到文本框 End If End Sub Private Sub cmdnext_Click() '“下一条”按钮 On Error Resume Next '避免没有记录的情况 If adoInRecord.Recordset.AbsolutePosition <> adoInRecord.Recordset.RecordCount Then '如果 当前记录不是最后一条 adoInRecord.Recordset.MoveNext txtFill '填充数据到文本框 Else MsgBox "已经到达最后一条记录", 48 End If End Sub
Private Sub cmdpre_Click() '"上一条“按钮 On Error Resume Next '避免没有记录的情况 If adoInRecord.Recordset.AbsolutePosition <> 1 Then '如果当前记录不是第一条
- 67 -
adoInRecor

d.Recordset.MovePrevious txtFill Else MsgBox "已经到达最前一条记录", 48 End If End Sub Private Sub cmdrefresh_Click() '刷新按钮 adoInRecord.RecordSource = "select * from inrecord" adoInRecord.Refresh End Sub If rs.EOF = False Then '如果是旧书 '更新图书基本资料的库存数量 con.Execute "update bookrecord set quantity=quantity + " & Val(txtinrecord(4)) & " where bookno='" & txtinrecord(2).Text & "'" MsgBox "该书在库存中已经存在,修改数量成功" Else '新书 MsgBox "该书是新书,请先在基本资料填入信息! ,然后再保存一次", , "图书入库" With frmBookRecord .AdoBookRecord.Recordset.AddNew .txtbook1.Text = txtinrecord(2).Text '填充书号到基本资料窗体书号文本框 .txtbook2.Text = txtinrecord(3).Text '填充书名到基本资料窗体的书名文本框 .txtbook5.Text = txtinrecord(6).Text '填充单价到文本框 .txtbook6.Text = txtinrecord(4).Text '填充数量到文本框 .Show End With rs.Close '关闭记录集 Exit Sub End If adoInRecord.Recordset.AddNew On Error Resume Next '消除输入数据为空的发生错误情况 For i = 1 To 6 adoInRecord.Recordset(i).Value = Trim(txtinrecord(i).Text) Next i adoInRecord.Recordset("indate").Value = dtime.Value adoInRecord.Recordset.Update rs.Close MsgBox "新书入库操作成功" End Sub Private Sub dginrecord_Click() '单击 dginrecord 时 txtFill
- 68 -
End Sub 2. 创建图书销售窗体
11.9.1 窗体模块功能 本窗体模块的功能是进行图书销售, 当有客户来购买书籍时, 将会用到此窗体。 在本窗体中,只要操作员把书号输入到书号文本框,然后按回车,窗体的其它 Text 控件将 会显示该书的相关资料,当进行结帐操作时,将会更新数据库 BookRecord 表中该书的库存 量,然后在 Booksale 表,salesdetail 表中添加新记录,记录操作信息。窗体界面如图 11.9 所 示.
图 11.9 图书销售窗体 窗体模块的设计 为工程添加一个新窗体,名称为:frmBookSale,然后在窗体上添加其它相关的 控件,设置好控件的属性。窗体上各控件的属性如表 11.12 所示. 11.9.2
- 69 -
程序设计解析 1. 窗体运行时,因为没有相关的操作,所以使“计算”“结帐”按钮不可用,代码 , 如下: Private Sub Form_Load() cmdOK.Enabled = False '计算按钮不可用 cmdAll.Enabled = False '结帐按钮不可用 End Sub 2.当有客户购买书籍时,操作员在输入书号窗体中输入客户所购书的书号,按下回车 后,当在各文本框中显示该书信息。程序代码如下: Private Sub Text1_KeyPress(KeyAscii As Integer) On Error GoTo handle '错误处理 If rs.State <> 0 Then '如果记录集不是关闭 rs.Close End If 11.9.3 If KeyAscii = 11 Then ‘如果是按下回车键
- 70 -
rs.Open "select bookno,bookname,salesprice,discount,quantity,(salesprice * discount*0.1)as price from bookrecord where bookno=

相关主题
文本预览
相关文档 最新文档