Access在人事管理中的应用(PPT148页)

上传人:公**** 文档编号:569396715 上传时间:2024-07-29 格式:PPT 页数:149 大小:7.56MB
返回 下载 相关 举报
Access在人事管理中的应用(PPT148页)_第1页
第1页 / 共149页
Access在人事管理中的应用(PPT148页)_第2页
第2页 / 共149页
Access在人事管理中的应用(PPT148页)_第3页
第3页 / 共149页
Access在人事管理中的应用(PPT148页)_第4页
第4页 / 共149页
Access在人事管理中的应用(PPT148页)_第5页
第5页 / 共149页
点击查看更多>>
资源描述

《Access在人事管理中的应用(PPT148页)》由会员分享,可在线阅读,更多相关《Access在人事管理中的应用(PPT148页)(149页珍藏版)》请在金锄头文库上搜索。

1、第11章Access在人事管理中的应用本章学习要点l系统的功能设计l系统的模块设计l表的字段设计l表关系的建立l查询的设计l窗体的创建l报表的创建l宏命令和VBA代码的创建l系统的调试l系统的运行与应用 11.1 实 例 导 航 l系统功能目标 l开发要点 11.1.1 系统功能目标 l该系统有以下主要功能。新员工登记和员工资料的修改。包括新员工个人资料的详细输入、员工号的分配和相关人事信息的保存;还包括对现有员工的工作资料进行创建和修改。人事变更记录。通过该功能,实现对员工工作职位变化的跟踪和记录等。员工薪资情况查询。通过该功能,实现对员工薪金发放情况的查询,并且能够按照各种福利薪金的类别,

2、打印出个人薪资报表。员工考勤情况查询。通过该功能,实现对员工考勤情况的查询等,从而为薪金的计算提供参考依据等。报表管理。通过该功能,实现报表的生成和查看。报表又分为两部分,一个是对员工工资发放情况进行记录,另一个是对员工的考勤情况进行记录。其他统计查询。允许管理者按各个部门、级别、员工类型、学历、职位、性别等员工信息进行统计,从而帮助人事部(或人力资源部门)进行人事结构分析、年龄工龄结构分析等。11.1.2 开发要点 l理解数据表的结构,掌握各数据表之间的关系,熟悉查询和窗体的设计,比较清楚地了解人事管理流程,从而开发出完整的人事管理系统。本章的主要目的,就是想通过建立一个完整的人事管理系统,

3、介绍完整的数据库管理系统开发的一般流程。 11.2 系统需求分析与设计 l需求分析 l模块设计 11.2.1 需求分析 l需求主要有以下几点。 人事管理系统首先应该能够对企业当前的人事状况进行记录。包括企业和员工的劳动关系、员工的就职部门、主要工作职责、上级经理等。其次,系统应该能够对企业员工的人事变更情况进行记录,并据此可以灵活修改工作职责等各种人事状况信息。再次,系统应该能够根据需要进行各种统计和查询,比如查询员工的年龄、学历等,以便给人力管理部门进行决策参考。最后,系统还应该对求职者信息进行相应的管理,能够发掘合适的人才,加盟该公司。 11.2.2 模块设计 l企业人事管理系统功能模块可

4、以由五个部分组成,每一部分根据实际应用又包含不同的功能。 系统登录模块:在数据库系统中设置系统登录模块,是维持系统安全性的最简单方法。在任何一个数据库系统中,该模块都是必需的。员工人事登记模块:通过该模块,实现对新员工记录的输入和现有员工记录的修改。员工人事记录模块:通过该模块,实现对员工人事变动的记录和查看管理。统计查询模块、通过该模块,对企业当前员工的人事信息进行查询,比如薪资查询、考勤情况查询、学历查询、年龄查询等。报表生成模块:通过该模块,根据用户的需求和查询结果生产相应的报表。招聘管理模块:通过该模块,主要对求职者的信息进行保存和查询,以方便招聘活动的进行,发掘企业的有用之材。 11

5、.3 数据库的结构设计 l数据表结构需求分析 l构造空数据库系统 l数据表字段结构设计 l数据表的表关系设计 11.3.1 数据表结构需求分析 l在该“人事管理系统”中,我们初步设计17张数据表,各个表存储的信息如下所示。 “Switchboard Items”表:主要存放主切换面板和报表面板的显示信息。“管理员”表:存放系统管理人员(一般是企业的人事部人员)的登记信息等。“员工信息”表:存储现有员工的个人基本信息,比如姓名、性别、出生日期、所属级别等。“部门信息”表:主要存储公司各个部门的信息,比如部门编号、名称、部门经理等。“人事变更记录”表:存储员工职位变更信息,记录员工的原职位和现职位

6、。“班次配置”表:记录员工的上班班次信息。“出勤记录”表:记录所有员工每天的出勤记录。“出勤配置”表:记录员工的出勤的信息。11.3.1 数据表结构需求分析 “级别工资配置”表:记录员工所处工资级别的具体信息。“加班记录”表:记录员工的加班记录,以用于工资的核算。“企业工资发放记录”表:企业的工资财务记录,保存已经核发工资的员工具体内容。“企业工资计算规则”表:保存企业内部工资计算规则。“职位津贴配置”表:保存企业内部关于津贴的具体信息。“缺勤记录”表:记录所有员工的缺勤信息。“月度出勤汇总”表:保存企业员工每月的出勤信息汇总。“签到记录”表:记录员工的签到信息。“签出记录”表:如果员工需要签

7、出时,使用该表登记在册。 11.3.2 构造空数据库系统 l新建一个“人事管理系统.accdb”空白数据库。 第一步:启动Access 2007。单击屏幕最左上角的Office徽标,在弹出的Office功能菜单中选择【新建】命令;也可以直接双击屏幕中间的【空白数据库】按钮,新建一个数据库,如下图所示。 第二步:在屏幕右下方的【文件名】文本框中输入“人事管理系统”,如下图所示。 单击单击此此处处,新,新建一个空数据建一个空数据库库。单击文本框右边的文件夹按钮,更改数据库的存放位置,如下图所示。 在在这这里里输输入您想入您想要的文件名。要的文件名。11.3.2 构造空数据库系统 l新建一个“人事管

8、理系统.accdb”空白数据库。 第三步:单击【创建】按钮,完成新建一个空白数据库,系统自动创建一个空白数据表,如下图所示。 11.3.3 数据表字段结构设计 lSwitchboard Items”表 在“人事管理系统.accdb”数据库中创建“Switchboard Items”表。 第一步:创建的“人事管理系统.accdb”数据库中自动创建了“表1”数据表,单击【数据表】选项卡下的【视图】按钮,如下图所示。 第二步:在弹出的【另存为】对话框的【表名称】文本框中输入“Switchboard Items”,如下图所示。 单击【确定】按钮,进入表的【设计视图】,如下图所示。 11.3.3 数据表

9、字段结构设计 lSwitchboard Items”表 在“人事管理系统.accdb”数据库中创建“Switchboard Items”表。 第三步:在“Switchboard Items”表的【设计视图】中进行表字段的设计。各个字段的名称、数据类型等如下表所示。 第四步:输入并设置各个字段以后,表的【设计视图】如下图所示。 列 名数据类型字段宽度主 键SwitchboardID数字长整型是ItemNumber数字长整型是ItemText文本255否Command数字长整型否Argument文本255否第五步:单击屏幕左上角的【保存】按钮,保存该表。单击【视图】按钮,进入表的【数据表视图】。

10、11.3.3 数据表字段结构设计 l“管理员”表“管理员”表中存放的是该系统管理人员的信息。 “管理员”表的字段结构如下表。 字 段 名数据类型字段宽度是否主键员工编号文本9是用户名文本18否密码文本18否11.3.3 数据表字段结构设计 l“员工信息”表 “员工信息”表中存储企业员工的个人信息,比如员工编号、姓名、性别等。 字 段 名数据类型字段宽度是否主键员工编号文本9是姓名文本18否性别文本是/否否部门编号文本2否职位文本18否学历文本6否毕业院校文本255否专业文本255否家庭住址文本255否电话文本18否状态文本1否备注文本255否基本工资级别编号文本6否岗位津贴级别编号文本6否11

11、.3.3 数据表字段结构设计l“部门信息”表 “部门信息”表存储公司中各个部门的信息,比如部门编号、名称、部门经理等。 “部门信息”表的字段结构如下表。 字 段 名数据类型字段宽度是否主键编号文本2是名称文本18否经理文体9否备注文本255否11.3.3 数据表字段结构设计l“人事变更记录”表 “人事变更记录”表是存储员工职位变更信息的表,它记录了员工的原职位和现职位。 字 段 名数据类型字段宽度是否主键记录编号自动编号是员工编号文本9否原职位文本18否现职位文本18否登记时间日期/时间否备注文本255否“人事变更记录”表的字段结构如下表。 11.3.3 数据表字段结构设计l“班次配置”表 “

12、班次配置”表用于记录员工的上班班次信息。如“上午班”的“班次开始时间”、“班次结束时间”等。 “班次配置”表的字段结构如下表。 字 段 名数据类型字段宽度是否主键班次编号文本2是名称文本18否班次开始时间日期/时间否班次结束时间日期/时间否备注文本25511.3.3 数据表字段结构设计l“出勤记录”表 “出勤记录”表用于记录所有员工每天的出勤记录。 “出勤记录”表的字段结构如下表。 字 段 名数据类型字段宽度是否主键记录号自动编号是日期日期/时间否员工编号文本9否出勤配置编号数字长整型否11.3.3 数据表字段结构设计l“出勤配置”表 “出勤配置”表用于记录员工的出勤信息。 “出勤配置”表的字

13、段结构如下表。 字 段 名数据类型字段宽度是否主键出勤配置编号数字长整型是出勤说明文本255否11.3.3 数据表字段结构设计l“级别工资配置”表“级别工资配置”表用于记录员工所处工资级别的具体信息。 “级别工资配置”表的字段结构如下表。 字 段 名数据类型字段宽度是否主键级别工资编号文本6是名称文本18否金额数字单精度型否备注文本255否11.3.3 数据表字段结构设计l“加班记录”表 “加班记录”表用于记录员工的加班记录,以用于工资的核算。 “加班记录”表的字段结构如下表。 字 段 名数据类型字段宽度是否主键加班日期日期/时间是员工编号文本9是加班开始时间日期/时间否加班结束时间日期/时间

14、否持续时间数字长整型否11.3.3 数据表字段结构设计l“企业工资发放记录”表 “企业工资发放记录”表是企业的工资财务记录,保存着已经核发工资的员工具体内容 。“企业工资发放记录”表逻辑结构设计如下表。 字 段 名数据类型字段宽度是否主键记录编号自动编号是年份数字长整型否月份数字长整型否日期日期/时间否员工编号文本9否基本工资数额数字单精度型否岗位津贴数额数字单精度型否加班补贴数额数字单精度型否出差补贴数额数字单精度型否违纪扣除数额数字单精度型否实际应发数额数字单精度型否备注文本255否11.3.3 数据表字段结构设计l企业工资计算规则”表 “企业工资计算规则”表保存着企业内部的工资计算规则。

15、“企业工资计算规则”逻辑结构设计如下表。 字 段 名数据类型字段宽度是否主键加班补贴数字单精度型否出差补贴数字单精度型否迟到/早退扣除数字单精度型否缺席扣除数字单精度型否11.3.3 数据表字段结构设计l“签出记录”表 如果员工需要签出时,则使用该表登记在册,其逻辑结构设计如下表。 字 段 名数据类型字段宽度是否主键日期日期/时间单精度型是员工编号文本9是班次编号文本2否签出时间日期/时间否备注文本255否11.3.3 数据表字段结构设计l“签到记录”表 签到时,使用“签到记录”表登记,其逻辑结构设计如下表。 字 段 名数据类型字段宽度是否主键日期日期/时间单精度型是员工编号文本9是班次编号文

16、本2否签到时间日期/时间否备注文本255否11.3.3 数据表字段结构设计l“缺勤记录”表 “缺勤记录”表记录着所有员工的缺勤信息,其逻辑结构设计如下表。 字 段 名数据类型字段宽度是否主键日期日期/时间单精度型是员工编号文本9是缺勤原因文本255否缺勤天数数字长整型否缺勤开始时间日期/时间否缺勤结束时间日期/时间否备注文本255否11.3.3 数据表字段结构设计l月度出勤汇总”表 “月度出勤汇总”表保存着企业员工每月的出勤信息汇总,其逻辑结构设计如下表。 字 段 名数据类型字段宽度是否主键员工编号文本9是签到次数数字长整型否签出次数数字长整型否迟到次数数字长整型否早退次数数字长整型否出差天数

17、数字长整型否请假天数数字长整型否休假天数数字长整型否加班时间汇总数字长整型否11.3.3 数据表字段结构设计l“职位津贴配置”表 “职位津贴配置”表保存着企业内部关于津贴的具体信息,其逻辑结构设计如下表。 字 段 名数据类型字段宽度是否主键职位津贴编号文本6是名称文本18否数额数字单精度型否备注文本255否11.3.4 数据表的表关系设计 l为“人事管理系统.accdb”数据库建立表关系。 第一步:启动Access 2007,打开“人事管理系统.accdb”数据库,并切换到【数据库工具】选项卡,如下图所示。 第二步:单击【数据库工具】选项卡下【显示/隐藏】组中的【关系】按钮,即可进入该数据库【

18、关系】视图,如下图所示。 11.3.4 数据表的表关系设计 l为“人事管理系统.accdb”数据库建立表关系。 第三步:在【关系】视图中右击,在弹出的快捷菜单中选择【显示表】命令;或者直接单击【关系】组中的【显示表】按钮,如下图所示。 第四步:系统弹出【显示表】对话框,如下图所示。 11.3.4 数据表的表关系设计 l为“人事管理系统.accdb”数据库建立表关系。 第五步:在【显示表】对话框中依次选择所有的数据表,单击【添加】按钮,将所有数据表添加进【关系】视图,如下图所示。 第六步:选择“员工信息”表中的“员工编号”字段,按下鼠标左键不放并将其拖动到“管理员”表中的“员工编号”字段上,释放

19、鼠标左键,系统显示【编辑关系】对话框,如下图所示。 11.3.4 数据表的表关系设计 l为“人事管理系统.accdb”数据库建立表关系。 第七步:选中【实施参照完整性】复选框,以保证在“管理员”表中登记的“员工编号”都是在“员工信息”表中记录的“员工编号”。单击【创建】按钮,创建一表关系,如下图所示。 这样我们就完成了第一个表关系的创建。重复以上步骤中的第6步和第7步,建立其余各表间的表关系,如下表所示。 表 名字 段 名相关表名字 段 名员工信息员工编号管理员员工编号员工信息员工编号人事变更信息员工编号员工信息员工编号出勤记录员工编号员工信息员工编号企业工资发放记录员工编号员工信息员工编号签

20、到记录员工编号员工信息员工编号签出记录员工编号员工信息员工编号月度出勤汇总员工编号员工信息员工编号缺勤记录员工编号员工信息员工编号加班记录员工编号员工信息员工编号部门信息经理编号部门信息部门编号员工信息部门编号级别工资配置级别工资编号员工信息基本工资级别编号岗位津贴配置岗位津贴编号员工信息岗位津贴级别编号出勤配置出勤配置编号出勤记录出勤配置编号班次配置班次编号签出记录班次编号班次配置班次编号签到记录班次编号11.3.4 数据表的表关系设计 l为“人事管理系统.accdb”数据库建立表关系。 第八步:建立这些关系后可以在【关系】视图中预览所有的关联关系,如下图所示。 第九步:单击【关闭】按钮,系

21、统弹出提示保存布局的对话框,单击【是】按钮,保存【关系】视图的更改,如下图所示。 11.4 窗体的实现 l“主切换面板”窗体的设计 l设计“登录”窗体 l创建“员工信息查询”窗体 l创建“员工人事变更记录”窗体 l创建“员工考勤记录查询”窗体 l创建“员工工资查询”窗体 11.4.1 “主切换面板”窗体的设计 l建立“主切换面板”窗体,实现系统功能的导航作用。 第一步:启动Access 2007,打开“人事管理系统.accdb”数据库。 第二步:单击【创建】选项卡下【窗体】组中的【窗体设计】按钮,Access即新创建一个窗体并进入窗体的【设计视图】,如下图所示。 第三步:添加窗体标题。单击【控

22、件】组中的【标题】按钮,则窗体显示【窗体页眉】节,并在页眉区域中显示“主切换面板”标题。将窗体标题更改为“欢迎使用夕林人事管理系统”,并设置标题格式,如下图所示。 “标题”各个属性如下图所示的【属性表】窗格。 11.4.1 “主切换面板”窗体的设计 l建立“主切换面板”窗体,实现系统功能的导航作用。 第四步:添加系统徽标。单击【徽标】按钮,弹出选择徽标的对话框。选择一个Bmp图片作为徽标,并将【图片类型】设为“嵌入”,最终结果如下图所示。 第五步:设置主体背景颜色。在主体区域中右击,在弹出的快捷菜单中选择【填充/背景色】命令,弹出如下图所示的菜单。 11.4.1 “主切换面板”窗体的设计 l建

23、立“主切换面板”窗体,实现系统功能的导航作用。 第六步:在颜色块中选择一种颜色作为背景颜色。 第七步:添加按钮。单击【控件】组中的【按钮】控件,并在窗体主体区域中单击,系统会弹出【命令按钮向导】对话框,如下图所示。 第八步:单击【取消】按钮,取消该向导。单击按钮窗体,并在【属性表】窗格中设置按钮的【名称】为“btn1”,删除【标题】属性中的信息。 第九步:在“btn1”按钮控件右方添加一个“标签”窗体控件,将【名称】属性改为“lbl1”,【标题】属性改为“1”。 11.4.1 “主切换面板”窗体的设计 l建立“主切换面板”窗体,实现系统功能的导航作用。 第十步:单击“lbl1”标签控件,在“l

24、bl1”标签控件左边出现“”控件关联图标。单击该图标,系统弹出一个快捷菜单,如下图所示。 第十一步:选择【将标签与控件关联】命令,系统弹出【关联标签】对话框,如下图所示。 11.4.1 “主切换面板”窗体的设计 l建立“主切换面板”窗体,实现系统功能的导航作用。 第十二步:选择“btn1”选项,并单击【确定】按钮。这样“btn1”按钮控件就与“lbl1”标签控件建立了关联。 第十三步:重复以上步骤,在“btn1”按钮控件下方添加其余7个按钮窗体控件和标签窗体控件,如下图所示。 第十四步:修改每个控件的属性,如下表所示。 类 型名 称标 题标签lbl11标签lbl22标签lbl33标签lbl44

25、标签lbl55标签lbl66标签lbl77标签lbl88按钮btn1按钮btn2按钮btn3按钮btn4按钮btn5按钮btn6按钮btn7按钮btn811.4.1 “主切换面板”窗体的设计 l建立“主切换面板”窗体,实现系统功能的导航作用。 第十五步:单击【保存】按钮,系统弹出【另存为】对话框,输入窗体名“主切换面板”,如下图所示。 第十六步:单击【确定】按钮,则新创建了一个“主切换面板”窗体。这样就完成了“主切换面板”窗体的创建。注意,在这里创建的仅仅是一个空白窗体。该窗体的【窗体视图】如下图所示。 11.4.1 “主切换面板”窗体的设计 l建立“主切换面板”窗体,实现系统功能的导航作用。

26、 第十七步:在“Switchboard Items”表中添加相应的记录,如下表所示。 SwitchboardIDItemNumberItemTextComandArgument10主切换面板0默认11员工信息查询编辑2员工信息查询编辑12人事变更记录查询编辑2人事变更记录查询编辑13员工工资查询2员工工资查询14员工考勤记录查询2员工考勤记录查询15预览报表2218退出数据库420报表切换面板021企业工资发放记录报表3企业工资发放记录报表22企业员工出勤记录报表3企业员工出勤记录报表28返回主面板1111.4.2 设计“登录”窗体 l利用和11.4.1节相似的步骤,创建“登录”窗体,所有窗体

27、控件信息如下表。l创建的窗体视图如下图所示。 类 型名 称标 题标签用户名用户名:标签密码密码:文本框UserName文本框Password按钮OK按钮Cancel11.4.3 创建“员工信息查询”窗体 l使用窗体向导,来创建“员工信息查询”窗体。 第一步:启动Access 2007,打开“人事管理系统.accdb”数据库。 第二步:切换到【创建】选项卡,单击【其他窗体】按钮,在弹出的菜单中选择【窗体向导】选项,如下图所示。 第三步:弹出【窗体向导】对话框,在【表/查询】下拉列表框中选择“表:员工信息”,将【可用字段】列表框中的所有字段添加到右面【选定字段】列表框中,如下图所示。 11.4.3

28、 创建“员工信息查询”窗体 l使用窗体向导,来创建“员工信息查询”窗体。 第四步:单击【下一步】按钮,弹出要求用户选择布局的对话框。我们选择【纵栏表】选项,如下图所示。 第五步:单击【下一步】按钮,弹出要求选择窗体样式的对话框。在下拉列表框中选择Northwind选项,如下图所示。 11.4.3 创建“员工信息查询”窗体 l使用窗体向导,来创建“员工信息查询”窗体。 第六步:单击【下一步】按钮,输入窗体标题为“员工信息查询”,再选中【打开窗体查看或输入信息】单选按钮,如下图所示。 第七步:单击【完成】按钮,完成窗体创建。 11.4.3 创建“员工信息查询”窗体 l使用窗体向导,来创建“员工信息

29、查询”窗体。 这样我们就利用窗体向导创建了一个“员工信息查询”窗体,窗体界面如下图所示。 在窗体中右击,在弹出的快捷菜单中选择【设计视图】选项,进入该窗体的【设计视图】,如下图所示。 11.4.3 创建“员工信息查询”窗体 l使用窗体向导,来创建“员工信息查询”窗体。 在【设计视图】中对自动生成的窗体做进一步的修改。设置【窗体页眉】区域中的背景颜色、标题信息等,然后重新调整各个文本框的宽度、高度等。最终效果如下图所示。 11.4.4 创建“员工人事变更记录”窗体 l使用窗体向导创建“员工人事变更记录”窗体。 第一步:启动Access 2007,打开“人事管理系统.accdb”数据库。 第二步:

30、切换到【创建】选项卡,单击【其他窗体】按钮,在弹出的菜单中选择【窗体向导】选项,弹出【窗体向导】对话框。 第三步:在向【选定字段】对话框输入字段之前,先选择“员工信息”表中的“姓名”,然后再将“人事变更记录”表中的所有字段选为选定字段,如下图所示。 第四步:单击【下一步】按钮,选择【通过员工信息】选项,再选中【带有子窗体的窗体】单选按钮,如下图所示。 11.4.4 创建“员工人事变更记录”窗体 l使用窗体向导创建“员工人事变更记录”窗体。 第五步:单击【下一步】按钮,弹出要求选择窗体布局的对话框。我们选择【数据表】选项,如下图所示。 第六步:单击【下一步】按钮,弹出要求选择样式的对话框。我们选

31、择Northwind选项,如下图所示。 11.4.4 创建“员工人事变更记录”窗体 l使用窗体向导创建“员工人事变更记录”窗体。 第七步:单击【下一步】按钮,输入窗体标题“员工人事变更记录”和子窗体标题“员工人事变更记录_子窗体”,然后在下面选中【打开窗体查看或输入信息】单选按钮,如下图所示。 第八步:单击【完成】按钮,完成该窗体的创建。 11.4.4 创建“员工人事变更记录”窗体 l使用窗体向导创建“员工人事变更记录”窗体。 这样我们就利用窗体向导建立了一个“员工人事变更记录”窗体。创建后的窗体如下图所示。 可以看到,自动创建的窗体在布局上有些混乱。需要我们进行手工修改。在窗体中右击,在弹出

32、的快捷菜单中选择【设计视图】选项,进入该窗体的【设计视图】,如下图所示。 11.4.4 创建“员工人事变更记录”窗体 l使用窗体向导创建“员工人事变更记录”窗体。 在【设计视图】中对自动生成的窗体做进一步的修改。设置【窗体页眉】区域中的背景颜色、标题信息,调整子窗体的位置,调整各个文本框的宽度、高度等。最终效果如下图所示。 11.4.5 创建“员工考勤记录查询”窗体 l首先设计好窗体中各个控件的属性,如下表所示。 类 型名 称标 题标签员工号标签员工号:标签开始时间标签开始时间:标签结束时间标签结束时间:文本框员工号文本框开始时间文本框结束时间按钮考勤查询按钮取消11.4.5 创建“员工考勤记

33、录查询”窗体l在窗体的【设计视图】中,运用窗体的各种控件创建“员工考勤记录查询”窗体。 第一步:启动Access 2007,打开“人事管理系统.accdb”数据库。 第二步:切换到【创建】选项卡,然后单击【窗体】组中的【窗体设计】按钮,进入窗体的【设计视图】,如下图所示。 第三步:单击【控件】组中的“标题”控件,则在【设计视图】中显示【窗体页眉】区域,并在页眉区域中显示窗体标题。重新输入窗体标题,如下图所示。 11.4.5 创建“员工考勤记录查询”窗体l在窗体的【设计视图】中,运用窗体的各种控件创建“员工考勤记录查询”窗体。 第四步:单击【控件】组中的“文本框”控件,并在窗体【主体】区域中单击

34、,弹出【文本框向导】对话框,如下图所示。 第五步:按照【文本框向导】的提示,完成该文本框的属性设置,并将该文本框命名为“员工号”。 11.4.5 创建“员工考勤记录查询”窗体l在窗体的【设计视图】中,运用窗体的各种控件创建“员工考勤记录查询”窗体。 第六步:用同样的方法添加另外两个文本框,并分别命名为“开始时间”和“结束时间”,如下图所示。 第七步:设置“开始时间”和“结束时间”文本框控件的格式。选择【属性表】窗格中的【格式】选项卡,然后在【格式】行的下拉列表框中选择【常规日期】选项,这样即可在程序中通过时间控件来输入时间信息,如下图所示。 11.4.5 创建“员工考勤记录查询”窗体l在窗体的

35、【设计视图】中,运用窗体的各种控件创建“员工考勤记录查询”窗体。 第七步:单击【控件】组中的“按钮”控件,并在窗体【主体】区域中单击,弹出【命令按钮向导】对话框,单击【取消】按钮。 第八步:在【属性表】窗格中,设置该按钮的标题和名称均为“考勤查询”,如下图所示。 第九步:用同样的方法添加另外的一个按钮,标题和名称均为“取消”。 第十步:单击【保存】按钮,保存该按钮为“员工考勤记录查询”。 11.4.5 创建“员工考勤记录查询”窗体l在窗体的【设计视图】中,运用窗体的各种控件创建“员工考勤记录查询”窗体。 这样我们就完成了“员工考勤记录查询”窗体的设计,如下图所示。 设计完成以后,设置窗体的背景

36、颜色、字体和字号等属性,最终效果创建后窗体的【窗体视图】如下图所示。 11.4.6 创建“员工工资查询”窗体 l用和11.4.5小节中同样的方法,在【设计视图】中创建“员工工资查询”窗体,所有窗体控件信息如下表所示。 l其中,在创建窗体的组合框控件“开始月份”和“结束月份”时,创建的效果如下图所示。 类 型名 称标 题标签员工号标签员工号标签开始月份标签开始月份标签结束月份标签结束月份文本框员工号组合框开始月份组合框结束月份按钮工资查询按钮取消11.4.6 创建“员工工资查询”窗体这样的组合框可以在【属性表】窗格中设置。选择该“开始月份”组合框,然后将【属性表】切换到【数据】选项卡,在【行来源

37、类型】行中选择【值列表】选项,然后在【行来源】行中输入想要在列表框中出现的选项。例如在本例中我们要实现12个月的选择,因此可以输入“1;2;3;4;5;6;7;8;9;10;11;12”,如下图所示。 将该窗体保存为“员工工资查询”窗体,最终效果如下图所示。 11.5 创 建 查 询 l“员工考勤记录”查询 l创建“员工工资”查询 11.5.1 “员工考勤记录”查询 l建立一个查询,要求可以查询某一员工的考勤记录。 第一步:启动Access 2007,打开“人事管理系统.accdb”数据库。 第二步:切换到【创建】选项卡,然后单击【其他】组中的【查询设计】按钮,如下图所示。 第三步:系统进入查

38、询【设计视图】,并弹出【显示表】对话框,如下图所示。 11.5.1 “员工考勤记录”查询 l建立一个查询,要求可以查询某一员工的考勤记录。 第四步:在【显示表】对话框中选择“员工信息”表,单击【添加】按钮,将该表添加到查询【设计视图】中。用同样的方法,将“出勤配置”表和“出勤记录”表也添加进【设计视图】中,如下图所示。 第五步:向查询设计网格中添加字段。选择“出勤记录”表中的“员工编号”字段,并按下鼠标左键将其拖动到下面的第一个查询设计网格中。 第六步:在网格的【条件行】中输入查询的条件为“Forms!员工考勤记录查询!员工号”。 11.5.1 “员工考勤记录”查询 l建立一个查询,要求可以查

39、询某一员工的考勤记录。 第七步:用同样的方法,依次向网格中添加如下表所示的字段信息。 字 段表排 序条 件员工编号出勤记录无Forms!员工考勤记录查询!员工编号姓名员工信息无日期出勤记录升序Between Forms!员工考勤记录查询!开始日期 And Forms!员工考勤记录查询!结束日期出勤说明出勤配置无设置好以后的视图如下图所示。第八步:单击【保存】按钮,把此查询保存为“员工考勤记录查询”。 11.5.1 “员工考勤记录”查询 这样我们就完成了能够查询员工考勤信息的一个查询,在导航窗格中双击执行该查询,可以弹出要求用户输入参数值的对话框,如下图所示。 输入员工编号,单击【确定】按钮,在

40、弹出的对话框中输入开始日期和结束日期,如下图所示。 这样即可实现员工的考勤情况查询,查询结果如下图所示。 11.5.1 “员工考勤记录”查询 在创建该查询的过程中,最难以确定的就是各种查询条件。为了方便用户输入查询条件,Access提供了“表达式生成器”,用户可以在生成器中创建自己的查询条件。在查询设计网格的【条件】行右击,在弹出的快捷菜单中选择【生成器】选项,如下图所示。 弹出【表达式生成器】对话框,依次选择“窗体”|“员工考勤记录”|“员工号”,并双击“员工号”字段,即可在上面的表达式输入窗口中显示该查询条件,如下图所示。 11.5.2 创建“员工工资”查询 l创建“员工工资”查询与11.

41、5.1小节步骤相似。其相关表为“部门信息”表、“员工信息”表和“企业工资发放记录”表3个表,其字段信息如下表所示。 字 段表排 序条 件部门名称部门信息无员工编号企业工资发放记录无Forms!员工工资查询!员工号姓名员工信息无月份企业工资发放记录升序Between Forms! 员工工资查询!开始月份 And Forms!员工工资查询!结束月份年份企业工资发放记录升序实际应发数额企业工资发放记录无基本工资数额企业工资发放记录无岗位津贴数额企业工资发放记录无加班补贴数额企业工资发放记录无出差补贴数额企业工资发放记录无违规扣除数额企业工资发放记录无11.5.2 创建“员工工资”查询l将该查询保存为

42、“员工工资查询”,如下图所示。 11.6 报表的实现 l“员工考勤记录查询”报表 l“员工工资查询”报表 l“员工出勤记录”报表 l“企业工资发放记录”报表 11.6.1 “员工考勤记录查询”报表 l该查询记录报表的主要功能就是对员工的考勤记录进行查询和打印。 第一步:启动Access 2007,打开“人事管理系统.accdb”数据库。 第二步:切换到【创建】选项卡,在【报表】组中单击【报表向导】按钮,如下图所示。 第三步:系统弹出【报表向导】对话框,在【表/查询】下拉列表框中选择“查询:员工考勤记录查询”,然后把所有字段作为选定字段。如下图所示。 11.6.1 “员工考勤记录查询”报表l该查

43、询记录报表的主要功能就是对员工的考勤记录进行查询和打印。 第四步:单击【下一步】按钮,弹出选择数据查看方式的对话框。选择“通过出勤记录”选项,如下图所示。 第五步:单击【下一步】按钮,弹出添加分组级别的对话框。不选择分组字段,如下图所示。 11.6.1 “员工考勤记录查询”报表l该查询记录报表的主要功能就是对员工的考勤记录进行查询和打印。 第六步:单击【下一步】按钮,弹出选择排序字段的对话框。选择通过“日期”排序,排序方式为“升序”,如下图所示。 第七步:单击【下一步】按钮,弹出选择布局方式的对话框。选择【表格】选项,方向为【纵向】,如下图所示。 11.6.1 “员工考勤记录查询”报表l该查询

44、记录报表的主要功能就是对员工的考勤记录进行查询和打印。 第八步:单击【下一步】按钮,弹出选择报表样式的对话框。选择【办公室】样式,如下图所示。 第九步:单击【下一步】按钮,输入标题为“员工考勤记录查询报表”,并选中【预览报表】单选按钮,如下图所示。 第十步:单击【完成】按钮,这样就创建了一个“员工考勤记录查询报表”。 11.6.1 “员工考勤记录查询”报表用户可以在导航窗格中看到该报表,双击报表,弹出要求用户输入“员工编号”的对话框(和双击查询一样)。输入正确的参数以后,用户就可以查看该报表,如下图所示。 进入报表的【设计视图】,对以上用向导自动生成的报表进行适当的修改,比如设置标题格式、页脚

45、内容等。最终的设计效果如下图所示。 11.6.2 “员工工资查询”报表 l我们来创建“员工工资查询报表”。 第一步:启动Access 2007,打开“人事管理系统.accdb”数据库。 第二步:切换到【创建】选项卡,在【报表】组中单击【报表向导】按钮,如下图所示。 第三步:弹出【报表向导】对话框,在【表/查询】中选择“查询:员工工资查询”,然后把所有字段作为选定字段,如下图所示。 11.6.2 “员工工资查询”报表 l我们来创建“员工工资查询报表”。 第四步:单击【下一步】按钮,弹出选择数据查看方式的对话框。选择“通过企业工资发放记录”选项,如下图所示。 第五步:单击【下一步】按钮,弹出选择是

46、否分组的对话框。不选择分组字段,如下图所示。11.6.2 “员工工资查询”报表 l我们来创建“员工工资查询报表”。 第六步:单击【下一步】按钮,在排序方式中选择通过“年份”和“月份”进行排序,排序方式均为“升序”,如下图所示。 第七步:单击【下一步】按钮,在弹出的对话框中设置布局方式。布局选择【表格】选项,方向选择【横向】,如下图所示。 11.6.2 “员工工资查询”报表 l我们来创建“员工工资查询报表”。 第八步:单击【下一步】按钮,弹出选择样式的对话框。选择【办公室】选项,如下图所示。 第九步:单击【下一步】按钮,输入标题为“员工工资查询报表”,选中【预览报表】单选按钮,如下图所示。 第十

47、步:单击【完成】按钮,这样就创建了一个“员工工资查询报表”。 11.6.2 “员工工资查询”报表 该报表以“员工工资查询”为数据源,进行员工已发薪金的筛选和查询。用户可以在导航窗格中看到该报表,双击报表,弹出要求用户输入员工编号的对话框(和双击查询一样)。输入正确的参数以后,用户就可以查看该报表,如下图所示。 进入报表的【设计视图】,对以上用向导自动生成的报表进行适当的修改,比如设置标题格式、页脚内容等。最终的设计效果如下图所示。 11.6.3 “员工出勤记录”报表 l我们利用报表向导,创建“员工出勤记录报表”。 第一步:启动Access 2007,打开“人事管理系统.accdb”数据库。 第

48、二步:切换到【创建】选项卡,在【报表】组中单击【报表向导】按钮。 第三步:弹出【报表向导】对话框,在对话框中将“表:出勤记录”中的“记录号”、“日期”、“员工编号”字段,“表:员工信息”中的“姓名”字段和“表:出勤配置”中的“出勤说明”字段添加到【选定字段】列表框中,如下图所示。 第四步:单击【下一步】按钮,在弹出的选择数据查看方式的对话框中选择“通过出勤记录”选项,如下图所示。 11.6.3 “员工出勤记录”报表 l我们利用报表向导,创建“员工出勤记录报表”。 第五步:其余各操作步骤设置与11.6.2小节中的一样,保存该报表为“员工出勤记录报表”,如下图所示。 进入报表的【设计视图】,对以上

49、用向导自动生成的报表进行适当的修改。最终的设计效果如下图所示。 11.6.4 “企业工资发放记录”报表 l我们通过同样的方式创建“企业工资发放记录“报表”第一步:启动Access 2007,打开“人事管理系统.accdb”数据库。 第二步:切换到【创建】选项卡,在【报表】组中单击【报表向导】按钮。 第三步:弹出【报表向导】对话框,在对话框中将“表:员工信息”中的“姓名”字段和“表:企业工资发放记录”中的所有字段添加到【选定字段】列表框中,如下图所示。 11.6.4 “企业工资发放记录”报表 l我们通过同样的方式创建“企业工资发放记录“报表”第四步:单击【下一步】按钮,在弹出的选择数据查看方式的

50、对话框中选择【通过企业工资发放记录】选项,如下图所示。 第五步:其余各操作步骤设置与11.6.2小节中的一样,保存该报表为“企业工资发放记录报表”,如下图所示。 11.7 编码的实现 l公用模块 l“登录”窗体代码 l“主切换面板”窗体代码 l“员工考勤记录查询”窗体代码 l“员工工资查询”窗体代码 11.7.1 公用模块 l在Access开发过程中,用得最多的还是各种事件过程,也即为各种控件等建立的响应程序等。在这一小节中,我们要建立该系统中的一个通用模块,该通用模块的作用就是建立数据库的连接、定义用户的登录等。 11.7.1 公用模块l在数据库中建立一个公用模块,以实现数据库的连接和用户登

51、录。第一步:启动Access 2007,打开“人事管理系统.accdb”数据库。 第二步:切换到【创建】选项卡,单击【其他】组中的【宏】按钮下的小箭头,弹出二级菜单如下图所示。 第三步:单击【模块】选项,系统新建一模块,并进入VBA编辑器,如下图所示。 11.7.1 公用模块l在数据库中建立一个公用模块,以实现数据库的连接和用户登录。第四步:在【代码】窗口中输入如下代码: Option Compare DatabaseOption ExplicitPublic check As Boolean通过字符串StrQuery所引用的SQL语句返回一个ADO.Recordset对象Public Fun

52、ction GetRs(ByVal StrQuery As String) As ADODB.Recordset Dim rs As New ADODB.Recordset Dim conn As New ADODB.Connection On Error GoTo GetRS_Error Set conn = CurrentProject.Connection rs.Open StrQuery, conn, adOpenKeyset, adLockOptimistic Set GetRs = rsGetRS_Exit: Set rs = Nothing Set conn = Nothing

53、Exit FunctionGetRS_Error: MsgBox (Err.Description) Resume GetRS_ExitEnd Function GetRS函数实现通过一条SQL语句,返回一个ADODB.Recordset对象实例。该函数中用到的两个重要的对象如下。ADODB.Recordset.open方法:用于建立一个数据库连接,并返回数据库指针,用以指向数据库中的数据表、查询、窗体等对象。 adLockOptimistic:指示逐记录的开放式锁定。提供程序使用开放式锁定,即仅在您调用Update 方法时锁定记录。 第五步:单击【保存】按钮,输入模块名“公共模块”,单击【确

54、定】按钮即可。 11.7.2 “登录”窗体代码 l我们已经创建了“登录”窗体,增加登录代码的设计其实就是给窗体中的各个控件加上事件过程,使用户操作窗体中的控件时,程序能够对用户的操作做出响应。我们在上面建立的“登录”窗体界面如下图所示。 类 型名 称标 题标签用户名用户名:标签密码密码:文本框UserName文本框Password按钮OK按钮Cancel窗体中各个控件的名称和参数如下表。 11.7.2 “登录”窗体代码 l为“登录”窗体添加各种事件过程,实现用户的登录功能。 为“登录”窗体添加“加载”事件过程 第一步:启动Access 2007,打开“人事管理系统.accdb”数据库。 第二步

55、:在导航窗格中单击“登录”窗体,在弹出的快捷菜单中选择【设计视图】选项,进入窗体的【设计视图】。 第三步:设置窗体的记录源。在窗体的【属性表】窗格中,单击【所选内容的类型:窗体】下拉列表框,选择“窗体”选项。切换到【数据】选项卡,在【记录源】行的下拉列表框中选择“管理员”表,如下图所示。 第四步:给窗体添加“加载”事件过程。将【属性表】切换到【事件】选项卡,在【加载】行中选择“事件过程”选项,并单击右边的省略号按钮,如下图所示。 11.7.2 “登录”窗体代码 l为“登录”窗体添加各种事件过程,实现用户的登录功能。 为“登录”窗体添加“加载”事件过程 第五步:系统进入VBA编辑器,并自动新建了

56、一个名称为“Form_Load()”的Sub过程。 第六步:在【代码】窗口中输入如下所示的VBA代码,给窗体添加“加载”事件过程。 Private Sub Form_Load() 最小化数据库窗体并初始化该窗体On Error GoTo Form_Open_Err DoCmd.SelectObject acForm, 切换面板, True DoCmd.Minimize check = False Form_Open_Exit: Exit SubForm_Open_Err: MsgBox Err.Description Resume Form_Open_ExitEnd Sub第七步:保存该VBA

57、代码,这样就给整个窗体加上了“加载”事件过程。此时【代码】窗口如下图所示。 11.7.2 “登录”窗体代码 l为“登录”窗体添加各种事件过程,实现用户的登录功能。 为“OK”按钮添加事件过程第一步:在“登录”窗体的【设计视图】中单击【确定】按钮,以选择“OK”按钮控件。 第二步:给“OK”按钮控件添加“单击”事件过程。将【属性表】切换到【事件】选项卡,在【单击】行中选择“事件过程”选项,并单击右边的省略号按钮,如下图所示。 第三步:系统进入VBA编辑器,并自动新建了一个名称为“OK_Click()”的Sub过程。 11.7.2 “登录”窗体代码 l为“登录”窗体添加各种事件过程,实现用户的登录

58、功能。 为“OK”按钮添加事件过程第四步:在【代码】窗口中输入如下所示的VBA代码,给按钮控件添加“单击”事件过程。 Private Sub OK_Click() On Error GoTo Err_OK_Click Dim strSQL As String Dim rs As New ADODB.RecordsetIf IsNull(Me.UserName) Or Me.UserName = Then DoCmd.Beep MsgBox (请输入用户名称!)ElseIf IsNull(Me.Password) Or Me.Password = Then DoCmd.Beep MsgBox (

59、请输入密码!) Else strSQL = SELECT * FROM 管理员 WHERE 用 户名= & Me.UserName & and 密码= & Me.Password & Set rs = GetRs(strSQL) If rs.EOF Then DoCmd.Beep MsgBox (用户名或密码错误!) Me.UserName = Me.Password = Me.UserName.SetFocus Exit Sub Else DoCmd.Close check = True DoCmd.OpenForm (主切换面板) End If End If Set rs = Nothin

60、gExit_OK_Click: Exit SubErr_OK_Click: MsgBox (Err.Description) Debug.Print Err.Description Resume Exit_OK_ClickEnd Sub11.7.2 “登录”窗体代码 l为“登录”窗体添加各种事件过程,实现用户的登录功能。 为“OK”按钮添加事件过程第五步:保存该VBA代码,这样就给“OK”按钮控件加上“单击”事件过程。此时的【代码】窗口如下图所示。 11.7.2 “登录”窗体代码 l为“登录”窗体添加各种事件过程,实现用户的登录功能。 为“Concel”按钮添加事件过程第一步:在“登录”窗体的

61、【设计视图】中单击【取消】按钮,以选择“Concel”按钮控件。 第二步:给“Concel”按钮控件添加“单击”事件过程。将【属性表】切换到【事件】选项卡,在【单击】行中选择“事件过程”选项,并单击右边的省略号按钮,如下图所示。 第三步:系统进入VBA编辑器,并自动新建了一个名称为“Concel_Click()”的Sub过程。 11.7.2 “登录”窗体代码l为“登录”窗体添加各种事件过程,实现用户的登录功能。 为“Concel”按钮添加事件过程第四步:在【代码】窗口中输入如下所示的VBA代码,给按钮控件添加“单击”事件过程。 第五步:保存该VBA代码,这样就给“Concel”按钮控件加上“单

62、击”事件过程。此时的【代码】窗口如下图所示。 Private Sub Cancel_Click() check = False DoCmd.CloseEnd Sub11.7.2 “登录”窗体代码l这样我们就完成了整个用户登录模块的创建工作,在导航窗格中双击“登录”窗体,在窗体中输入用户名和密码,单击【确定】按钮,即可登录,如下图所示。11.7.3 “主切换面板”窗体代码 l为“主切换面板”窗体加上各种事件过程。 为“主切换面板”窗体上的“Btn1”按钮控件添加 “单击”事件过程 第一步:启动Access 2007,打开“人事管理系统.accdb”数据库。 第二步:在导航窗格中右击“主切换面板”

63、窗体,在弹出的快捷菜单中选择【设计视图】选项,进入窗体的【设计视图】。 第三步:调出【属性表】窗格,并将其切换到【数据】选项卡。单击【记录源】行的小箭头,在弹出的下拉列表框中选择“Switchboard Items”表,如下图所示。 第四步:单击btn1按钮,把【属性表】窗格切换到【事件】选项卡。在【单击】行的属性框中输入“=HandleButtonClick(1)”,添加“btn1”按钮“单击事件”的响应程序,如下图所示。 11.7.3 “主切换面板”窗体代码 l为“主切换面板”窗体加上各种事件过程。 为“主切换面板”窗体上的“Btn1”按钮控件添加 “单击”事件过程 第五步:重复第2步,给

64、其余7个按钮控件添加单击消息事件响应程序,各控件的响应程序参数如下表所示。 第六步:在窗口【设计视图】的任意位置右击,弹出右键快捷菜单,如下图所示。 控 件事 件事件过程btn1单击=HandleButtonClick(1)btn2单击=HandleButtonClick(2)btn3单击=HandleButtonClick(3)btn4单击=HandleButtonClick(4)btn5单击=HandleButtonClick(5)btn6单击=HandleButtonClick(6)btn7单击=HandleButtonClick(7)btn8单击=HandleButtonClick(8

65、)11.7.3 “主切换面板”窗体代码 l为“主切换面板”窗体加上各种事件过程。 为“主切换面板”窗体上的“Btn1”按钮控件添加 “单击”事件过程 第七步:选择【事件生成器】命令,弹出【选择生成器】对话框,如下图所示。 第八步:选择【代码生成器】选项,并单击【确定】按钮,打开VBA程序编辑器,如下图所示。 11.7.3 “主切换面板”窗体代码 l为“主切换面板”窗体加上各种事件过程。 为“主切换面板”窗体上的“Btn1”按钮控件添加 “单击”事件过程 第九步:删除系统自动生成的“主体_Click()”过程代码,新建一个新的Function函数HandleButtonClick,代码如下。 P

66、rivate Function HandleButtonClick(intbtn As Integer) 处理按钮click事件 Const conCmdGotoSwitchboard = 1 Const conCmdNewForm = 2 Const conCmdOpenReport = 3 Const conCmdExitApplication = 4 Const conCmdRunMacro = 8 Const conCmdRunCode = 9 Const conCmdOpenPage = 10 Const conErrDoCmdCancelled = 2501 Dim rs As A

67、DODB.Recordset Dim strSQL As String On Error GoTo HandleButtonClick_Err Set rs = CreateObject(ADODB.Recordset) strSQL=SELECT * FROM Switchboard Items strSQL = strSQL & WHERE SwitchboardID= & Me!SwitchboardID & AND ItemNumber= & intbtn Set rs = GetRs(strSQL) If (rs.EOF) Then MsgBox读取 Switchboard Item

68、s 表时出错。 rs.Close Set rs = Nothing Exit Function End If Select Case rs!Command 进入另一个切换面板 Case conCmdGotoSwitchboard Me.Filter = ItemNumber = 0 AND SwitchboardID= & rs!Argument 打 开一个新窗体 Case conCmdNewForm DoCmd.OpenForm rs!Argument 打开报表 Case conCmdOpenReport DoCmd.OpenReport rs!Argument, acPreview 退出应

69、用程序 Case conCmdExitApplication CloseCurrentDatabase 运行宏. Case conCmdRunMacro DoCmd.RunMacro rs!Argument 运行代码. Case conCmdRunCode Application.Run rs!Argument 打开一个数据存取页面 Case conCmdOpenPage DoCmd.OpenDataAccessPage rs!Argument 未定义的选项 Case Else MsgBox 未知选项 End Select Close the recordset and the databas

70、e. rs.CloseHandleButtonClick_Exit: On Error Resume Next Set rs = Nothing Exit FunctionHandleButtonClick_Err: If (Err = conErrDoCmdCancelled) Then Resume Next Else MsgBox 执行命令时出错。, vbCritical Resume HandleButtonClick_Exit End IfEnd Function输入上述代码后,单击【保存】按钮保存代码。函数HandleButtonClick则用来处理“主切换面板”上“按钮”控件的“

71、单击”消息事件。这样就完成了在控制面板上显示功能项目的目标。 11.7.3 “主切换面板”窗体代码 l为“主切换面板”窗体加上各种事件过程。 为“主切换面板”窗体添加“成为当前”事件过程单击【成为当前】行的小箭头,在下拉列表框中选择“事件过程”选项,如下图所示。 单击右边的省略号按钮,进入VBA编辑器,系统自动建立了一个“Form_Current()”过程,在该过程中加入如下所示的代码。 Private Sub Form_Current() 更新标题并显示列表 Me.Caption = Nz(Me!ItemText, ) FillbtnsEnd Sub此时的【代码】窗口如下图所示。 11.7.

72、3 “主切换面板”窗体代码 l为“主切换面板”窗体加上各种事件过程。 为“主切换面板”窗体添加“成为当前”事件过程上面过程中的Fillbtns为另外一个能够实现报表选择功能的过程,Fillbtns过程代码如下所示。 Private Sub Fillbtns() 显示切换框中的列表 按钮数量 Const conNumButtons As Integer = 8 Dim rs As New ADODB.Recordset Dim strSQL As String Dim intbtn As Integer Me!btn1.SetFocus For intbtn = 2 To conNumButto

73、ns Me(btn & intbtn).Visible = False Me(lbl & intbtn).Visible = False Next intbtn 打开表Switchboard Items strSQL = SELECT * FROM Switchboard Items strSQL = strSQL & WHERE ItemNumber 0 AND SwitchboardID= & Me!SwitchboardID strSQL = strSQL & ORDER BY ItemNumber;Set rs = GetRs(strSQL) If (rs.EOF) Then Me!l

74、bl1.Caption=此切换面板页上无项目。 Else While (Not (rs.EOF) Me(btn & rs!ItemNumber).Visible = True Me(lbl & rs!ItemNumber).Visible = True Me(lbl & rs!ItemNumber).Caption = rs!ItemText rs.MoveNext WendEnd If 关闭数据集合和数据库 rs.Close Set rs = NothingEnd Sub其中,Fillbtns()子过程为实现“主切换面板”上的控件数量和控件标题等信息。 11.7.3 “主切换面板”窗体代码

75、l为“主切换面板”窗体加上各种事件过程。 为“主切换面板”窗体添加“成为当前”事件过程此时Fillbtns过程的视图如下所示。 11.7.3 “主切换面板”窗体代码 l为“主切换面板”窗体加上各种事件过程。 为“主切换面板”窗体添加“加载”事件过程单击【加载】行的小箭头,在下拉列表框中选择“事件过程”选项,如下图所示。 单击右边的省略号按钮,进入VBA编辑器,系统自动建立了一个“Form_Load()”过程,在该过程中加入如下所示的代码。 Private Sub Form_Load() If Not check Then MsgBox (请先登录!) DoCmd.Close DoCmd.Ope

76、nForm (登录) End IfEnd Sub这几句代码的作用,就是当用户打开该窗体时,系统先检查全局布尔变量Check的值,如果Check值为False则弹出提示用户先登录的对话框。这样以确保用户在打开该切换面板前已经登录。 11.7.3 “主切换面板”窗体代码 此时【代码】窗口如下图所示。 l为“主切换面板”窗体加上各种事件过程。 为“主切换面板”窗体添加“加载”事件过程11.7.3 “主切换面板”窗体代码 l为“主切换面板”窗体加上各种事件过程。 为“主切换面板”窗体添加“打开”事件过程单击【打开】行的小箭头,在下拉列表框中选择“事件过程”选项,如下图所示。 单击右边的省略号按钮,进入

77、VBA编辑器,系统自动建立了一个“Form_Open()”过程,在该过程中加入如下所示的代码。 Private Sub Form_Open(Cancel As Integer) On Error GoTo Form_Open_Err 显示默认的选项 Me.Filter = ItemNumber = 0 AND Argument = 默认 Me.FilterOn = True Form_Open_Exit: Exit SubForm_Open_Err: MsgBox Err.Description Resume Form_Open_ExitEnd Sub这组代码的含义就是使用户在打开该主切换面板

78、时,有默认的选择值。 11.7.3 “主切换面板”窗体代码 l为“主切换面板”窗体加上各种事件过程。 为“主切换面板”窗体添加“打开”事件过程此时的【代码】窗口如下图所示。 这样就完成了主导航面板的设计工作,双击导航窗格中的“主切换面板”窗体,如果用户还没有登录,则会弹出用户还没有登录的提示对话框,如下图所示。 单击【确定】按钮后,自动打开“登录窗体”进行登录。登录以后,即可打开“主切换面板”窗体,如下图所示。 11.7.4 “员工考勤记录查询”窗体代码 l我们在上面建立了一个“员工考勤记录查询”的查询,并基于该查询建立了“员工考勤记录查询报表”,用户还记得,我们在上面的查询或报表中进行调试时

79、,都是要手工在弹出的参数对话框中输入各种查询参数,如下图所示。 l在这一节中,我们将利用建立的“员工考勤记录查询”窗体,代替上面的各个参数值对话框,实现考勤记录的查询功能。 11.7.4 “员工考勤记录查询”窗体代码l已知“员工考勤记录查询”窗体中各种控件的名称等属性如下表。 类 型名 称标 题标签员工号标签员工号:标签开始时间标签开始时间:标签结束时间标签结束时间:文本框员工号文本框开始时间文本框结束时间按钮考勤查询按钮取消11.7.4 “员工考勤记录查询”窗体代码l为“员工考勤记录查询”窗体添加各种事件过程。 向“员工考勤记录查询”窗体添加“加载”事件过程 第一步:在“员工考勤记录查询”窗

80、体的【设计视图】中单击“考勤查询”按钮。 第二步:给“考勤查询”按钮控件添加“单击”事件过程。将【属性表】切换到【事件】选项卡,在【单击】行中选择“事件过程”选项,并单击右边的省略号按钮,如下图所示。 第三步:系统进入VBA编辑器,并自动新建了一个名称为“考勤查询_Click()”的Sub过程。 11.7.4 “员工考勤记录查询”窗体代码l为“员工考勤记录查询”窗体添加各种事件过程。 向“员工考勤记录查询”窗体添加“加载”事件过程 第四步:在【代码】窗口中输入如下所示的VBA代码,给按钮控件添加“单击”事件过程。 Private Sub 考勤查询_Click() If IsNull(员工号)

81、Or IsNull(开始时间) Or IsNull(结束时间) Then MsgBox 您必须输入员工号、开始时间和结束时间。 DoCmd.GoToControl 开始时间 ElseIf 开始时间 结束时间 Then MsgBox 结束时间必须大于开始时间。 DoCmd.GoToControl 开始时间 Else DoCmd.OpenReport 员工考勤记录查询 报表, acViewPreview, , , acWindowNormal Me.Visible = False End If End IfEnd Sub 第五步:保存该VBA代码,这样就给“考勤查询”按钮控件加上了“单击”事件过程

82、。此时的【代码】窗口如下图所示。 该“单击”事件过程的作用,就是要当用户单击【考勤查询】按钮时,系统自动检查“员工号”、“开始时间”、“结束时间”文本框中的值,并自动对比“开始时间”和“结束时间”的大小。如果开始时间大于结束时间,则提示出错。如果没有错误,则继续执行,打开“员工考勤记录查询报表”。 11.7.4 “员工考勤记录查询”窗体代码l为“员工考勤记录查询”窗体添加各种事件过程。 为“取消”按钮添加事件过程第一步:在“员工考勤记录查询”窗体的【设计视图】中单击【取消】按钮。 第二步:给“取消l”按钮控件添加“单击”事件过程。将【属性表】切换到【事件】选项卡,在【单击】行中选择“事件过程”

83、选项,并单击右边的省略号按钮,如下图所示。 第三步:系统进入VBA编辑器,并自动新建了一个名称为“取消_Click()”的Sub过程。 第四步:在【代码】窗口中输入如下所示的VBA代码,给按钮控件添加“单击”事件过程。 Private Sub 取消_Click() DoCmd.CloseEnd Sub 11.7.4 “员工考勤记录查询”窗体代码l为“员工考勤记录查询”窗体添加各种事件过程。 向“员工考勤记录查询”窗体添加“加载”事件过程 第五步:保存该VBA代码,这样就给“取消”按钮控件加上了“单击”事件过程。此时的【代码】窗口如下图所示。 该“单击”事件过程的作用,就是要当用户单击【取消】按

84、钮时,系统关闭“登录”窗体。这样就完成了考勤查询模块的全部设计工作,双击导航窗格中的“员工工资查询”窗体,打开该窗体,在窗体中输入要查询的参数,如下图所示。 11.7.4 “员工考勤记录查询”窗体代码单击【考勤查询】按钮,即可将窗体中的参数传递给“员工考勤记录查询”查询,并自动进入打开报表的【打印预览】视图,如下图所示。 11.7.5 “员工工资查询”窗体代码 l给“员工工资查询”窗体添加的代码和上面11.7.4节中的代码是相似的,为窗体设置数据源、添加窗体的“加载”事件代码、添加“工资查询”按钮控件的“单击”事件代码、添加“取消”按钮控件的“单击”事件代码。l各个代码的具体添加步骤与“员工考

85、勤记录查询”窗体完全类似,在这里我们不再赘述。下面只给出各个控件的代码。 11.7.5 “员工工资查询”窗体代码l窗体的“加载”事件代码如下。 Private Sub Form_Load() If Not check Then MsgBox (请先登录!) DoCmd.Close DoCmd.OpenForm (登录) End IfEnd Subl“工资查询”按钮控件的“单击”事件过程代码如下。Private Sub 工资查询_Click() If IsNull(员工号) Then MsgBox 您必须输入员工号。 DoCmd.GoToControl 员工号 Else If 开 始月份 结束月

86、份 Then MsgBox 结束月份必须大于开始月份。 DoCmd.GoToControl 开始月份 Else DoCmd.OpenReport 员工薪金查询报表, acViewPreview, , , acWindowNormal Me.Visible = False End If End IfEnd Subl“取消”按钮控件的“单击”事件过程代码如下。Private Sub 取消_Click() DoCmd.CloseEnd Sub 11.7.5 “员工工资查询”窗体代码这样就完成了工资管理模块的全部设计工作,双击导航窗格中的“员工薪金查询”窗体,打开该窗体,在窗体中输入要查询的参数,如下

87、图所示。 单击【工资查询】按钮,即可将窗体中的参数传递给“员工工资查询”查询,并自动进入打开报表的【打印预览】视图,如下图所示。 11.8 程序的系统设置 l自动启动“登录”窗体 l解除各种运行限制 11.8.1 自动启动“登录”窗体l通过Access设置自动启动窗体 在Access 2007中,对建立的程序进行启动设置。 第一步:启动Access 2007,打开“人事管理系统.accdb”数据库。 第二步:单击屏幕左上角的Office 徽标,在弹出的功能菜单中单击【Access选项】按钮,如下图所示。 第三步:系统弹出【Access选项】对话框。单击左边的【当前数据库】选项,以对当前的数据库

88、进行设置。各种设置如下图所示。 在【应用程序标题】文本框中输入该系统的名称为“夕林人事管理系统”,在这里设置的标题将显示在系统标题栏中。在【显示窗体】下拉列表框中选择想要在启动数据库时启动的窗体,例如在本例中,我们选择“登录”窗体作为自动启动的窗体,如上图所示。 11.8.1 自动启动“登录”窗体l通过Access设置自动启动窗体 在Access 2007中,对建立的程序进行启动设置。 第四步:单击【确定】按钮,系统弹出提示重新启动数据库的对话框,如下图所示。 这样我们就完成了系统的启动设置,当用户启动该数据库时,系统会自动运行该设置,如下图所示。 重新启动数据库后,即可完成设置。 11.8.

89、1 自动启动“登录”窗体l通过AutoExec宏自动启动窗体在Access 2007中,通过建立一个AutoExec宏,自动启动“登录”窗体。第一步:启动Access 2007,打开“人事管理系统.accdb”数据库。 第二步:单击【创建】选项卡下【其他】组中的【宏】按钮,新建一个宏,如下图所示。 值得注意的是,我们在【操作参数】区域中设置【数据模式】行的选项为“增加”,【窗口模式】行中为“对话框”,保存该宏为“AutoExec”。11.8.1 自动启动“登录”窗体这样,当重新启动数据库时,就可以自动运行该宏,自动打开“登录”窗体,如下图所示。并且可以发现,通过上面对操作参数的设置,比上一节的

90、设置方法更加利于保密。 用户可以选择上面的任意一种方法,来设置程序的启动窗体,在本例中,我们选择采用AutoExec宏的方法,来启动“登录”窗体。 11.8.2 解除各种运行限制 l解除对VBA宏的限制 系统的默认设置是对VBA代码和宏进行禁止的,只是在遇到有VBA代码或宏的数据库时会弹出提示,如下图所示。 11.8.2 解除各种运行限制我们注意到,在上图的上方,系统弹出了一个【安全警告】消息栏,提示用户数据库中包含了某些禁用的内容,如下图所示。 单击消息栏上的【选项】按钮,可以弹出【Microsoft Office 安全选项】对话框,该对话框提示由于该数据库中含有VBA宏,系统没有正常运行,

91、如下图所示。 选中【启用此内容】单选按钮,并单击【确定】按钮,即可启用该数据库中的宏。 11.8.2 解除各种运行限制用这种方法可以启用该数据库中的宏,但是当关闭该数据库并重新打开时,Access将继续阻止该数据库中的宏,要对数据库内容进行完全解除,还需要用户在【信任中心】中进行设置。 可以看到在上面的【Microsoft Office 安全选项】对话框的最下面,有【打开信任中心】超链接。单击该链接即可打开【信任中心】对话框,如下图所示。 选中【启用所有宏】单选按钮,单击【确定】按钮,即可启用数据库中的所有宏。 11.8.2 解除各种运行限制l选择对OLE类型库的引用本程序使用了Microso

92、ft ActiveX Data Objects 2.1 Library OLE类型库,在使用该程序之前,请确认VBA编译器已引用此类型库。确认的方法是单击【数据库工具】选项卡下的Visual Basic按钮,进入VBA编辑器,并在编辑器的【工具】菜单中选择【引用】命令,如下图所示。 系统弹出【引用人事管理系统】对话框。在对话框的【可使用的引用】下拉列表框中,勾选Microsoft ActiveX Data Objects 2.1 Library OLE类型库,如下图所示。 单击【确定】按钮即可完成该程序的引用设置。 11.9 系统的运行 l运行该“人事管理系统.accdb”。 第一步:启动Ac

93、cess 2007,打开“人事管理系统.accdb”数据库。 第二步:系统弹出“登录”对话框,如下图所示。 第三步:在【用户名】文本框中输入“admin”,在【密码】文本框中输入“admin”,系统弹出“主切换面板”窗体,如下图所示。 11.9 系统的运行 l运行该“人事管理系统.accdb”。 第四步:单击切换面板中的第一项,进入“员工信息查询”模块,用户可以在该窗体中查看、添加和修改用户的个人信息,如下图所示。 第五步:关闭该模块,单击切换面板的第二项,进入“人事变更记录查询”模块,用户可以在该模块中查看、添加和修改用户的人事变更记录,如下图所示。 11.9 系统的运行 l运行该“人事管理

94、系统.accdb”。 第六步:关闭该模块,单击切换面板的第三项,进入“员工工资查询”模块,用户可以在该模块中查看某员工的薪金记录,如下图所示。 第七步:输入查询参数,单击【工资查询】按钮,即可进行查询,并自动打开“员工工资查询报表”,如下图所示。 11.9 系统的运行 l运行该“人事管理系统.accdb”。 第八步:关闭该模块,单击切换面板的第四项,进入“员工考勤记录查询”模块,用户可以在该模块中查看某员工的考勤记录,如下图所示。 第九步:输入查询参数,单击【考勤查询】按钮,即可进行查询,并自动打开“员工考勤记录查询报表”,如下图所示。 11.9 系统的运行 l运行该“人事管理系统.accdb

95、”。 第十步:关闭该模块,单击切换面板的第五项,进入“报表预览”切换面板,如下图所示。 第十一步:单击该面板的第一项,打开“员工工资发放记录报表”,用户可以查看所有员工的工资报表,如下图所示。 11.9 系统的运行 l运行该“人事管理系统.accdb”。 第十二步:关闭该报表,单击该面板的第二项,打开“员工出勤记录报表”,用户可以查看所有员工的考勤报表,如下图所示。 第十三步:关闭该报表,单击该面板最后一项,返回主切换面板。单击主切换面板的最后一项,退出该系统。 11.10 实 例 总 结 l通过该实例,我们可以掌握以下知识和技巧。 人事管理系统的需求。Microsoft Access 的窗体

96、与向导相结合来完成数据库应用程序界面的开发。利用VBA设计器,完成简单的VBA程序的编写。能对系统进行简单设置,解决一些基本的Access问题。 11.11 答疑与技巧 l关于最初的系统方案设计 l关于表设计 l尽量少修改数据表 l字段格式和窗体控件关系 11.11.1 关于最初的系统方案设计 l最初进行方案设计,看似对程序的设计没有什么直接的作用,但实际上,这个设计方案是以后设计工作的指导文件。设计好明确的系统部分、模块,可以大大提高程序开发的效率。 11.11.2 关于表设计 l表中存储了数据库中的数据,因此在设计好表以后,表的结构一般就不要随意更改了。因为一旦删除了某一字段,那么该字段中

97、的数据也随之删除。这样,就可能造成意外的损失。 11.11.3 尽量少修改数据表 l在设计过程中,尽量在窗体设计之前就设计好表的字段,而不要在窗体设计完成以后再修改表。这样可以大大节省因为表的修改而增加的窗体返工的工作量。 11.11.4 字段格式和窗体控件关系 l在表的【设计视图】中,若预先指定字段的格式、默认值和查阅显示的控件类型,那么在后面创建窗体时,由字段创建的窗体控件会自动继承这些格式和默认值,将自动按照所指定的类型创建控件。这样,不但可以大大提高编程的效率,而且可以避免错误。 11.12 拓展与提高 l创建系统对象 l复制修改表 l完善开发文档 11.12.1 创建系统对象 l如果

98、保存的表以“usys”开头,那么该表就会自动转为一个系统对象。这样,在数据库的导航窗格中这个表就会被隐藏起来,在某种程度上,这种方法可以起到保护数据的作用。比如,设计者可以使用这种方法,将“用户表”或“管理员表”隐藏起来。如果用户想显示该系统对象表,那么可以在【Access 选项】对话框中,单击【导航选项】按钮,如下图所示。 11.12.1 创建系统对象l系统弹出【导航选项】对话框,在该对话框中选中【显示系统对象】复选框,即可将该文件显示出来。 11.12.2 复制修改表 l在表的设计过程中,为了提高设计效率,对于两个字段相同或者类似的表,用户完全可以复制上一个表得来,然后再对其进行相应的修改即可。 11.12.3 完善开发文档 l为了保证软件的成功开发和实施,并保障系统的稳定和便于系统维护,在开发工作的每个阶段,都需要编制一些文档。这些文档是一个完整的软件项目中不可缺少的组成部分。 l按照国际标准,在一项软件项目的开发过程中,应该编制14种文档。这14种文档包括如下。 可行性研究报告项目开发计划软件需求说明书数据要求说明书概要设计说明书详细设计说明书 数据库设计说明书 11.12.3 完善开发文档用户手册操作手册模块开发卷宗测试计划测试分析报告开发进度月报项目开发总结报告 演讲完毕,谢谢观看!

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号