




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、:1 系统的分析和设计1.1 功能分析本系统主要有如下几个功能:(1员工基本工资的设定。(2奖金以及福利补贴的设定。(3实发工资计算公式的调整。(4调整出勤统计结果计算本月各项实际金额。(5工资计算报表的输出。1.2 功能模块的设计根据上述的分析,可以将本系统分成几个功能模块,基本结构如图1 所示。 1.3 信息流程图的设计本系统的信息流程图如图2 所示。 图22 数据表的创建和设计使用Access 数据库管理系统建立应用系统,首先需要创建一个数据库。然后在该数据库中添加所需的表、查询、窗体、报表、宏等对象。2.1 数据库的创建首先,使用向导创建“工资管理系统”数据库,然后才进行表的设计。具体
2、步骤如下:(1启动Microsoft Access 2003,出现“Microsoft Access”数据库设计界面。(2单击工具栏上的新建按钮,出现“新建文件”任务窗格。(3在该任务窗格中选择项,系统弹出“模板”对话框。单击“常用”选项卡,然后选择其中的模板。(4单击“确定”按钮,这时出现要选择数据库的保存路径的对话框。在“文件名”右边的文本框里输入文件名为“工资管理系统”。(5单击“创建”按钮,就进入数据库窗口。至此,就创建了“工资管理系统”数据库。2.2 设计和建立数据表1. 数据表的逻辑结构设计根据上述的分析,本系统应该包括8 个数据表:Attendance_State 表、Perso
3、n 表、Department 表、Counter 表、Salary_Other 表、Fee 表、Salary_Set 表和Type 表。各数据表的逻辑结构设计如下:(1Attendance_State 表的逻辑结构设计如表1 所示。表1 Attendance_State 表的逻辑结构 (2Person 表的逻辑结构设计如表2 所示表2 Person 表的逻辑结构 (3Department 表的逻辑结构设计如表3 所示。表3 Department 表的逻辑结构 (4Counter 表的逻辑结构设计如表4 所示。表4 Counter 表的逻辑结构 (5Salary_Other 表的逻辑结构设计如表
4、5 所示。表5 Salary_Other 表的逻辑结构 (6Salary 表的逻辑结构设计如表6 所示。表6 Salary 表的逻辑结构 (7Fee 表的逻辑结构设计如表7 所示。表7 Fee 表的逻辑结构 (8Salary_Set 表的逻辑结构设计如表8 所示。表8 Salary_Set 表的逻辑结构 (9Type 表的逻辑结构设计如表9 所示。表9 Type 表的逻辑结构 2. 创建数据表设计好数据表的逻辑结构后,就可以在数据库里创建数据表,并按上述表的内容来设置表的属性。下面通过创建Attendance_Stat 表为例来说明创建的具体步骤:(1在数据库窗口中的对象选区中双击选项,系统进
5、入表的设计视图。(2在列的第一行中输入第一个字段名“ID”,在列表框中选择“自动编号”,在列的文本框输入“记录编号”,然后在下边的“字段属性”框中,在“字段大小”的文本框中将属性值改为“长整型”,结果如图3 所示。(3单击列的第二行,输入“Year_Month”作为第二个字段,在列表框中选择“文本”,在列表框输入“统计月份”,然后在下边的“字段属性”框中,在“字段大小”的文本框中将属性值改为“10”,在“必填字段”的文本框中选择“是”,在“允许空字符串”的文本框中输入“否”,如图4 所示。 (4在表设计视图中再分别输入表1 中的其他字段名,并设置相应的字段属性。(5选中“ID”字段行,然后单击
6、工具栏上的主键按钮,设置“ID”为主键,这时该行左方出现一个钥匙形图标,结果如图5 所示。(6单击工具栏上的保存按钮,系统弹出“另存为”对话框,输入表名为“Attendance_State”,然后单击“确定”按钮。(7关闭表设计视图,在“表”对象选区中双击打开“Attendance_State”表,这时可在字段名行下边的文本框中输入数据。输入数据后,就完成了这个表的设计,如图6 所示。 按照上述的步骤,再分别创建其他的数据表,并分别按照对应的表的内容设置各表的属性,设计结果分别如下:(1Person 表的设计,如图7 所示。 (2Department 表的设计,如图8 所示。 (3Counte
7、r 表的设计,如图9 所示 (4Salary_Other 表的设计,如图10 所示 (5Salary 表的设计,如图11 所示 (6Fee 表的设计,如图12 所示。 (7Salary_Set 表的设计,如图13 所示 (8Type 表的设计,如图14 所示 2.3 创建表间关系(1单击Access 2003 窗口上的菜单栏上的菜单,选择菜单项,或者直接单击工具栏上的关系按钮,系统弹出如图15 所示的“显示表”对话框和“关系”窗口。(2在“显示表”对话框中,分别双击要建立关系的表 Attendance_State 表、Person 表、Department 表、Salary 表、Salary_
8、Set 表、Salary_Other 表和Type 表,将这七个表添加到“关系”窗口中,然后单击“关闭”按钮,关闭“显示表”对话框。将各表的关系调整成一对多的布局。(3用鼠标从“Attendance_State”字段列表中选定“Person”字段,按住鼠标左键将其拖动到“Person”字段列表中的“ID”字段,然后放开鼠标左键,这时会出现“编辑关系”对话框,如图16 所示。 图16(4单击“创建”按钮,两个表间就建立了一个联系。(5用同样的方法创建其他表间的关系,结果如图17 所示。(6关闭“关系”窗口,这时屏幕上出现如图18 所示的提示框,这里单击“是”按钮,这样就创建了各个数据表间的关系了
9、。 图183 查询的设计对于数据库应用系统的普通用户来说,数据库是不可见的。用户要查看数据库中的数据都要通过查询操作,所以查询是数据库应用程序中非常重要的一个部分。查询可以对一个表进行简单的查询操作,还可以把多个表的数据连接在一起,进行整体的查询。本系统中使用了选择查询、删除查询、生成表查询、追加查询和更新查询。3.1 工资统计查询的设计用向导设计查询在实际中存在很多限制,这里使用查询设计视图来设计工资统计查询。具体的设计步骤如下:(1在数据库窗口中单击对象,然后双击项,这时系统弹出如图19 所示的“显示表”对话框和查询设计视图。 (2选择“Salary”项,然后单击“添加”按钮,将该表添加到
10、查询设计视图的上半部分。(3双击“Salary”字段列表中的所有字段,将所有字段都加到设计视图下半部分的单元格中去。(4单击工具栏上的保存按钮,在弹出的“另存为”对话框中输入“工资统计查询”,然后单击“确定”按钮。(5在“YearMonth”字段列下的“条件”行中,输入“forms!FrmSum!YearMonth”,如图20 所示。(6也可以用如图21 所示的SQL 视图来设计查询语句,得到同样的结果。(7运行该查询,系统出现如图22 所示的“输入参数值”对话框。 (8输入要查询的时间,单击“确定”后就可以查看结果了。3.2 固定福利查询的设计(1在数据库窗口中单击对象,然后双击项,在弹出的
11、“显示表”对话框中选择“Salary_Other”项,将该表添加到设计视图的上半部分。(2单击工具栏上的保存按钮,在弹出的“另存为”对话框中输入“固定福利查询”,然后单击“确定”按钮。(3双击字段列表中的“YearMonth”、“Person”、“Type”、“Name”、“Money”和“Description”字段,将这些字段都加到设计视图下半部分的单元格中。然后在“YearMonth”字段列下的“条件”和“或”行都中输入“forms!FrmMain!YearMonth”;在“Person”字段列下的“条件”和“或”行都中输入“forms!FrmMain!ID”;在“Type”字段列下的“
12、条件”行中输入“0”,在“或”行中输入“1”;在“Description”字段列下的“条件”和“或”行都中输入“固定”,如图23 所示。(4也可以根据如图24 所示的SQL 视图来设计查询语句 3.3 员工查询的设计(1在数据库窗口中单击对象,然后双击项,在弹出的“显示表”对话框中双击“Department”、“Person”和“Salary_Set”项,将这三个表添加到设计视图的上半部分。(2单击工具栏上的保存按钮,在弹出的“另存为”对话框中输入“员工查询”,然后单击“确定”按钮。(3要添加到设计视图下半部分的单元格的字段包括“ID”、“Perion_Name:Name”、“Gender”、
13、“Department”、“Address”、“Tel”、“State”、“Salary”和“Department_Name: Name”,然后在“Department”字段列下的“条件”行输入“forms!FrmMain!Department”,在“State”字段列下的“条件”行输入“T”,如图25 所示。(4也可以利用如图26 所示的SQL 视图来设计查询语句,得到相同的结果。 3.4 月度福利津贴查询的设计(1在数据库窗口中单击对象,然后双击项,在弹出的“显示表”对话框中双击“Salary_Other”项,将这个表添加到设计视图的上半部分。(2单击工具栏上的保存按钮,在弹出的“另存为”
14、对话框中输入“月度福利津贴查询”,然后单击“确定”按钮。(3双击字段列表中的“YearMonth”、“Person”、“Type”、“Name”、“Money”和“Description”字段,将这些字段都加到设计视图下半部分的单元格中。然后在“YearMonth”字段列下的“条件”和“或”行都中输入“forms!FrmMain!YearMonth”;在“Person”字段列下的“条件”和“或”行都中输入“forms!FrmMain!ID”;在“Type”字段列下的“条件”行中输入“0”,在“或”行中输入“1”;在“Description”字段列下的“条件”和“或”行都中输入“固定”,如图27
15、 所示。(4也可以利用如图28 所示的SQL 视图来设计查询语句 3.5 月度奖金查询的设计(1在数据库窗口中单击对象,然后双击项,在弹出的“显示表”对话框中双击“Salary_Other”项,将这个表添加到设计视图的上半部分。(2单击工具栏上的保存按钮,在弹出的“另存为”对话框中输入“月度奖金查询”,然后单击“确定”按钮。(3双击字段列表中的“YearMonth”、“Person”、“Type”、“Name”、“Money”和“Description”字段,将这些字段都加到设计视图下半部分的单元格中。然后在“YearMonth”字段列下的“条件”行中输入“forms!FrmMain!Year
16、Month ”;在“Person ”字段列下的“条件”行中输入“forms!FrmMain!ID”;在“Type”字段列下的“条件”行中输入“3”,如图29 所示。(4也可以利用如图30 所示的SQL 视图来设计查询语句,得到相同的结果。 3.6 月度扣发查询的设计(1在数据库窗口中单击对象,然后双击项,在弹出的“显示表”对话框中双击“Salary_Other”项,将这个表添加到设计视图的上半部分。(2单击工具栏上的保存按钮,在弹出的“另存为”对话框中输入“月度扣发查询”,然后单击“确定”按钮。(3双击字段列表中的“YearMonth”、“Person”、“Type”、“Name”、“Mone
17、y”和“Description”字段,将这些字段都加到设计视图下半部分的单元格中。然后在“YearMonth”字段列下的“条件”行中输入“forms!FrmMain!YearMonth ”;在“Person ”字段列下的“条件”行中输入“forms!FrmMain!ID”;在“Type”字段列下的“条件”行中输入“2”,如图31 所示。 (4也可以利用如图32 所示的SQL 视图来设计查询语句,得到同样的结果。 3.7 总查询的设计(1在数据库窗口中单击对象,然后双击项,在弹出的“显示表”对话框中双击“Person”、“Salary_Other”和“Salary_Set”表,将这三个表添加到设
18、计视图的上半部分。(2单击工具栏上的保存按钮,在弹出的“另存为”对话框中输入“总查询”,然后单击“确定”按钮。(3要添加到设计视图下半部分的单元格的字段包括“ID”、“Perion_Name:Name”、“Gender”、“Department”、“Address”、“Tel”、“State”、“Salary”、“YearMonth”、“Type”、“Salary_Other:Name”、“Salary”和“Description”,如图33 所示。 (4也可以利用如图34 所示的SQL 视图来设计查询语句,得到相同的结果。 3.8 系统操作查询的设计1. 删除查询删除查询功能可以从一个或多个
19、表中删除一组记录。使用删除查询,将删除整个记录,而不只是相应查询中所选择的字段。删除查询根据其所涉及的表及表之间的关系可以简单地划分为以下三种类型:(1删除一个表或一对一关系表中的记录。(2使用只包含一对多关系中“一”端的表的查询来删除多端表的记录。(3使用包含一对多关系中两端的表的查询来删除两端表的记录。如果运行级联删除,可以使用单一删除查询来删除单个表,一对一关系或一对多关系中的多个表记录。但是如果需要用“一”表来包含“多”表,为了添加准则,必须执行两次删除查询,因为一个查询不能同时从主表和相关表中删除记录。在查询设计视图中,可以通过查看两个表之间的连接区分一对多关系。如果连接中的一端标有
20、无限符号,在它是一对多关系。如果在连接的两端均标有1 的符号,在它是一对一的关系。从单个表或一对一关系表中删除记录的步骤如下。(1在数据库窗口中,单击对象然后双击项,在弹出的“显示表”对话框中单击“查询”选项卡,双击“员工查询”和“总查询”,然后单击“关闭”按钮关闭“显示表”对话框,这时这两个查询字段列表出现在设计视图的上半部分。(2单击项,然后选择命令,这时设计视图的下半部分出现了“删除”行,如图35 所示。 (3选择要从中删除记录的表,这里选择“总查询”中的“Gender”字段和“员工查询”中的“Department”字段,这时所选的字段下对应的“删除”行的单元格中显示“Where”。(4
21、在“Gender”字段列下的“条件”单元格中输入“男”,在“Department”字段列下的“条件”单元格中输入“002”,如图36 所示。 (5单击工具栏上的保存按钮,在弹出的“另存为”对话框中输入“删除查询”,然后单击“确定”按钮。(6如果要删除记录,单击工具栏上的运行按钮。(7如果要中止已运行的查询,可以按Ctrl+Break 组合键停止查询的执行。要使用只包含一对多关系中“一”端的表的查询来删除记录,可在一对多关系中利用“一”端的表上执行一个删除查询,让Access 2003 从“多”端的表中删除相关的记录。要使用该功能,必须使表间关系具有级联删除特性。此类型查询的创建与单表删除和一对
22、一表删除的操作步骤相同,只不过要建立的查询应该基于一对多关系的“一”方案。使用包含一对多关系中两端的表的查询来删除记录的步骤如下:(1新建包含要删除记录或设置条件的表的查询。(2在查询的设计视图窗口中,单击项,然后选择命令。(3在有关系的表中(在一对多关系的“多”端上,从字段列表将星号(*拖动到查询设计网格中。(4从主表中(一对多关系中“一”端的表上,将要设置条件的字段拖动到设计网格中。(5在已经拖到网格中的字段的“条件”单元格中,输入条件。(6如果要预览即将删除的记录,单击工具栏上的视图按钮。(7如果要删除一对多关系上“多”端表中的记录,单击工具栏的运行按钮。(8选择一对多关系“多”端上每个
23、表的字段列表,并且按Delete 键将它从查询中删除。(9如果只想在查询中和设计网格中设置条件的字段上保留主表,再次单击运行按钮。Access2003 将从一对多关系上的“一”端表中删除所指定的记录。2. 追加查询追加查询是从一个或多个表将一组记录追加到一个或多个表的尾部的查询。这样可以无需逐一输入每一个记录,大大地节约了数据输入的时间。使用追加查询从“Salary”表追加到“Salary_Ohter”表的步骤如下:(1在数据库窗口中,单击对象,然后双击项。(2在“显示表”对话框中单击“表”选项卡,双击“Salary”项,然后单击“关闭”按钮,关闭“显示表”对话框,这时这个表出现在设计视图的上
24、半部分。(3在查询的设计视图窗口中,单击,然后选择命令,这时系统会弹出“追加”对话框,如图37 所示。 (4单击“表名称”下拉列表框右边的,在弹出的下拉列表框中选择要追加记录的表名称,该表将接收源表中的记录。如果该表在当前打开的数据库中,则单击“当前数据库”,或单击“另一数据库”并输入存放在这个表的数据库名,必要时输入路径。这里选择“当前数据库”,在“表名称”的下拉列表框中选择“Salary_Other”,如图38 所示。 (5单击“确定”按钮,退出“追加”对话框,回到查询设计视图。(6从字段列表中选择将要追加的字段和想要用来设置条件的字段,将这些字段都添加到设计网格中。如果它有“字段编号”的
25、设计类型,在可以增加或不增加主键。如果两个表中所有的字段都具有相同的名称,可以只将星号“*”拖动到查询设计网格中。但是,如果用户正在数据库副本上工作,则必须追加到所有的字段。(7如果已经选择了相同名称的字段,Access 2003 将自动在“追加到”行中填上相同的名称。如果在两个表中并没有相同名称的字段,在“追加到”行中将输入所要追加到表中字段名称。这里选择“ID”、“YearMonth”、“Person”和“Basic”字段,如图39 所示。(8在已经拖动到设计网格中的字段的“条件”单元格中输入用于生成追加内容的条件。这里不添加条件。(9要预览即将添加的查询,单击工具栏上的视图按钮,系统会出
26、现如图40 所示的查询结果。 (10要实现追加记录,单击工具栏上的运行按钮,系统会弹出如图41 所示的对话框。 (11单击“是”,就会实现追加查询了。(12单击工具栏上的保存按钮,在弹出的“另存为”对话框中输入“Salary_Ohter 追加查询”,然后单击“确定”按钮。3. 生成表查询生成表查询可以将查询结果保存在表中,然后提供该表给利用此查询结果的人,这样就将查询结果由动态数据转化利用生成表查询结果的新建表。这里使用Person 表来生成一个只包含简单信息的Simple_Person 表。具体步骤如下:(1在数据库窗口中单击对象,然后双击项。(2在“显示表”对话框中单击“表”选项卡,双击“
27、Person”项,然后单击“关闭”按钮,关闭“显示表”对话框,这时这个表出现在设计视图的上半部分。(3在查询的设计视图窗口中,单击,然后选择命令,这时系统会弹出“生成表”对话框,如图42 所示。(4在右边的下拉列表框中输入所生成新建的表名为“Simple_Person”,在下边选择“当前数据库”,将新表放入打开的数据库,如图43 所示。如果选择“另一个数据库”并输入要放入新表的数据库名,必要时输入路径。 (5单击“确定”按钮,关闭“生成表”对话框,返回到查询设计视图。(6从字段列表将要包含的新表中的字段拖动到设计网格中。这里选择“ID”、“Name”、“Birthday”、“Address”和
28、“Tel”,如图44 所示。 (7对于拖动到设计网格中的字段,在“条件”单元格里输入条件。这里选择不添加条件。(8单击工具栏上的保存按钮,在弹出的“另存为”对话框中输入“Person 生成表查询”,然后单击“确定”按钮。(9要实现该生成表查询,单击工具栏上的运行按钮,系统会弹出如图45 所示的对话框。 (10单击“是”按钮,“Simple_Person”表就出现在数据库窗口的对象选区中,如图46 所示。(11运行该表,结果如图47 所示。 4. 更新查询除了上述的几个查询外,还可以通过建立更新查询来更新某个表。这里利用更新查询将Salary 表更新为基本工资“Basic”大于2200 元的表。
29、创建更新查询的步骤如下:_(1在数据库窗口中单击对象,然后双击项。(2在“显示表”对话框中单击“表”选项卡,选择“Salary”项,单击“添加”按钮,将“Salary”表添加到设计视图的上半部分,然后单击“关闭”按钮,关闭“显示表”对话框。(3在查询的设计视图窗口中,单击,然后选择命令,这时的查询设计视图如图48 所示。 (4从字段列表中将要更新或指定准则的字段拖动到查询设计网格中,这里选择添加字段列表中的所有字段。(5在“条件”单元格中输入指定的条件。这里在对应“Basic”字段列下的“条件”单元格中输入“>2200”。(6在要更新字段的“更新到”单元格中,输入用来改变这个字段的表达式
30、或数值。这里在每个已经选定的字段的“更新到”单元格中都输入“Salary”,结果如图49 所示。(7单击工具栏上的保存按钮,在弹出的“另存为”对话框中输入“Salary 更新查询”,然后单击“确定”按钮。(8单击工具栏上的运行按钮,系统则会弹出如图50 所示的对话框。 (9单击“是”按钮,重新打开“Salary”表,结果如图51 所示。 4 窗体的设计本系统中涉及到多个窗体,下面将会逐一介绍这些窗体的设计步骤。4.1 计算公式窗体的设计1. 窗体的设计这个窗体是用于对员工的实发工资计算公式进行设置。具体的设计步骤如下:(1在数据库窗口中单击对象,然后双击项,这时系统会弹出“窗体向导”的第一个对
31、话框。在下边的下拉列表框中选择“表: Fee”,然后单击按钮,把所有字段选入“选定字段”列表中,如图52 所示。(2单击“下一步”按钮,屏幕上出现“窗体向导”的第二个对话框,这里选择“纵栏表”单选项,如图53 所示。 (3单击“下一步”按钮,屏幕上出现“窗体向导”的第三个对话框,要求确定所使用的样式,这里选择“远征”样式,如图54 所示。(4单击“下一步”按钮,屏幕上出现“窗体向导”的最后一个对话框,要求为创建的窗体指定标题,这里输入“FrmFormula”,并选择“修改窗体设计”单选按钮,如图55 所示。图54 图55 (5单击“完成”按钮,进入“FrmFormula”窗体的设计视图,如图5
32、6 所示。 (6选择标签控件,修改每个标签控件的标题,如图57 所示。 (7调整“主体”区的大小,在控件向导按钮浮起的情况下,使用为窗体添加6 个标签,具体的属性设置如表10 所示。表10 标签控件属性 (8调整各个控件的大小和位置,结果如图58 所示。 (9在控件向导按钮浮起的情况下,使用为窗体添加三个命令按钮,具体的属性设置如表11 所示。表11 命令按钮控件属性 (10调整命令按钮的大小和位置,结果如图59 所示。 (11双击窗体设计视图左上角的窗体选择器,这时会弹出“窗体”属性对话框,按表12 所示设置窗体的属性。表12 窗体属性 (12单击工具栏上的按钮,预览该窗体,结果如图60 所
33、示。 (2. 编写代码在窗体设计视图所在的窗口中单击工具栏上的按钮,这时系统弹出Microsoft Visual Basic 编辑器。在代码窗口中,输入如下代码:Option Compare DatabaseOption ExplicitPrivate Sub cmdSave_Click(On Error GoTo Err_cmdSave_ClickDoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70Exit_cmdSave_Click:Exit SubErr_cmdSave_Click:MsgBox Er
34、r.DescriptionResume Exit_cmdSave_ClickEnd SubPrivate Sub cmdReset_Click(Me.OverTime = 150Me.Errand = 100Me.Late = 10Me.Absent = 50End SubPrivate Sub cmdClose_Click(On Error GoTo Err_cmdClose_ClickDoCmd.CloseExit_cmdClose_Click:Exit SubErr_cmdClose_Click:MsgBox Err.DescriptionResume Exit_cmdClose_Cli
35、ckEnd Sub4.2 子窗体的设计这个系统需要几个子窗体,用来显示相关的查询结果。1. 员工列表子窗体的设计(1在数据库窗口中单击对象,然后双击项,这时系统会弹出“窗体向导”的第一个对话框。在下边的下拉列表框中选择“查询: 员工查询”,然后把“ID ”、“Person_Name”、“Gender”、“Department”、“Address”、“Tel”和“Department_Name”字段添加到“选定的字段”列表中。(2单击“下一步”按钮,屏幕上出现“窗体向导”的第二个对话框,这里选择“表格”单选项。(3单击“下一步”按钮,屏幕上出现“窗体向导”的第三个对话框,要求确定所使用的样式,这
36、里选择“远征”样式。(4单击“下一步”按钮,屏幕上出现“窗体向导”的最后一个对话框,要求为创建的窗体指定标题,这里输入“员工列表子窗体”,并选择“修改窗体设计”。(5单击“完成”按钮,进入“员工列表子窗体”窗体设计视图,如图61 所示。(6按表13 所示修改设计视图。 (7调整各个控件的大小和位置,结果如图62 所示。 (8双击窗体设计视图左上角的窗体选择器,(9运行该窗体,结果如图64 所示。 2. 固定津贴子窗体的设计(1在数据库窗口中单击对象,然后双击项,在系统弹出的“窗体向导”的第一个对话框中,在下边的下拉列表框中选择“查询:固定福利查询”,然后把“Name”和“Money”字段添加到
37、“选定的字段”列表中。(2单击“下一步”按钮,选择的布局和样式跟前面创建的子窗体相同,即选择“表格”布局和“远征”样式。(3在“窗体向导”的最后一个对话框中输入“固定津贴子窗体”,并选择“修改窗体设计”。(4单击“完成”按钮,进入“固定津贴子窗体”的窗体设计视图,如图65 所示。(5按前面的方法修改设计视图,并调整各个控件的大小和位置,结果如图66 所示 (6按图67 所示设置该子窗体的属性。(7运行该窗体,结果如图68 所示。 3. 月度奖金子窗体的设计(1在数据库窗口中单击对象,然后双击项,在系统弹出的“窗体向导”的第一个对话框中,在下边的下拉列表框中选择“查询: 月度奖金查询”,然后把“
38、Name”和“Money”字段添加到“选定的字段”列表中。(2单击“下一步”按钮,选择的布局和样式跟前面创建的子窗体相同,即选择“表格”和“远征”。(3在“窗体向导”的最后一个对话框中输入“月度奖金子窗体”,并选择“修改窗体设计”。(4单击“完成”按钮,进入“月度奖金子窗体”的窗体设计视图,如图69 所示。 (5按前面的方法修改设计视图,并调整各个控件的大小和位置,结果如图70 所示。(6这个子窗体的属性设置与前面相同,运行该窗体,结果如图71 所示。图70 图71(7因为使用鼠标双击员工记录的时候,系统要自动添加员工信息,所以需要添加代码,完成此功能。在设计视图所在的窗口中,单击工具栏上的按
39、钮,在弹出的代码窗口中输入如下代码: Option Compare DatabaseOption ExplicitPrivate Sub 主体_DblClick(Cancel As IntegerForm_FrmMain.ID = Me.IDForm_FrmMain.Person_Name = Me.Person_NameForm_FrmMain.DepartmentName = Me.Department_NameForm_FrmMain.Salary = Me.SalaryEnd Sub4. 月度福利津贴子窗体的设计(1在数据库窗口中单击对象,然后双击项,在系统弹出的“窗体向导”的第一个对
40、话框中,在下边的下拉列表框中选择“查询: 月度福利津贴查询”,然后把“Name”和“Money”字段添加到“选定的字段”列表中。(2单击“下一步”按钮,选择的布局和样式跟前面创建的子窗体相同,即选择“表格”布局和“远征”样式。(3在“窗体向导”的最后一个对话框中输入“月度福利津贴子窗体”,并选择“修改窗体设计”。(4单击“完成”按钮,进入“月度福利津贴子窗体”的窗体设计视图,如图72 所示。(5按前面的方法修改设计视图,并调整各个控件的大小和位置,结果如图73 所示。 (6这个子窗体的属性设置与前面相同,5. 月度扣发子窗体的设计(1在数据库窗口中单击对象,然后双击项,在系统弹出的“窗体向导”
41、的第一个对话框中,在下边的下拉列表框中选择“查询: 月度扣发查询”,然后把“Name”和“Money”字段添加到“选定的字段”列表中。(2单击“下一步”按钮,本窗体的布局和样式跟前面创建的子窗体相同,即选择“表格”和“远征”。(3在“窗体向导”的最后一个对话框中输入“月度扣发子窗体”,并选择“修改窗体设计”。(4单击“完成”按钮,进入“月度扣发子窗体”的窗体设计视图,如图75 所示。 (5按前面的方法修改设计视图,并调整各个控件的大小和位置,结果如图76 所示。(6这个子窗体的属性设置与前面相同,运行该窗体,结果如图77 所示。 4.3 添加查询窗体.1. 窗体的设计这个窗体是这个系统的主要窗
42、体之一,在这个窗体中可以进行添加和查询操作。这里先用简单向导来创建该窗体,然后在设计视图上进行修改、完善。具体的设计步骤如下:(1在数据库窗口中单击对象,然后双击项,这时系统会弹出“窗体向导”的第一个对话框。在下边的下拉列表框中选择“查询: 总查询”,然后选择按钮,把所有字段选入“选定的字段”列表框中。(2单击“下一步”按钮,屏幕上出现“窗体向导”的第二个对话框,这里选择“纵栏表”单选按钮。(3单击“下一步”按钮,屏幕上出现“窗体向导”的第三个对话框,要求确定所使用的样式,这里选择“宣纸”样式。(4单击“下一步”按钮,屏幕上出现“窗体向导”的最后一个对话框,要求为创建的窗体指定标题,这里输入“
43、FrmMain”,并选择“修改窗体设计”。(5单击“完成”按钮,进入FrmMain 窗体的设计视图,如图78 所示。 (6因为这个窗体主要是用来和子窗体连接的,生成的文本框不需要绑定数据,这样就可以把所有的文本框都取消绑定。方法是选择文本框,然后单击鼠标右键在弹出的快捷菜单中选择命令,或者直接单击工具栏上的按钮,就会弹出文本框的属性对话框。单击“数据”选项卡,然后清除“控件来源”文本框中的内容,如图79 所示。 (7把不需要显示的控件全部删除,然后按表14 所示的内容修改剩下的文本框标签的标题。表14 标签控件属性 (8调整各个控件的位置和大小,结果如图80 所示。 (9调整“主体”区的大小。
44、(10在按钮浮起的情况下,使用按钮添加两个选项组。第一个选项组的标签标题为“基本信息:”,里面包含的文本框有“员工编号”、“员工姓名”、“部门名称”和“基本工资”。第二个选项组的标签标题为“添加奖金、福利、津贴和扣发项:”,里面包含的内容有“年月”、“名目”、“名称”、“金额”和“具体说明”,结果如图81 所示。 (11在按钮弹起的情况下,使用按钮添加两个命令按钮,具体属性设置如表15 所示。表15 命令按钮控件属性 (12调整各个控件的大小和位置,结果如图82 所示。(13在按钮按下的情况下,使用按钮添加一个组合框。方法是:删除原来的“名目”文本框。单击工具箱上的按钮,然后单击设计视图要添加
45、组合框的位置,这时系统会出现“组合框向导”的第一个对话框,这里选择项,如图83 所示。单击“下一步”按钮,系统出现“组合框向导”的第二个对话框,要求确定为组合框提供数据的表或查询,这里选择“表:Type”,如图84 所示。单击“下一步”按钮,系统出现“组合框向导”的第三个对话框。在“可用字段”下选择“Description”,然后单击按钮使这个字段出现在“选定字段”框中,单击“下一步”按钮,系统出现“组合框向导”的第四个对话框。要求确定列表使用的排列次序,这里选择“Code”作“升序”排序,如图86 所示。单击“下一步”按钮,系统出现“组合框向导”的第五个对话框,87单击“下一步”按钮,系统出
46、现“组合框向导”的第六个对话框,这里选择选项,如图88 所示。单击“下一步”按钮,系统出现“组合框向导”的最后一个对话框,要求知道标签的标题,这里输入“名目”单击“完成”按钮,则该组合框就会出现在设计视图中。(14选中这个组合框,然后单击工具栏上的按钮,这时会弹出组合框的属性对话框,单击“全部”选项卡,然后将“名称”改为“TypeName”,如图90 所示。(15调整该组合框的大小和位置,结果如图91 所示。图90 图91 (16使用按钮为窗体添加五个子窗体,包括“员工列表”、“固定津贴”、“月度奖金”、“月度福利津贴”和“月度扣发”。下面以添加“员工列表”子窗体为例说明添加子窗体的步骤。单击
47、工具箱中的按钮,然后单击设计视图上要添加子窗体的位置,这时系统会弹出“子窗体向导”的第一个对话框,选择,然后选择“员工列表子窗体”,如图92 所示。单击“下一步”按钮,进入“子窗体向导”的第二个对话框,选择“自行定义”项,然后在中选择“Department”,在中选择“Department”,如图93 所示。这样就把两个窗体通过主窗体的“Department”字段和子窗体的“Department”字段链接到一起了。 单击“下一步”按钮,出现“子窗体向导”的最后一个对话框,输入子窗体的名称为“员工列表”,如图94 所示。单击“完成”按钮。以同样的方法添加其他几个子窗体,不同的是子窗体的数据来源,
48、主、子窗体连接的字段和窗体的命名。这几个子窗体的设置分别如下:固定津贴:数据来源是“固定津贴子窗体”,主、子窗体的链接字段是“ID”和“Person”。月度奖金:数据来源是“月度奖金子窗体”,主、子窗体的链接字段是“ID”和“Person”。月度福利津贴:数据来源是“月度福利津贴子窗体”,主、子窗体的链接字段是“ID”和“Person”。月度扣发:数据来源是“月度扣发子窗体”,主、子窗体的链接字段是“ID”和“Person”。(17调整各个子窗体的大小和位置,(18双击设计视图左上角的窗体选择器,然后按图96 所示设置该窗体的属性。2. 编写代码鼠标右键单击任意一个命令按钮,在弹出的快捷菜单中
49、选择命令,这时系统会弹出“选择生成器”对话框,然后选择“代码生成器”项。单击“确定”按钮,这时系统会弹出Microsoft Visual Basic 代码编辑器。在代码窗口输入如下代码:Option Compare DatabaseOption ExplicitPrivate Sub cmdAddAll_Click(Dim str As StringDim rs As New ADODB.RecordsetDim rsNew As New ADODB.Recordsetstr = "select ID from Person where Department ='"
50、 & Me.Department & "'"Set rs = GetRS(strstr = "select * from Salary_Other"Set rsNew = GetRS(strWhile Not rs.EOFWith rsNew '添加记录.AddNew!YearMonth = Me.YearMonth!Person = rs(0!Type = Me.TypeName!Name = Me.OtherName!Money = Me.Money!Description = Me.Description.Updat
51、eEnd Withrs.MoveNextWendrsNew.Closers.CloseEnd SubPrivate Sub cmdAddOne_Click(Dim str As StringDim rs As New ADODB.Recordsetstr = "select * from Salary_Other"Set rs = GetRS(strWith rs '添加记录.AddNew!YearMonth = Me.YearMonth!Person = Me.ID!Type = Me.TypeName!Name = Me.OtherName!Money = Me
52、.Money!Description = Me.Description.UpdateEnd Withrs.CloseEnd Sub4.4 显示统计结果窗体的设计(1在数据库窗口中单击对象,然后双击项,这时系统会弹出“窗体向导”的第一个对话框。在下边的下拉列表框中选择“查询: 工资统计查询”,然后选择按钮,把所有字段选入“选定的字段”列表框中。(2单击“下一步”按钮,在“窗体向导”的第二个对话框中选择“表格”项。(3单击“下一步”按钮,进入“窗体向导”的第三个对话框,这里选择“远征”样式。(4单击“下一步”按钮,进入到“窗体向导”的最后一个对话框,这里输入窗体的名称为“工资统计结果”,并选择“修
53、改窗体设计”。(5单击“完成”按钮,进入该窗体的设计视图,如图97 所示。(6修改窗体设计视图,并适当调整各个控件的大小和位置,结果如图98 所示。图97 图98 (7双击设计视图左上角的窗体选择器,然后按图99 所示设置该窗体的属性。 (8运行该窗体,结果如图100 所示。 4.5 统计月度工资窗体的设计1. 设计窗体这个窗体用于统计员工的月度总工资。具体的设计步骤如下:(1在数据库窗口中单击对象,单击按钮,这时系统会弹出“新建窗体”对话框,选择“设计视图”,下边不选择任何的表或者查询作为数据源。(2单击“确定”按钮,这时系统会出现窗体设计视图。(3单击工具栏上的保存按钮,在弹出的“另存为”
54、对话框中输入“FrmSum”。然后单击“确定”按钮。(4调整设计视图中“主体”区的大小。(5单击工具栏上的按钮,这时会弹出“自动套用格式”对话框,选择“远征”格式,如图101 所示,然后单击“确定”按钮。 (6在控件向导按钮浮起的情况下,使用按钮为窗体添加一个文本框,按表16 所示设置该文本框属性。表16 文本框控件属性 (7在控件向导按钮浮起的情况下,使用按钮为窗体添加一个命令按钮,并按表17 所示设置其属性。表17 命令按钮控件属性 (8调整各个控件的大小和位置,结果如图102 所示。(9双击设计视图左上角的窗体选择器,然后按图103 所示设置该窗体的属性。 (10运行该窗体,结果如图10
55、4 所示。2. 编写代码在窗体设计视图中,鼠标右键单击“统计月度工资”命令按钮,在弹出的快捷菜单中选择命令,这时系统会弹出“选择生成器”对话框,然后选择“代码生成器”项,如图105所示。 单击“确定”按钮,这时系统会弹出Microsoft Visual Basic 代码编辑器。在代码窗口输入如下代码:Option Compare DatabaseOption ExplicitPrivate Sub cmdSum_Click(Dim rs As New ADODB.RecordsetDim str As StringDim rsNew As New ADODB.RecordsetDim rsPe
56、rson As New ADODB.RecordsetDim rsSalary As New ADODB.RecordsetDim rs1 As New ADODB.RecordsetDim rsFlag As New ADODB.Recordsetstr = "select * from Salary where YearMonth='" & Me.YearMonth & "'"Set rsFlag = GetRS(strIf rsFlag.RecordCount > 0 ThenMsgBox ("已经存
57、在记录!"Elsestr = "select ID from Person"Set rsPerson = GetRS(strWhile Not rsPerson.EOFstr = "select * from Attendance_State where Person='" & rsPerson(0 & "' and_ Year_Month='" & Me.YearMonth & "'"Set rs = GetRS(strstr = "select Salary from Salary_Set where Person='" & rsPerson(0 & "'"Set rsSalary = GetRS(strstr = "select
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 输液反应处理及护理措施
- 健康饮料线上挑战赛与实施创新创业项目商业计划书
- 2025年广安安农发展集团有限公司招聘考试笔试试题(含答案)
- 编程小达人乐园创新创业项目商业计划书
- 保温杯套装创新创业项目商业计划书
- 含油果环保包装材料创新创业项目商业计划书
- 汽车车载导航精准设计创新创业项目商业计划书
- 虚拟现实艺术创作工具创新创业项目商业计划书
- 2025年电商平台售后服务创新模式与客户体验提升研究
- 2025年汽车轻量化材料在汽车轻量化车身制造中的创新应用报告
- 中国儿童维生素A、维生素D临床应用专家共识(2024)解读课件
- 中医院医疗业务科室综合目标考核方案
- 防爆知识培训教学课件
- 食品工业生产流程规范
- 衡阳市物业服务收费管理实施细则
- 血透护理文书书写规范
- 八年级语文上册第一单元整体教学设计
- 中医护理在疼痛中的应用
- GB/T 44977-2024卫星导航定位基准站网终端定位服务安全技术规范
- 物业管理的风险管控
- 人教PEP版五年级上册英语全册教案(6个单元整体教学设计)
评论
0/150
提交评论