数据库语言第10章_第1页
数据库语言第10章_第2页
数据库语言第10章_第3页
数据库语言第10章_第4页
数据库语言第10章_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、功能。(5)信息可对门诊系统的一些信息进行2.系统设计(1) 确定所需要的表:。病患表、医生表、就诊表、专科诊所表有 4 个实体:、医生、医生处方和药品。与医生之间的关系为挂号,病人与药品之间的关系为处方划价,3 个实体各自为一个表,实体之间的关系各自为一个表。系统的维护需要明确使用者的,因此,在系统登录时对使用者要进行的确认,通过一个表来系统所有的用户及其操作权限。(2) 确定表的结构及主键表:编号,姓名,医生表:医生编号,姓名,出生日期,居住地址,初次就诊时间,、出生日期、毕业院校、科室挂号表:挂号编号,编号,医生编号,挂号时间,科室,挂号类别,挂号费 药品表:药品编号,药品名称,药品规格

2、,数量,入库单价,出库单价,出库时间处方表:处方编号,挂号编号,药品编号用户表:自动编号,用户名,10.1.2 功能描述了解系统的基本需求和结构后,要明确系统的功能母版,设计好各个功能模块。在这个系统中,可以设计以下几个模块:系统登录模块:系统的登录模块是维护数据库系统安全最简单、直接的方法,在任何一个数据库应用系统中,这个功能是必须的。信息录入模块:初次来医院就诊的院的所有活动,包括诊断、治疗、回访等。需要建立一个新的病案,以便在医挂号信息的录入:用来完成号科室、医生等信息。的挂号过程信息,包括挂号的类别、费用、挂医生处方的录入:的诊疗过程中,医师所开具的处方是诊疗费用的依据,处方中包括及医

3、生的信息,以及药品的使用情况处方划价操作:根据医生所开具的处方,计算处方的药品使用情况,处方费用。并的交费情况。对门诊的信息进行,包括各个科室的门诊量统计、药品的情况显示等。根据系统的功能,设计如下系统模块:1.系统登录模块:系统登录模块是维护系统安全最为简单的方法,是所有数据库系统所必须具备的。信息管理模块:完成基本信息即首页相关内容的管理,对初次就诊的相关信息。2.进行新增操作。对已经就诊过的3.门诊挂号模块:根据各个科室的医生出诊的情况,进行挂号操作,信息及接诊医生的情况。的挂号4.处方生成模块:由接诊医生根据情况,开具相关的处方,处方中包括相关的药品信息。5.划价交费模块:根据医生处方

4、给出的数据,并的交费情况。模块:包括各个科室各不同挂号类别的门诊量的统计,医生出诊情况的统计,。6.药品信息的10.2数据库的创建明确功能目标就可以开始数据库设计。数据库设计中最为重要的是表的设计,表结构设计好坏直接影响到数据库的性能。良好的表的结构设计是数据库系统开发过程中的重要一步。10.2.1 创建数据库数据库设计的第一步是要先建立一个空数据库,以便在其中建立任务 1:建立一个空数据库,名称为 menzhen.accdb。操作步骤:的表及相关内容。1) 启动 Access 2007,单击窗口左上角的 office 按钮,功能菜单中选择“新建”,2) 或者直接单击屏幕正中的“空白数据库”按

5、钮,随后窗口右下角输入数据库的名字, 单击名称边的小文件夹图标定义数据库的位置,如图 9-1 所示。确认后单击“创建”按钮完成。图 9-1 建立空白数据库10.2.2 创建数据库表进入空数据库即可开始表的创建,在建立空数据库时,系统就已经自动创建了一个“表1”数据表,对其进行编辑可作为第一个表的建立方法。任务 2:创建用户表。操作步骤:1)【开始】选项卡上单击“视图”按钮选择“设计视图”,或者右键单击表 1 在快捷菜单中选择“设计视图”,如图 8-2 所示。图 9-2 表的设计视图转换框,将表的名字改为“用户表”,选择“确定”,如图 8-3 所示。2)出现“另存为”图 8-3 保存新表3)进入

6、表结构的设计视图,输入表各个字段的名称、数据类型,如图 9-4 所示结果:图 9-4 用户表结构设计各字段设置如表 9-1:表 9-1 用户表的字段数据4)Ctrl+s 或者窗口左上角“保存”按钮,保存表。表的创建也可通过【新建】选项卡上的“表”按钮,进入表的设计视图,进行表结构设计。通过以上方法,分别创建医生、处方、药品、挂号表,这几个表的结构如下所示:表 9-2表结构字段名数据类型宽度是否主键编号文本8是文本8否文本2否出生日期日期/时间否居住地址文本100否字段名数据类型宽度是否主键ID自动编号长整型是用户名文本8否文本8否表 9-3医生表结构表 9-4挂号表结构表 9-5 药品表结构表

7、 9-6 处方表结构字段名数据类型宽度是否主键自动编号自动编号长整型是挂号编号文本8否药品编号文本8否开具时间日期/时间否数量数字长整型否单价数字单精度否小计数字单精度否交费状态是/否否字段名数据类型宽度是否主键药品编号文本8是药品名称文本50否药品规格文本20否数量数字长整型否出库单价数字单精度否入库单价数字单精度否文本50否字段名数据类型宽度是否主键挂号编号文本8是编号文本8是医生编号文本8是就诊时间日期/时间否挂号类别文本10否挂号费数字长整型否科室文本20否字段名数据类型宽度是否主键医生编号文本8是文本8否文本2否出生日期日期/时间否文本16否科室文本20否毕业院校文本50否OLE 对

8、象否挂号数量数字长整型否文本20否初次就诊时间日期/时间否10.2.3 建立表间关系数据库在设计时,为了避免冗余数据的产生,将数据表拆分成了较小单元,通过各个表之间建立关系来完成从各个数据库表中提取相应的操作字段。通常在表的设计完成之后就需要进行表的关系设置。任务 3:设置各个表之间的关系。操作步骤:【数据库工具】选项卡上单击“关系”按钮 ,进入关系的编辑状态。1)2)空白处单击右键,快捷菜单中选择“显示表”,出现显示表框,如图 9-5 所示。图 9-5 显示表选择要设置关系的表,这里添加除用户表之外的 5 个表。3)4)关系”选择挂号表中的编号字段,拖动到表的编号字段上放下,出现“编辑框,如

9、图 9-6 所示。图 9-6 编辑表关系重复以上步骤,为表建立关系,如图 9-7 所示。其中处方表与药品的关系编辑中设5)置了“实施参照完整性”,以保证处方中所使用的都是在药品表中出现的。图 9-7 表关系设置结果6)单击“关闭”按钮,在弹出的保存提示框中选择“是”将表关系保存。的设计10.3是以数据库中数据为数据源,根据指定条件从数据库中选取符合条件的,形成一个新的集合,这个集合可以是临时的,也可以转成的。表在设计时以减少冗余为目的,因此单靠一个表的信息通常不能满足一定的要求。要实现系统的设计功能,中间的临时集合需要事先建立,然后可在此基础上设计窗体实现数据操作,设计报表实现数据输出。1.“

10、挂号详细”挂号操作中需要确认挂号的姓名、医生姓名、医生科室等信息,这些内容不包含在挂号表中,因此需要与任务 4:建立挂号详细操作步骤:表和医生表连接后生成一个集合,以便于操作。【创建】选项卡“其他”组中选择“设计”按钮,进入设计视图,出现“显示1)表”框,参考图 9-5。添加挂号表、表、医生表。向设计网格中添加字段,拖动挂号表中的挂号编号、就诊日期、科室放置到网2)格的字段中,再放置表中的姓名,以及医生表中的姓名。结果如图 9-8 所示。图 9-8 “挂号详细”的设计3)单击“保存”按钮,将当前保存为“挂号详细”。2.“交费”交费的确认过程中,需要了解处方的详细信息,包含处方中的药品、的信息、

11、开具处方的医生信息等。因此所要涉及的表有挂号表、处方、任务 5:建立交费操作步骤:、医生和药品表。【创建】选项卡“其他”组中选择“ 框,参考图 9-5。添加“挂号表”、“设计”按钮,进入设计视图,出现“显示表”、“医生”、“处方”、“药品表”。如图1)表”9-1 所示,“处方表”与“挂号表”之间没有关联。图 9-10中表的初始关系2)将“处方表”中的“挂号编号”与“挂号表”中的字段建立关联。拖动“处方表”的“挂号编号”到“挂号表”。3)向设计网格中添加字段,拖动“挂号表”中的“挂号编号”、“就诊日期”、“科室”放置到网格的字段中,再放置“”表中的“姓名”,以及“医生”表中的“姓名”,“处方”表

12、中的“数量”、“单价”、“小计”、“交费状态”,“药品”表中的“药品名称”、“单位”。4)添加条件。在网格中的挂号编号下的“条件”行中输入条件为“输入挂号编号”,结果如图 9-11 所示。图 9-11 交费的设计视图3.“门诊量统计”门诊量的统计是模块的一部分,的结果由报表输出,因此必须事先建立记录集。门诊量的统计要求是输出以科室为分类的,各个科室的门诊量,以及门诊总量,其中还应显示出在门诊中挂号类别的统计数据。在此使用交叉表。任务 6:建立门诊量统计的交叉表操作步骤:【创建】选项卡“其他”组中选择“ 框,参考图 9-5。添加挂号表。设计”按钮,进入设计视图,出现“显示1)表”【设计】选项卡“

13、类型”组中选择“交叉表(B)”,在设计网格中将自动增加2)“总计”和“交叉表”行。3) 拖动“科室”、“挂号类别”字段放置到网格分别在“交叉表”行设置为“行标题” 和“列标题”。4) 拖动“科室”字段放置到网格字段行,设置“总计”行为“计算”,“交叉表”行设置为“值”5)增加新列。在新列的“字段”行中输入:各科室挂号统计:科室,“总计”行中设置为“计算”,“交叉表”行设置为“行标题”。设置结果如图 9-12 所示。图 9-12 门诊量统计6)单击“运行”按钮,查看运行结果。4.“医生挂号费统计”设计医生挂号费统计是以医生为分类标准,统计各个医生的挂号量。相关信息设计医生表和挂号表,结果要以医生

14、姓名为分类标准,对医生的挂号费进行求和运算。任务 7:建立医生挂号费统计操作步骤:【创建】选项卡“其他”组中选择“框,参考图 9-5。添加挂号表、医生表。设计”按钮,进入设计视图,出现“显示1)表”单击【设计】选项卡“显示/隐藏”组中的“汇总”按钮,网格中显示“总计”行。拖动“医生”表中的“姓名”到网格“字段”行第一列。字段行第二列输入:挂号数量统计:姓名,“总计”设置为“计算”。拖动“挂号表”中的“挂号费”到“字段”行第三列,设置“总计”行为“合计”。2)3)4)5)6)将“医生”表中的“科室”、“”放置到随后的字段行。设置完成的设计如图 9-13 所示。图 9-13 医生挂号费统计设计7)

15、单击“保存”按钮,将保存为“医生挂号费统计”,单击“运行”按钮,查看运行结果。5.“处方详细”处方表中只有医生编号和编号,处方详细就是要将处方中的医生、的详细信息包含进去,以便于医生在生成处方时核对。任务 8:建立处方详细操作步骤:【创建】选项卡“其他”组中选择“框,参考图 9-5。添加挂号表、医生表、设计”按钮,进入设计视图,出现“显示表。1)表”将挂号表中的“挂号编号”、“就诊时间”、“科室”拖动到网格的字段行,再分别将2)医生表、表中的“姓名”字段拖动到字段行即可完成设计。10.4窗体的设计窗体是人机交流的主要工具,对数据库的、查看、数据的输入、输出都是通过窗体完成的。因此在系统设计中,

16、窗体是实现系统功能的主要载体。一个系统中会建立多个窗体,每个窗体通常对应一个表或,可以通过添加嵌套的子窗体实现多个表的信息操作。窗体的设计与功能设计是相关的,根据系统的功能设计,主要有以下窗体:1.“登录”窗体设计登录窗体是系统运行的任务 9:设计登录窗体操作步骤:,应该完成检测用户名与的功能。1) 打开“用户”表,【创建】选项卡“窗体”组,“其他窗体”按钮的下拉列表中选择 “窗体向导”,快速建立一个窗体。2) 【设计】选项卡“工具”组,单击“属性表”按钮打开属性表。3) 添加 2 个按钮控件,取消控件向导。4) 选择窗体中的文本框,设置将其属性,控件的属性设置如表 9-7。如图 9-14(a

17、) 为窗体的设计视图。9-14(b)为窗体的运行视图。表 9-7 登录窗体中的控件及其属性设置控件属性属性值属性表中的位置文本框名称Username其他-名称文本框名称Password其他-名称输入掩码数据-输入掩码按钮名称Command5其他-名称标题确定格式-标题按钮名称Command6其他-名称标题取消格式-标题窗体名称登录其他-名称标题系统登录格式-标题源空数据-源弹出方式是其他-弹出方式模式是其他=模式(a)图 9-14 登录窗体(b)2.“主菜单”窗体设计主菜单窗体上为系统功能模块的显示,分别对应一个按钮,单击按钮进入相应的功能模块。任务 10:创建主菜单窗体操作步骤:1) 【创建

18、】选项卡“窗体”组,单击“窗体设计”按钮,进入窗体设计。2) 选择【设计】选项卡“控件”组中的控件,向窗体中添加控件:标题和 8 个按钮。设置控件属性,如表 9-8 所示。表 9-8控件及其属性3)可通过【排列】选项卡上的“控件对齐方式”组中的相关按钮,调整窗体中控件的位置。窗体视图下如图 9-15 所示。控件属性属性值属性表中的位置按钮名称Command0其他-名称标题信息管理格式-标题按钮名称Command1其他-名称标题门诊挂号格式-标题按钮名称Command2其他-名称标题开具处方格式-标题按钮名称Command3其他-名称标题划价格式-标题按钮名称Command4其他-名称标题门诊量

19、统计格式-标题按钮名称Command5其他-名称标题医生挂号费统计格式-标题按钮名称Command6其他-名称标题药品信息格式-标题窗体名称主菜单其他-名称标题系统主菜单格式-标题弹出方式是其他-弹出方式模式是其他=模式图 9-15 系统主菜单窗体信息管理”窗体设计3.“信息管理模块主要完成初诊基本信息的录入,信息的修改、删除和等操作,所涉及的表是任务 11:创建操作步骤:表。因此,使用窗体向导建立一个表的信息管理窗体显示窗体是很便捷的。1)【创建】选项卡“窗体”组,单击“其他窗体”下拉列表选择“窗体向导”。2)窗体向导中定义:选择表,选中全部字段;布局为“纵栏表”;样式为“办公室”,标题为:

20、3)添加添加“转至下一项信息管理,进入窗体设计视图。导航按钮。【设计】选项卡“控件”组,添加按钮,进入控件导航,分别”、“转至前一项”、“转至最后一项”、“转至第一项”“查找”。可参考本书 5.3.1 节中的相关内容。4)添加操作按钮。与步骤(3)类似,在按钮的控件导航中“类别”选择“操作”,如图 9-16 所示,添加“保存”、“删除”、“添加新”按钮。图 9-16 添加操作按钮5)添加窗体操作按钮。与步骤(4)类似,控件向导中“类别”选择“窗体操作”中的“关闭窗体”。6)保存当前窗体为“信息管理”。窗体如图 9-17 所示。图 9-17信息管理窗体4.“门诊挂号”窗体设计门诊挂号模块所设计的

21、表比较多,在挂号的过程中,除要显示出、医生的相关信息,还要显示出当前挂号的情况,挂号的过程是要在挂号表中生成一条新,的内容包括、医生的信息,同时包含所挂号的类别及挂号费的情况。这个窗体涉及到三个表:、医生、挂号表。操作时以信息为主,通过对的确认,再选择医生的相关信息,最后结合 2 部分信息添加一个挂号的新。窗体的源是,通过添加子窗体的方法建立与挂号表的连接,通过 ADO 的方法将用户选择的与医生的信息结合在一起,写入挂号表中。任务 12:建立门诊挂号窗体操作步骤:1)使用窗体向导创建“”表信息的窗体,必须包含的字段为“编号”,其余可任选,这里选了“出生日期”和“姓名”,设置为纵栏表,标题为“门

22、诊挂号”,进入设计视图。添加导航按钮。分别添加“转至下一项”、“转至前一项”、“转至最后2)一项3)”、“转至第一项”“查找”。可参考本书 5.3.1 节中的相关内容。绘制一个边框。单击【设计】选项卡“控件”组中的“选项组”按钮,绘制后取消控件向导,设置控件的属性:格式-背景样式设置为“透明”,并修改配套人信息”。的标题为“病4)添加科室组合框。单击【设计】选项卡“控件”组中的“组合框”按钮,进入控件向导,选择“自行键入所需的值”,如图 9-18 所示。5)单击,输入组合框的取值,如图 9-19 所示。图 9-18 组合框选项图 9-19 组合框的取值定义6)单击 如图 9-20 所示。,设置

23、组合框选择结果的存放方式。选择“记忆该数值供以后使用”,图 9-20 组合框选择结果的存放设置7)单击,定义配套框的标题为“选择科室”。8) 设置组合框的名称为“keshi”。9) 类似方法添加名称为“leibie”的组合框,取值为“普通号”、“10) 其他要添加的控件及属性设置如表 9-9 所示。表 9-9 添加控件及其属性号”、“特需”。说明:名称为 dtime 的文本框放置在窗体的标题位置,删除了其配套的前系统日期。框,将用做显示当名称为 Command1 的按钮,是使用控件向导添加的类型为“窗体操作”的“刷新窗体数据”按钮;名称为 Command2 的按钮,是使用控件向导添加的类型为“

24、窗体操作”的“关闭窗体”按钮。列表框控件在设置出诊的医生取消控件向导,直接放置在窗体中即可。列表框将用来显示当前名称为 tt 的文本框将用来显示被选择的医生的医生编号。11) 添加挂号表子窗体控件。【设计】选项卡“控件”组中单击“子窗体”按钮,绘制子窗体,并进入控件向导,选择“如图 9-21 所示。12) 单击13) 单击,定义数据源为挂号表,并选中其所有字段。,定义子窗体与主窗体的连接,以“编号”为连接字段,即当主窗体中的编号发生变化时,子窗体中的进行相应的调整。设置如图 9-22 所示。控件属性属性值文本框名称Dtime文本框名称Tt文本框配套框标题医生编号列表框名称Docname列表框配

25、套框标题挂号类别按钮名称Guahao标题生成挂号信息按钮名称Command1标题刷新按钮名称Command11标题查看号源按钮名称Command2图片图像(关闭窗口)图 9-21 子窗体的控件向导图 9-22 定义子窗体的连接方式14) 指定子窗体名称,完成子窗体设置。最后设置完成后窗体设计视图下如图 9-23 所示。图 9-23 门诊挂号窗体设计视图5.“处方输入”窗体设计处方输入是在挂号的基础上,在确认了与医生的相关信息后,形成电子处方的过程。电子处方除包含医生、药品的相关信息外,还应包括处方的开具时间。为了医生输入药品的方便,在此窗体中还将药品的相关信息以子窗体的形式。另一个子窗体是处方

26、的子窗体,可将以往的处方按钮可看到新生成的处方。任务 13:建立处方输入窗体操作步骤:,当前处方输入后,单击“刷新”1)【创建】选项卡“窗体”组,单击“窗体设计”按钮,进入窗体设计视图。2)窗体属性设置。单击空白处,属性表中【数据】选项卡,设置“源”“挂号详细”3)。【格式】选项卡“标题”为“处方输入”,窗体保存为“处方生成”。具有数据绑定的文本框。【设计】选项卡“控件”组,文本框,取消控件向导,指定文本框的属性;【数据】选项卡“源”中指定“挂号编号”。4)重复步骤(3),分别.姓名”、“医生.姓名”。4 个文本框,指定“源”为:“科室”、“就诊时间”、“窗体”。【设计】选项卡“控件”组中“子

27、窗体”控件,进入子窗体5)向导,指定“指定现有的表和”,选择“药品”表,选取所有字段。即可选择“完成”。配套的6)框,即子窗体显示时的名称为“选择药品”。窗体的文本框锁定。设置锁定是在运行时不用户修改数据。选择“药品子窗体”中的文本框,属性表【数据】选项卡“是否锁定”项设置为“是”。3 个文本框控件,为“未绑定”源,分别设置文本框标题为“药品编号”、7)“单价”、“数量”。其中“药品编号”和“单价”设置为锁定。方法参考步骤(6)。按钮。在“挂号编号”文本框导航按钮。【设计】选项卡“控件”8)组,添加按钮,进入控件导航,添加“查找容。”。具体操作可参考本书 5.3.1 节中的相关内刷新按钮。参考

28、任务 11 门诊挂号窗体的创建中的步骤 10,添加一个“刷新”9)按钮,实现窗体数据刷新。10) 添加 3 个按钮,分别为“添加”、“预览”和“返回”。11) 参考步骤(5)、(6)本框为锁定。“处方 子窗体”,数据源为处方表,并设置子窗体中的文12) 完成后的处方输入窗体如图 9-24 所示。图 9-24 处方输入窗体设计结果6.“划价交费”窗体设计划价交费窗体的功能是根据需要显示出要划价的处方,以挂号编号为依据,输入挂号编号后,查找出此挂号相关的处方信息,单击“交费”按钮,将费状态”赋值为 True。任务 14:创建划价交费窗体。操作步骤:将所有处方的“交1)【创建】选项卡“窗体”组,单击

29、“其他窗体”按钮,选择下拉列表里的“窗体向导”,设置数据源为“交费”,添加“挂号编号”、“.姓名”、“医生.姓名”和“就诊时间”字段。布局为“纵栏表”,样式为“市镇”,完成进入窗体设计视图。2)将标题部分背景色改为浅。鼠标单击背景的空白处,快捷菜单上选择“填充/背景色”,下级菜单中选择颜色。如图 9-25 所示图 9-25 背景颜色的设置3) 添加费用合计文本框。文本框的属性设置为:【数据】选项卡的“控件来源”中, 输入“=sum(小计)”。4) 添加处方子窗体。使用子窗体控件,添加数据源为处方表的子窗体,选择“挂号编号”、“数量”、“单价”、“小计”等字段,设置子窗体与主窗体的连接为“挂号编

30、号”字段。具体方法可参考任务 11 中的步骤(11)-(14)。5) 添加“关闭窗体”按钮。保存窗体为“划价交费”。6) 修改“处方 子窗体”。关闭“划价交费”窗体,在窗口左边的“所有 Access 对象”窗格中选择“处方子窗体”,单击右键,快捷菜单上选择设计视图。如图 9-26 所示。图 9-26 处方 子窗体的设计视图子窗体”的设计视图中,打开窗体属性表,选择【数据】选项卡“7)在“处方源”,单击右边的按钮,出现框,如图 9-27 所示。图 9-27 创建新提示框8)选择“是”进入的编辑状态。添加药品表,拖动“处方”表中的“挂号编号”、“数量”、“单价”、“小计”和“交费状态”字段,以及“

31、药品”表中的“药品名称”字段到网格的字段行。9)单击“另存为”按钮,将保存为“处方药品名”。如图 9-28 所示。图 9-28 处方药品名的创建10) 关闭,提示信息框中选择“是”,如图 9-29 所示。图 9-29 提示更改数据源框11) 添加文本框控件,属性表设置其控件的数据源为“药品名称”,如图 9-30 所示。更改文本框配套框标题为“药品名称”。关闭“处方 子窗体”。图 9-30 文本框的添加与属性设置12) 打开“划价交费”窗体。最后结果如图 9-31 所示。图 9-31 划价交费窗体设计结果报表的设计10.5报表是将统计结果进行输出的主要载体。通过 Access 的报表向导工具,可

32、快速、方便地建立多种复杂的报表。在本章中共建立 4 个报表,其中处方报表对应于开具处方模块,将生成的电子处方打印输出。其余 3 个报表分别对应了系统的的统计、药品情况的显示。1.药品情况显示报表统计的三个模块。即门诊量的、医生挂号费药品情况显示报表是将当前药品表中的信息一个药品表。任务 15:建立药品信息报表。操作步骤1)打开“药品”表。,无须作统计和计算,因此只涉及2)【创建】选项卡“报表”组,单击“报表”按钮,即可生成以当前表内容为数据源的报表。如图 9-32 所示。图 9-32 药品信息报表3)保存报表为“药品”。2.门诊量统计结果报表门诊量结果报表的数据源是“门诊量统计”,生成方法与药

33、品报表的方法相同。任务 16:生成门诊量统计报表。操作步骤:参考任务 14。结果如图 9-33 所示图 9-33 门诊量统计报表3.医生挂号费的统计结果报表医生挂号费法生成。结果报表的数据来源是“医生挂号费统计”,可使用报表向导的方任务 17:生成医生挂号费统计报表。操作步骤:1)打开医生挂号费统计。2) 单击【创建】选项卡“报表”组“报表向导”按钮。3) 指定数据源、字段,没有分组,可参考本书第 5 章相关章节。排序的设置如图 9-34所示。图 9-34 报表排序设置4)报表样式选择“办公室”,结果如图 9-35 所示。图 9-35 医生挂号费统计报表4.处方报表的创建处方报表的内容依据处方

34、详细,报表的创建过程要求以挂号编号进行分组,即一个挂一次号,开一次处方,处方上应具有所有药品。处方表中,挂号编号相同的个处方上的内容。因此,报表以挂号编号为分组依据。任务 18:创建处方报表。操作步骤:为一1)打开处方详细,单击【创建】选项卡“报表设计”按钮。进入报表设计视图。单击【设计】选项卡“控件”组“标题”按钮添加报表标题。设置标题内容与背景。标题部分添加一个文本框,未绑定数据源且删除配套框。2)报表的属性设置:指定数据源为“处方详细”。3)在报表的页面页眉部分,添加 5 个文本框,文本框数据源分别为“挂号编号”、“医生.姓名”、“.姓名”、“科室”、“就诊时间”。4)报表的主体部分,添

35、加 5 个文本框,文本框数据源分别为“药品名称”、“单价”、“数量”、“小计”、“”。5)报表页脚部分添加一个文本框,文本框数据源为“=sum(小计)”。完成后报表的设计视图如图 9-36 所示。图 9-36 报表设计视图结果6)报表修饰。在页面页眉的顶端绘制一细实线,页面页眉的下端绘制一虚线,报表页脚顶端绘制一细实线。预览报表结果如图 9-37 所示。图 9-37 报表的预览效果10.6VBA 代码与宏设计前面所建立的各个、窗体、报表是相对的、静态的,要将它们有机的整一个完整的系统,必须依靠宏及 VBA 的设计。尽管在 Access 中所需要的代码已经非常少,但是一些数据库的连接、系统信息的

36、输入等还是需要写一小段程序的。1.建立对 ADO 库的VBA 的使用ADO 库的设置,否则将不能对数据库信息进行操作,具体的操作方法,请参考本书 8.5.1 中的任务 12。2.登录窗体中的代码登录窗体的运行过程中,用户输入用户名和后,单击“确定”按钮,因此在“确定”按钮的单击中,进行的,及结果的处理。任务 19:登录窗体中按钮中的代码设置。操作步骤1)进入“登录”窗体的设计视图,选择“确定”按钮,属性表【】选项卡上“单击”行中单击 ,选择“代码2)添加如下代码:On Error GoTo err_ok_clickDim strsql As String”进入 VBA 环境Dim rs As

37、New ADODB.RecordsetIf IsNull(Me.username) Or Me.username = "" ThenDoCmd.BeepMsgBox "请输入用户名" ElseIf IsNull(Me.password) Or Me.password = "" ThenDoCmd.BeepMsgBox "请输入Else"strsql = "select * from 用户 where 用户名='" & Me.username & "'an

38、d='" & Me.password & "'"rs.Open strsql, CurrentProject.AccessConnection, adOpenKeysetIf rs.EOF ThenDoCmd.Beep MsgBox "用户或Me.username = ""Me.password = ""错误"Me.username.SetFocusExit Sub ElseDoCmd.Close check = TrueDoCmd.OpenForm ("主菜单&

39、quot;) End IfEnd If End IfSet rs = Nothing exit_ok_click:Exit Sub err_ok_click:MsgBox (Err.Description)Debug.Print Err.Description说明:这里使用的是 ADO 来连接数据库,用户息框提示确认则打开主菜单窗体,错误给出信正确的用户名和保存在用户表中,可使用用户名:小护士 1,是 12345678。”,设置“操(3) 选择“取消”按钮。属性表【“Close”。】的“单击”行中选择“宏作”主菜单窗体中的代码及宏设置3.主菜单中为 8 个按钮,除了“相应的窗体。系统”按钮外,

40、其余按钮均为关闭当前窗体,再打开任务 20:主菜单窗体中的代码与宏设置。操作步骤:1)选择“信息管理”按钮,通过属性表设置宏,2 个宏命令:close 和 Openform。Openform 中需指定要打开的窗体名称,可在宏界面下方的下拉选项中设置,结果如图 9-38所示。图 9-38管理按钮的宏设置2) 选择“门诊挂号”按钮,通过属性表进入 VBA 环境,输入以下代码:Private Sub Command1_Click() DoCmd.CloseDoCmd.OpenForm ("门诊挂号")End Sub3) 参考步骤(1)或(2)设置其余按钮系统按钮设置的宏命令为:q

41、uit 信息管理”窗体中的宏设置信息管理”窗体中,只要设置“返回”按钮的宏即可。在窗体设计中此按钮已经4)4.“ “设置了“关闭窗体”的宏命令,在此需要再增加一个宏命令,用来打开“主菜单”窗体,以便返回到主菜单。操作方法可参考“ 主菜单” 中相关按钮的设置方法, 添加宏命令“OpenForm”,或者直接写成代码。5. “门诊挂号“窗体中的 VBA 及宏设置“门诊挂号”窗体的操作过程是:打开窗体后可看到信息,需要先选择挂号的科室及挂号类别,单击“查看号源”按钮,将可供选择的出诊医生显示在列表框中,如没有符合条件的则使用信息框进行提示。单击列表框选择医生,这时“生成处方信息”的按钮才被激活,单击此

42、按钮出现处方信息表,将显示出此的以往就诊信息。单击“刷新”按钮,可看到新增的挂号信息。挂号过程结束。程序的运行结果如图 9-39所示。挂号后要将已挂号医生可挂号数量进行减 1 操作。图 9-39 门诊挂号窗体运行任务 21:门诊挂号窗体的代码与宏设置操作步骤:通过属性表设置窗体的“加载”Private Sub Form_Load()Me.dtime = Date Me.guahao.Enabled = False中的 VBA 代码:1)获取当前系统日期“生成挂号信息”按钮为不激活状态Me.挂号表_子窗体.Visible = False End Sub隐藏挂号表_子窗体“查看号源”按钮单击Dim

43、 strsql, lb As String中的 VBA 代码为:2)Dim rs As New ADODB.RecordsetSet rs = New ADODB.RecordsetSelect Case Me.leibieCase "普通号"lb = "主治医师" Case "号"lb = "副Case "特需"医师"lb = "医师" End Select先清空医生姓名列表框For i = 0 To Me.docname.ListCount 1Me.docname.Rem

44、oveItem (0) Next istrsql = "select * from 医生 where='" & lb & "' and 科室='" & Me.keshi & "' and挂号数量>0"'语句字符串rs.Open strsql, CurrentProject.AccessConnection, adOpenKeysetIf rs.EOF ThenMsgBox "此类型号源已用完" Me.keshi.SetFocusElser

45、s.MoveFirstDo While Not rs.EOFMe.docname.AddItem (rs("姓名") rs.MoveNextLoop将符合条件的医生姓名加入列表框End If3)单击“docname”医生姓名列表框时的 VBA 代码:Private Sub docname_Click() Dim strsql, lb As StringDim rs As New ADODB.RecordsetSet rs = New ADODB.Recordsetstrsql = "select 医生编号 from 医生 where 姓名='"

46、& Me.docname & "' and='" & Me.keshi & "'"rs.Open strsql, CurrentProject.AccessConnection, adOpenKeyset科室If Not rs.EOF ThenMe.tt = rs("医生编号") End If将选中的医生编号赋值给 tt 文本框激活“生成挂号信息”按钮Me.guahao.Enabled = TrueEnd Sub4)“生成挂号信息”按钮单击中的 VBA 代码:Private Su

47、b guahao_Click() Dim strsql, sql2 As StringDim rs, rs1 As New ADODB.Recordset Set rs = New ADODB.RecordsetSet con = CurrentProject.Connectionstrsql = "select * from 挂号表"rs.OpenadCmdTextstrsql,CurrentProject.AccessConnection,adOpenKeyset,adLockOptimistic,rs.MoveLastSet bh = rs.Fields("

48、挂号编号") bh = Val(rs("挂号编号") + 1挂号编号字段的数值为前一个号加 1定义不同类别的挂号费用Select Case Me.leibieCase "普通号" gfee = 5Case "号" gfee = 14Case "特需" gfee = 200End Select添加新rs.AddNewrs("挂号编号") = bhrs("医生编号") = Me.ttrs("编号") = Me.编号rs("就诊时间"

49、;) = Me.dtime rs("挂号类别") = Me.leibie rs("科室") = Me.keshirs("挂号费") = gfee rs.Updaters.Close集更新挂号要修改医生的挂号数量Set rs1 = New ADODB.RecordsetSet con = CurrentProject.Connectionsql2 = "select * from 医生 where 医生编号='" & Me.tt & "'"打开医生表rs1.Open

50、adCmdTextsql2,CurrentProject.AccessConnection,adOpenKeyset,adLockOptimistic,Set fie = rs1.Fields("挂号数量") fie = fie - 1rs1("挂号数量") = fie挂号数量-1集更新rs1.Updaters1.CloseMe.挂号表_子窗体.Visible = True End Sub5)“返回”按钮的设置同“显示挂号表_子窗体信息管理”窗体中的“返回”。6.“处方生成”窗体中的 VBA 及宏设置“处方生成”窗体的操作过程是:首先要通过挂号编号显示挂

51、号信息,以确认挂号的病人与出诊的医生。在窗体中将可供选择的药品以数据表的形式列出,医生可以通过在表格中单击选择药品,选中的药品将显示在下方的文本框中,同时默认的数量为 1;医生可根据需要进行修改。单击“添加”按钮将选中的药品及其相关信息保存至处方表, 每选择一次药品单击一次“添加”按钮,所有药品选择完成后的操作是:单击“刷新”按钮可以查看新生成的处方信息。单击“返回”按钮返回到主菜单。任务 22:处方生成窗体中 VBA 代码与宏的设置。操作步骤:挂号编号的确定。窗体运行时,将光标在挂号表中,单击“”按钮,将出1)现框。如图 9-40 所示。在这个“查找和替换”框中,查找内容输入要的挂号编号,这

52、里输入“30001003”,查找范围选择“请输入挂号编号”,匹配选择“字段任何部分”。图 9-40 查找挂号编号2)“窗体”中“药品名称”文本框单击的 VBA 代码。在“处方生成”窗体的设计视图中,选择“窗体”中的“药品名称”文本框,如图 9-41 所示。图 9-41 选中“ 在“药品名称”文本框的属性表【Private Sub 药品名称_Click()窗体”中“药品名称”文本框】选项卡中“单击”中输入如下代码:Form_处方生成.ypbh = Me.药品编号Form_处方生成.ypdj = Me.出库单价Form_处方生成.ypsl = 1End Sub说明:由于这里的操作对象是“窗体”的,

53、而赋值的对象是处方生成窗体的,因此在调用对象时要指明对象所属的窗体。使用 Me 是指定当前的窗体。语句:Form_处方生成.ypbh = Me.药品编号作用是:将当前窗体的“药品编号”文本框的值赋给处方生成窗体中名称是“ypbh”的文本框。这一小段程序代码可以粘贴到“窗体”中其他文本框的单击中,如“药品编号”文本框,这样在程序运行时,单击“药品编号”和“药品名称”产生的效果是相同的。3)“添加”按钮“单击”的代码如下:Private Sub Command29_Click() Dim strsql, sql2 As StringDim rs, rs1 As New ADODB.Recordset建立数据库连接Set rs = New ADODB.RecordsetSet con = CurrentProject.Connectionstrsql = "select * from 处方"rs.Open strsql, Current

温馨提示

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

评论

0/150

提交评论