毕设资料-vb+access职工工资管理信息系统
收藏
资源目录
压缩包内文档预览:
编号:67364032
类型:共享资源
大小:979.32KB
格式:ZIP
上传时间:2020-04-05
上传人:独**
认证信息
个人认证
王**(实名认证)
江苏
IP属地:江苏
20
积分
- 关 键 词:
-
资料
vb
access
职工工资
管理信息系统
- 资源描述:
-
毕设资料-vb+access职工工资管理信息系统,资料,vb,access,职工工资,管理信息系统
- 内容简介:
-
2005 届毕业设计(论文)开题报告题目图书管理系统作者姓名学号101071069所学专业信息与计算科学1.研究的意义,同类研究工作国内外现状、存在问题l 研究的意义:21世纪初的是我国国民经济和社会发展的重要时期,也是信息产业快速发展的关键时期。在我国加入WTO后的今天,随着社会经济的飞速发展,企业工资的内容越来越丰富,传统的手工工资发放方式远远不能满足企业发展的要求,这就需要一个企业职工工资管理系统来对工资发放等进行更加规范的管理。这个系统是毕业生毕业前的最后一次模拟,对毕业生的软件开发能力有很大帮助.开发职工工资系统既有宏观上的意义,那就是顺应时代信息化、现代化潮流,适应社会发展的需要,使能够更好的满足人们的需要,促进国民知识结构优化;也有微观上的意义,那就是可以提高管理的现代化程序,加强管理的信息化手段,提高管理人员工作效率。 同类研究国内外情况:l 由于美国等发达国家的计算机水平起点相对来说比较早,随着科学的进步,这些国家的职工工资管理都已趋于自动化,并且与银行连接。而我国计算机起步晚,而且受经济因素制约,我国许多中小型企业面临这越来越繁重的管理任务,还停留在单靠传统的手工操作,不仅耗费越来越多的人力、物力,也降低了职工工资管理工作的可靠性。因而,职工工资管理自动化是必然的发展趋势。l 存在的问题:就世界发达国家和地区而言,职工工资管理的计算机化水平已经很高了,但由于我国还处在发展中阶段,许多中小型企业的数据处理手工操作,工作量大,出错率高,出错后不易更改。企业采取手工方式对工资发放情况进行人工管理,由于信息比较多,工资发放信息的管理工作混乱而又复杂;一般发放情况是记录在帐单上,工资的数目和内容记录在文件中,企业财政的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。2.研究目标、内容、拟解决的关键问题(根据任务要求进一步具体化)l 研究目标:1. 阐述一个信息化的职工工资管理系统对一个中小型企业的发展意义。2. 开发一个使图书管理工作规范化,系统化,程序化,避免职工工资管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改职工工资情况的中小型职工工资管理系统。3. 通过对现存的一些中小型企业职工工资管理的调查建立起一个相对完善的管理系统,改变现在一些中小型企业落后的工资管理方式。l 研究内容:工资管理系统研究的内容涉及工资管理的全过程,包括职工添加,职工删除,特殊项管理,工资发放查询,职工信息查询,等等功能。l 拟解决的关键问题:1怎样使系统满足一般中小型企业在工资管理中所包括的各项功能?2怎样使系统能够轻松容易上手?3. 从软件的角度怎样才能既简便的实现这个系统又有尽可能多的功能? 3.特色与创新之处 本文探讨了怎样利用VB作为软件平台。通过用VB的各种功能,了解各种功能在不同应用中的优缺点。利用的VB界面设计功能,进行图书管理系统的人性化界面的设计,把实际问题和计算机应用合理的结合了起来。4.拟采取的研究方法、步骤、技术路线1.对当前的图书管理的方式和功能进行深入的了解,探讨中小型图书馆管理的方式。2.学好VB语言以及其和Access相结合的开发方法。3.把计算机运用到实际的管理之中,利用VB进行编程,并在该环境下进行图书管理的实际操作。5.使用的主要仪器设备、开发工具仪器设备:电脑一台、VB 6。0软件、Microsoft Access2002软件。6.参考文献B:1 陈艳华,深入浅出Access 2002数据库实例开发M,中国青年出版社,2003, B:2 HTML,VBSCRIPT与ASP三合一最新培训教程。电子工业出版社出版,曹建主编,杨静等编著。2004年。 B:3 Visual Basic 网络程序设计。人民邮电出版社出版。卡志强编著,2004年。B:4 苗雪兰,刘瑞新,王怀峰,数据库系统原理及应用教程M,机械工业出版社,2001年。B:5 张海藩,软件工程导论M,清华大学出版社,1998年。B:6 张丕军,杨顺花,王靖诚, 中文版PhotoshopCS完全自学手册M,海洋出版社,2005年。注:1、 开题报告是本科生毕业设计(论文)的一个重要组成部分。学生应根据毕业设计(论文)任务书的要求和文献调研结果,在开始撰写论文之前写出开题报告。2、 参考文献按下列格式(A为期刊,B为专著)A:序号、作者(外文姓前名后,名缩写,不加缩写点,3人以上作者只写前3人,后用“等”代替。)、题名、期刊名(外文科缩写,不加缩写点)、年份、卷号(期号):起止页码。B:序号、作者、书名、版次(初版不写)、出版地、出版单位、出版时间、页码。3、表中各项可加附页。本科生毕业设计(论文)任务书 系(教研室)主任审批 数学与计算科学学 院 信息与计算科学 系(教研室) 签名: 日期: 学生姓名: 学号: 101071069 专业: 信息与计算科学 1、 设计(论文)题目及专题: 职工工资管理信息系统 2、 学生设计(论文)时间:自 2005年 1 月 5 日开始至 2005 年 5 月 20 日止3、设计(论文)所用资料和参考资料:1 陈艳华,深入浅出Access 2002数据库实例开发M,中国青年出版社,2003.53-57. 2 HTML,VBSCRIPT与ASP三合一最新培训教程。电子工业出版社,曹建主编,杨静等编著。2004 .142-148. 3 Visual Basic 网络程序设计.人民邮电出版社出版.卡志强编著.2004.39-75. 4 苗雪兰,刘瑞新,王怀峰、数据库系统原理及应用教程M,机械工业出版社,2001.175-198. 5 张海藩.软件工程导论M.清华大学出版社.1998.18-35. 6 张丕军,杨顺花,王靖诚, 中文版PhotoshopCS完全自学手册M,海洋出版社,2005.193-245. 4、设计(论文)完成的主要内容:本文主要介绍职工工资管理信息系统的开发过程。论文详尽地论述从需求分析,系统分析,概要设计,详细设计,到测试与调试的整个开发过程,总结开发过程中的经验及本系统今后的改进方向。 5、提交设计(论文)形式(设计说明与图纸或论文等)及要求: 提交职工工资信息管理系统的毕业设计 论文(打印版)一份及相同内容的电子文档一份 6、发题时间: 2005年 1 月 5 日 指导老师(签名): 学 生(签名): 职工工资综合管理系统的设计与实现目 录前 言1一 系统设计2(一)系统功能分析2(二)系统功能模块设计2二、数据库设计5(一)数据库需求分析5(二) 数据库概念结构设计5(二)数据库逻辑结构设计7三、数据库结构的实现9四、系统安全性的设计11(一)对用户密码使用了加密解密技术,安全性更高11五、创建应用程序12六 登 陆 窗 口 设 计14七 职 工 工 资 主 界 面 设 计16八 人 员 管 理 主 界 面 设 计17九 职 位 管 理 主 界 面 设 计19十 特 殊 项 管 理 主 界 面 设 计21十一 工 资 发 放 管 理 主 界 面23十二 详细代码(附)25结 束 语48参考文献48前 言现代企业都需要职工工资管理,特别是工资内容日益丰富的社会,工资管理工作更是不可缺少。电脑管理也成为企业管理必不可少的一个方面,而现在很多企业单位虽然使有电脑,但大多数都是人工记帐与电脑统计相结合的方式,由于顾客、供货商很多,为此总是产生大量的单据,而一般企业又往往是从事业务的人员很多,而作统计工作的只有一到两人,所以经常出现单据丢失现象,以至造成一些不必要的损失,例如工资发放账目不对应,发工资不及时等等问题,且查对时需要相当长的时间,因此而白白耗费了大量人力与时间,为管理上带来了诸多的困难与不便。作为计算机专业即将毕业一名学生,在本次毕业设计中我选择了职工工资管理系统,如该系统得以实施。将解决上述问题。系统将把所有进货、销货、库存的记录、单据一一登记,并可以快速查找与分类这些数据,同时可以随时备份各种数据以便计算机的维护。职工工资管理系统包括对工资发放进行管理,职工信息管理。如果一个部门或单位没有工资管理系统,那么必将会使本单位的工资管理,如果使用传统的人工统计,不仅耗费财力、物力、人力,同时也容易出现错误,也不能及时的进行查对工作。一个良好的工资管理系统就可以完全解决这些方面的不足之处。也会促使部门或单位向着健康有序的方面发展。在此运用Visual basic 设计软件开发一个较为全面的仓库管理系统以便适合任何一个单位或部门对仓库进行管理的系统。一 系统设计(一) 系统功能分析系统开发的总体任务就是实现职工工资成绩管理的系统化、规范化和自动化。职工工资成绩综合管理系统需要完成的主要功能有: 职工基本信息的录入 职工基本信息的修改 职工基本信息的查询 职工基本信息的删除 职工工资信息的录入 职工工资信息的修改 职工工资信息的查询 职工工资信息的删除(二) 系统功能模块设计对上述功能进行集中、分块和分析,按照结构化程序设计的要求,得到如图1所示的系统功能模块图。职工综合管理系统职工基本信息管理学生成绩信息管理职工基本信息修改职工基本信息 查询职工基本信息删除系统设置职工基本信息添加用户管理密码修改职工工资信息添加职工工资信息修改职工工资信息查询职工工资信息删 除图 1 系 统 功 能 模 块 图录入添加信 息查询条件的 输 入选择删除的记录职工工资信息删除 职工工资信息修改 录入修改信 息职工工资信息添加 职工工资信息查询 职工基本信息管理 职工工资信息管理 查询条件的 输 入职工基本信息查询 录入添加信 息职工基本信息添加 选择删除的记录录入修改信 息职工基本信息删除 职工基本信息修改 管理后的数据图 2 系 统 数 据 流 程 图二、数据库设计(一) 数据库需求分析用户的需求具体体现在各种信息的提供、保存、更新和查询等方面。这就要求数据库结构能充分满足各种信息的输入和输出。收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为下一步的数据库具体设计做好充分的准备。在仔细分析调查有关职工工资综合管理系统需求的基础上,将得到如图 2 所示的本系统所处理的数据流程。针对一般职工工资综合管理系统的需求,通过对职工各种信息变动过程的内容和数据流程分析,设计如下面所示的数据项和数据结构:职工基本信息,包括的数据项有:职工ID、姓名、性别、出生年月、工作年月。特殊项信息,包括的数据项有:职工ID、特殊项ID、特殊项金额、特殊项时间等。职位信息,包括的数据项有:职位,基本工资,津贴。设计好上面的数据结构、数据项和数据流程,就可以开始下面的数据库设计。(二)数据库概念结构设计得到上面的数据项和数据结构以后,就可以设计出能够满足用户需要的各种实体以及它们之间的关系,为后面的逻辑结构设计打下好的基础。这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。根据上面的设计,得到的实体有:职工基本信息实体、特殊项信息实体,职位信息实体。各个实体的描述E-R图,如下所示。职工基本信息实体的E-R图,如图 3所示。职工ID工作年月职工基本信息实体职工姓名出生年月图 3 职工基本信息实体的E-R图特殊项信息实体的E-R图,如图 4所示。职工ID日 期特殊项信息实体特殊项ID 特殊项金额图 4 特殊信息实体的E-R图各个实体之间关系的E-R图,如图 5所示职工信息变 动职工基本信息管理职工成绩信息管理图 5 各个实体之间关系的E-R图(二) 数据库逻辑结构设计现在需要把上面设计好的数据库概念结构转化为Microsoft Access 2000数据库系统所支持的实际数据库模型,也就是数据库的逻辑结构。学生学籍成绩综合管理系统数据库中各个表格的设计结果如下面表格所示。每个表格对应于数据库中的一个表。其中,表 1 为职工信息表, 表2为特殊项信息表,表 3 为系统用户口令表。表1 score 职工信息表列 名数 据 类 型可 否 为 空说 明职工IDNUMBERNOT NULL职工ID职位VARCHARNOT NULL职工职位姓名VARCHARNOT NULL职工姓名性别VARCHARNOT NULL职工性别出生年月VARCHARNULL职工出生年月工作年月VARCHARNULL职工工作年月表2 特殊项信息表列 名数 据 类 型可 否 为 空说 明特殊象IDNUMBERNOT NULL职工特殊项ID职工IDNUMBERNOT NULL职工的ID特殊项名称VARCHARNOT NULL特殊项的名称特殊象日期VARCHARNOI NULL特殊项的日期因为本系统采用了用户管理模式,所以在系统中应设立数据库管理表3 user_pswd 用户口令表列 名数 据 类 型可 否 为 空说 明pswdVARCHARNOT NULL口令userVARCHARNOTNOT NULL用户名三、数据库结构的实现在需求分析、概念结构设计的基础上得到数据库逻辑结构以后,就可以在数据库系统中实现该逻辑结构。本系统使用的是Microsoft Access 2000数据库系统,下面说明创建数据库的过程。图 6(数据库操作模拟图)(1) 打开Microsoft Access 2000数据库系统如图6所示,打开下拉菜单,选者新建空白数据库。(2) 在数据库文件格式中选择“使用设计器创建”,加入所需要的字段名,和所需要的格式说明。(3) 如图7所示再设立头文件,建立数据库的工作完成图 7。四、系统安全性的设计(一)对用户密码使用了加密解密技术,安全性更高( 测试的用户 密码 ) :Administrator Administrator系统默认的用户名和密码为Administrator,管理员可以根据需要设定密码,和增加用户名。五、创建应用程序该职工工资综合管理系统应用程序使用Microsoft Visual Basic方法开发,工程的创建步骤如下:(1) 选择窗口中的 “新建项目”选项卡中 “标准EXE”,。(1) 选择“打开”选项,如上图 所示。图 6 选择基于对话框的应用程序第一步(2) 为了程序能支持数据库对象,在头文件stdafx.h中加入#include 。六 登 陆 窗 口 设 计由于此应用程序采用的是基于对话框的开发,因此该应用程序的主对话框(即运行应用程序后出现的对话框)就应是登录窗口。该窗口的设计如图 7所示。为了数据库的使用安全,系统有默认的Administrator帐户,在后面具体模块设计时会有详细的介绍。单击 “身份验证” 按钮后,应用程序会首先执行一次数据库查询,看输入的用户名和口令是不是在数据库的user表中存在,如果存在则打开系统管理功能选择对话框,若没有找到,则有相应的提示,并给予用户再次尝试的机会,如果为成功则会不允许进入此系统。图 7 登陆窗口上的控件布局实现这些功能的代码写在“身份验证”按钮的单击事件函数中:Private Sub cmdOK_Click() If (flag = True) ThenAdodc1.Recordset.MoveFirstAdodc1.Recordset.MoveNextNext i ElseMsgBox 你的用户名或密码有误, vbCritical, 警告frmuser.txtUser = frmuser.txtPassword = End If(具体内容请见第17节中的详细源代码 - 第 17 页)在此过程中对用户输入的密码用解密函数分析数据库中的密码进行判断。七 职 工 工 资 主 界 面 设 计由系统功能选择功能进入系统设置窗口后,将出现如图 9所示的操作选择窗口, 各个按钮单击完成的功能简单介绍如下: “人员管理”:打开进入 “人员管理模块”。 “职位管理”:打开进入 “职位管理模块”。 “特殊项管理”:打开进入 “特殊项管理模块”。 “工资发放管理”:打开进入 “工资发放管理模块” “退出”:打开退出本系统图 9 系统设置窗口的控件布局八 人 员 管 理 主 界 面 设 计人员管理主界面是一个综合性操作界面,由一个大的窗口组成,包括四个List Control控件:添加、删除、修改、退出。在窗口的左部分显示职工的基本信息;窗口的右边是来使用各项操作该窗口由主窗口上的 “人员管理”按钮单击事件激发。 职工信息主界面如图 12所示。图 12 职工信息主界面窗口上控件的布局下面解释各个功能实现的大体过程。当点击“添加”里的记录时,在出现图表添加职工信息 当点击“添加”控件时,则调用如下函数:.Private Sub cmdCancel_Click()Me.HideEnd Sub初始化Private Sub Form_activate()lblField(0).Caption = 职工IDlblField(1).Caption = 职位lblField(2).Caption = 姓名lblField(3).Caption = 性别lblField(4).Caption = 出生年月lblField(5).Caption = 工作年月.End SubPrivate Sub lblField_Click(Index As Integer)End Sub(具体内容请见第17节中的详细源代码 -第21-22 页8.1)l 当点击“修改”选项,则弹出新的对话框如图所示,根据数据项所指选择所需要修改的职工,调用以下函数:刷新数据,保持一致Private Sub Form_activate()lblField(0).Caption = 职工IDlblField(1).Caption = 职位lblField(2).Caption = 姓名lblField(3).Caption = 性别lblField(4).Caption = 出生年月lblField(5).Caption = 工作年月保证职工ID不会被改变txtValue(0).Locked = TrueEnd SubPrivate Sub lblField_Click(Index As Integer)End Sub。为了保持数据的完整性,函数中使用了“保证职工ID不会被改变”,来保证职工的基本数据不被删除。(具体内容请见第12节中的详细源代码 - 第 22-23 页8.2)l 当选择“退出”时,系统将返回到住界面,方便用户继续进行相关的操作。九 职 位 管 理 主 界 面 设 计职位管理是对职工职位进行管理,包括了“添加”,“修改”,“删除”,“取消”四个控件。窗口的左边显示职工所出的职位,右边显示管理员所需要进行的操作。 当点击“添加”控件时,则弹出对话框,在相应的表格中加入职工的“职位”,“基本工资”,“津贴”。在点击添加便完成了操作。调用如下函数Private Sub cmdPrint_Click()部分代码如下:.Private Sub cmdCancel_Click()Me.HideEnd SubPrivate Sub Form_activate()For i = 0 To 2txtValue(i).Text = NextEnd SubPrivate Sub lblField_Click(Index As Integer)End Sub(具体内容请见第12节中的详细源代码 - 第 23-25页9。1节)l 当点击“修改”时,同职工管理类似,选择所需修改的数据便可。调用的函数如下:.For i = 0 To 2PosForm.DataGrid1.Row = PosForm.CurPosPosForm.DataGrid1.Col = itxtValue(i) = PosForm.DataGrid1.TextNexttxtValue(0).Locked = TruetxtValue(0).Text = PosForm.CurPosEnd Sub(具体内容请见第12节中的详细源代码 - 第 25-26页9。2节)l 选择“退出”选项时,将返回主界面,方便用户进行其他相关操作。十 特 殊 项 管 理 主 界 面 设 计特殊项管理是对于职工工作中发生的一些特殊的工资问题如迟到,早退,项目提成等等一些出于基本工作外的事情进行的工资调整。同样包括了“添加”,“修改”,“删除”,“退出”三个选项,其主页面图如下: 当点击“添加”控件时,则弹出对话框,在相应的表格中加入相应特殊项的“特殊项ID”,“职工ID”,“特殊项名称”,“特殊项金额”,“特殊项日期”。在点击添加便完成了操作。调用如下函数Private Sub cmdPrint_Click()其代码如下:保证姓名与ID一致Private Sub cmbName_Click()cmbID.Text = cmbID.List(cmbName.ListIndex)End Sub.lblField(2).Caption = 特殊项名称lblField(3).Caption = 特殊项金额lblField(4).Caption = 特殊项日期For i = 2 To 4txtValue(i) = NextcmbID.ClearcmbName.Clear.(具体内容请见第12节中的详细源代码 - 第 27-28页10.1节)保持ID和姓名一致可以防止职工特殊项出错误。l 当点击“修改”时,选择所需修改的数据。调用的函数如下:Private Sub cmdCancel_Click()intErrFileNo = FreeFile()Private Sub Form_activate()(具体内容请见第12节中的详细源代码 - 第 28-30页10.2节)l 当选择“退出”时,系统将返回到主界面,方便用户继续进行相关的操作。十一 工 资 发 放 管 理 主 界 面工资发放管理包括“生成月表”,“查询是否发放工资”,“发放工资”,“打印列表”能够对职工工资发放进行管理,使工资的发放更加方便。其主界面如下:l 查询职工是否已经领取工资在“员工姓名”选择所需要服务的职工名称,并输入所查询的月份,点击“查询”,提示是否领取。在查询中调用了查询函数:SQL = select 工资取毕 from & Format(CDate(cmbMonth.Text), YYYYMM) & where 职工ID = & cmbEmployee.Text & 从数据库中间调用数据.l 管理员可以根据需要生成所需要月表,在选定了职工姓名和月份的情况下。并可连接打印机进行打印。调用函数Private Sub cmdPrint_Click()其部分代码如下:.SQL = SELECT 职工ID FROM 职工OpenRS (SQL)gRst.MoveFirstDim counts As IntegergRst.MoveLastcounts = gRst.RecordCountgRst.MoveFirstReDim mEIDs(counts)ReDim mSum(counts)Dim i As Integeri = 0While Not gRst.EOFi = i + 1mEIDs(i) = gRst(职工ID)gRst.MoveNextWendCloseRS.运用代码:Private Sub cmdPrint_Click()On Error Resume NextgX.Workbooks.Open App.Path & & mMonth & 细表.xlsSet mSheet = gX.ActiveSheetmSheet.PrintOutgX.Workbooks.CloseEnd Sub来把数据输入打印机进行打印。十二 详细代码(附)第6节Private Sub cmdOK_Click()Dim i As IntegerDim flag As BooleanDim user As String, password As Stringflag = Falseuser = Trim(txtUser.Text)password = Trim(txtPassword.Text)If Adodc1.Recordset.EOF Or Adodc1.Recordset.BOF ThenExit SubEnd IfAdodc1.Recordset.MoveFirstFor i = 1 To Adodc1.Recordset.RecordCountIf (user = Trim(Adodc1.Recordset.Fields(user) And password = Trim(Adodc1.Recordset.Fields(password) Thenflag = TrueExit ForEnd IfAdodc1.Recordset.MoveNextNext iIf (flag = True) ThenMainForm.ShowElseMsgBox 你的用户名或密码有误, vbCritical, 警告frmuser.txtUser = frmuser.txtPassword = End IfEnd SubPrivate Sub cmdReset_Click()frmuser.txtUser = frmuser.txtPassword = End SubPrivate Sub Label1_Click()End Sub添加员工Private Sub cmdAdd_Click()打开错误处理陷阱Dim intErrFileNo As Integer 自由文件号On Error GoTo ErrGoto-生成SQL语句SQL = INSERT INTO 职工(职工ID,职位,姓名,性别,出生年月,工作年月) VALUES(SQL = SQL & txtValue(0).Text & ,SQL = SQL & txtValue(1).Text & ,SQL = SQL & txtValue(2).Text & ,SQL = SQL & txtValue(3).Text & ,#SQL = SQL & txtValue(4).Text & #,#SQL = SQL & txtValue(5).Text & #)打开连接OpenDBFile执行SQL语句gCon.Execute SQL关闭连接CloseDBFile刷新数据HRForm.Adodc1.Refresh隐藏窗体Me.Hide-Exit Sub-ErrGoto:把错误信息保存在文件里intErrFileNo = FreeFile()Open YFSystem.ini For Append As intErrFileNoPrint #intErrFileNo, Chr(34) + Format(Now, YYYY-MM-DD HH:MM:SS) + Chr(34), Chr(34) + 信息 + Chr(34), Chr(34) + Err.Description + Chr(34), Chr(34) + cmdAdd_Click(AddEForm) + Chr(34), Chr(34) + App.Title + Chr(34)Close #intErrFileNoEnd SubPrivate Sub cmdCancel_Click()Me.HideEnd Sub!Private Sub cmdOK_Click()Dim i As IntegerDim flag As BooleanDim user As String, password As Stringflag = Falseuser = Trim(txtUser.Text)password = Trim(txtPassword.Text)If Adodc1.Recordset.EOF Or Adodc1.Recordset.BOF ThenExit SubEnd IfAdodc1.Recordset.MoveFirstFor i = 1 To Adodc1.Recordset.RecordCountIf (user = Trim(Adodc1.Recordset.Fields(user) And password = Trim(Adodc1.Recordset.Fields(password) Thenflag = TrueExit ForEnd IfAdodc1.Recordset.MoveNextNext iIf (flag = True) ThenMainForm.ShowElseMsgBox 你的用户名或密码有误, vbCritical, 警告frmuser.txtUser = frmuser.txtPassword = End IfEnd SubPrivate Sub cmdReset_Click()frmuser.txtUser = frmuser.txtPassword = End SubPrivate Sub Label1_Click()End Sub添加员工Private Sub cmdAdd_Click()打开错误处理陷阱Dim intErrFileNo As Integer 自由文件号On Error GoTo ErrGoto-生成SQL语句SQL = INSERT INTO 职工(职工ID,职位,姓名,性别,出生年月,工作年月) VALUES(SQL = SQL & txtValue(0).Text & ,SQL = SQL & txtValue(1).Text & ,SQL = SQL & txtValue(2).Text & ,SQL = SQL & txtValue(3).Text & ,#SQL = SQL & txtValue(4).Text & #,#SQL = SQL & txtValue(5).Text & #)打开连接OpenDBFile执行SQL语句gCon.Execute SQL关闭连接CloseDBFile刷新数据HRForm.Adodc1.Refresh隐藏窗体Me.Hide-Exit Sub-ErrGoto:把错误信息保存在文件里intErrFileNo = FreeFile()Open YFSystem.ini For Append As intErrFileNoPrint #intErrFileNo, Chr(34) + Format(Now, YYYY-MM-DD HH:MM:SS) + Chr(34), Chr(34) + 信息 + Chr(34), Chr(34) + Err.Description + Chr(34), Chr(34) + cmdAdd_Click(AddEForm) + Chr(34), Chr(34) + App.Title + Chr(34)Close #intErrFileNoEnd SubPrivate Sub cmdCancel_Click()Me.HideEnd Sub8.1节初始化Private Sub Form_activate()lblField(0).Caption = 职工IDlblField(1).Caption = 职位lblField(2).Caption = 姓名lblField(3).Caption = 性别lblField(4).Caption = 出生年月lblField(5).Caption = 工作年月For i = 0 To 5txtValue(i) = NextEnd SubPrivate Sub lblField_Click(Index As Integer)End Sub8.2节退出程序Private Sub cmdCancel_Click()Me.HideEnd Sub修改员工信息Private Sub cmdModify_Click()打开错误处理陷阱Dim intErrFileNo As Integer 自由文件号On Error GoTo ErrGoto-生成SQL语句SQL = UPDATE 职工 SET 职工ID = & txtValue(0).Text & _ ,职位 = & txtValue(1).Text & _ ,姓名 = & txtValue(2).Text & _ ,性别 = & txtValue(3).Text & _ ,出生年月 = # & txtValue(4).Text & _# ,工作年月 = # & txtValue(5).Text & _# WHERE 职工ID = & txtValue(0).Text & 打开连接OpenDBFile执行SQLgCon.Execute SQL关闭连接CloseDBFileMe.Hide刷新数据HRForm.Adodc1.Refresh-Exit Sub-ErrGoto:把错误信息保存在文件里intErrFileNo = FreeFile()Open YFSystem.ini For Append As intErrFileNoPrint #intErrFileNo, Chr(34) + Format(Now, YYYY-MM-DD HH:MM:SS) + Chr(34), Chr(34) + 信息 + Chr(34), Chr(34) + Err.Description + Chr(34), Chr(34) + Command1_Click(AddEForm) + Chr(34), Chr(34) + App.Title + Chr(34)MsgBox Err.DescriptionClose #intErrFileNoEnd Sub刷新数据,保持一致Private Sub Form_activate()lblField(0).Caption = 职工IDlblField(1).Caption = 职位lblField(2).Caption = 姓名lblField(3).Caption = 性别lblField(4).Caption = 出生年月lblField(5).Caption = 工作年月For i = 0 To 5当前行HRForm.DataGrid1.Row = HRForm.CurEm对应列HRForm.DataGrid1.Col = itxtValue(i) = HRForm.DataGrid1.TextNext保证职工ID不会被改变txtValue(0).Locked = TrueEnd SubPrivate Sub lblField_Click(Index As Integer)End Sub91节添加职位Private Sub cmdAdd_Click()打开错误处理陷阱Dim intErrFileNo As Integer 自由文件号On Error GoTo ErrGoto-生成SQL语句SQL = INSERT INTO 职位(职位,基本工资,津贴) VALUES(SQL = SQL & txtValue(0).Text & ,SQL = SQL & txtValue(1).Text & ,SQL = SQL & txtValue(2).Text & )打开数据连接OpenDBFile执行SQL语句gCon.Execute SQL关闭数据连接CloseDBFile刷新数据PosForm.Adodc1.RefreshMe.Hide-Exit Sub-ErrGoto:把错误信息保存在文件里intErrFileNo = FreeFile()Open YFSystem.ini For Append As intErrFileNoPrint #intErrFileNo, Chr(34) + Format(Now, YYYY-MM-DD HH:MM:SS) + Chr(34), Chr(34) + 信息 + Chr(34), Chr(34) + Err.Description + Chr(34), Chr(34) + Command1_Click(AddEForm) + Chr(34), Chr(34) + App.Title + Chr(34)Close #intErrFileNoMe.HideEnd SubPrivate Sub cmdCancel_Click()Me.HideEnd SubPrivate Sub Form_activate()lblField(0).Caption = 职位lblField(1).Caption = 基本工资lblField(2).Caption = 津贴For i = 0 To 2txtValue(i).Text = NextEnd SubPrivate Sub lblField_Click(Index As Integer)End Sub9.2节退出窗口Private Sub cmdCancel_Click()Me.HideEnd Sub修改职位Private Sub cmdModify_Click()打开错误处理陷阱Dim intErrFileNo As Integer 自由文件号On Error GoTo ErrGoto-生成SQL语句SQL = UPDATE 职位 SET & _ 职位 = & txtValue(0).Text & , & _ 基本工资 = & txtValue(1).Text & , & _ 津贴 = & txtValue(2).Text & , & _ 奖金 = & txtValue(3).Text & _ WHERE 职位= & txtValue(0).Text & 打开数据连接OpenDBFile执行SQLgCon.Execute SQL关闭连接CloseDBFileMe.Hide刷新数据PosForm.Adodc1.Refresh-Exit Sub-ErrGoto:把错误信息保存在文件里intErrFileNo = FreeFile()Open YFSystem.ini For Append As intErrFileNoPrint #intErrFileNo, Chr(34) + Format(Now, YYYY-MM-DD HH:MM:SS) + Chr(34), Chr(34) + 信息 + Chr(34), Chr(34) + Err.Description + Chr(34), Chr(34) + Command1_Click(AddEForm) + Chr(34), Chr(34) + App.Title + Chr(34)Print #intErrFileNo, Err.DescriptionClose #intErrFileNoEnd Sub窗体初始显示Private Sub Form_activate()lblField(0).Caption = 职位lblField(1).Caption = 基本工资lblField(2).Caption = 津贴For i = 0 To 2PosForm.DataGrid1.Row = PosForm.CurPosPosForm.DataGrid1.Col = itxtValue(i) = PosForm.DataGrid1.TextNexttxtValue(0).Locked = TruetxtValue(0).Text = PosForm.CurPosEnd SubPrivate Sub lblField_Click(Index As Integer)End Sub10.1节保证姓名与ID一致Private Sub cmbName_Click()cmbID.Text = cmbID.List(cmbName.ListIndex)End Sub添加Private Sub cmdAdd_Click()打开错误处理陷阱Dim intErrFileNo As Integer 自由文件号On Error GoTo ErrGoto-生成SQL语句SQL = INSERT INTO 特殊项(职工ID,特殊项名称,特殊项金额,特殊项日期) VALUES(SQL = SQL & cmbID.Text & ,SQL = SQL & txtValue(2).Text & ,SQL = SQL & txtValue(3).Text & ,#SQL = SQL & txtValue(4).Text & #)打开数据连接OpenDBFile执行SQLgCon.Execute SQL关闭数据连接CloseDBFileMe.Hide刷新数据SpecialForm.Adodc1.Refresh-Exit Sub-ErrGoto:把错误信息保存在文件里intErrFileNo = FreeFile()Open YFSystem.ini For Append As intErrFileNoPrint #intErrFileNo, Chr(34) + Format(Now, YYYY-MM-DD HH:MM:SS) + Chr(34), Chr(34) + 信息 + Chr(34), Chr(34) + Err.Description + Chr(34), Chr(34) + Command1_Click(AddEForm) + Chr(34), Chr(34) + App.Title + Chr(34)MsgBox Err.DescriptionClose #intErrFileNoMe.HideEnd Sub退出Private Sub cmdCancel_Click()Me.HideEnd Sub初始化Private Sub Form_activate()打开错误处理陷阱Dim intErrFileNo As Integer 自由文件号On Error GoTo ErrGoto-lblField(2).Caption = 特殊项名称lblField(3).Caption = 特殊项金额lblField(4).Caption = 特殊项日期For i = 2 To 4txtValue(i) = NextcmbID.ClearcmbName.Clear打开数据集OpenRS Select 职工ID,姓名 from 职工添加到ComboBox中While Not gRst.EOFcmbID.AddItem gRst(职工ID)cmbName.AddItem gRst(姓名)gRst.MoveNextWend关闭数据集CloseRS-Exit Sub-ErrGoto:把错误信息保存在文件里intErrFileNo = FreeFile()Open YFSystem.ini For Append As intErrFileNoPrint #intErrFileNo, Chr(34) + Format(Now, YYYY-MM-DD HH:MM:SS) + Chr(34), Chr(34) + 信息 + Chr(34), Chr(34) + Err.Description + Chr(34), Chr(34) + Form_Load(AddSForm) + Chr(34), Chr(34) + App.Title + Chr(34)Close #intErrFileNoEnd SubPrivate Sub lblField_Click(Index As Integer)End Sub10.2节Private Sub cmdCancel_Click()Unload MeEnd SubPrivate Sub cmdModify_Click()打开错误处理陷阱Dim intErrFileNo As Integer 自由文件号On Error GoTo ErrGoto-SQL = UPDATE 特殊项 SET 特殊项ID = & txtValue(0).Text & _ ,职工ID = & txtValue(1).Text & _ ,特殊项名称 = & txtValue(2).Text & _ ,特殊项金额 = & txtValue(3).Text & _ ,特殊项日期 = # & txtValue(4).Text & _# WHERE 特殊项ID =, & txtValue(0).Text & OpenDBFilegCon.Execute SQLCloseDBFileMe.HideSpecialForm.Adodc1.Refresh-Exit Sub-ErrGoto:把错误信息保存在文件里intErrFileNo = FreeFile()Open YFSystem.ini For Append As intErrFileNoPrint #intErrFileNo, Chr(34) + Format(Now, YYYY-MM-DD HH:MM:SS) + Chr(34), Chr(34) + 信息 + Chr(34), Chr(34) + Err.Description + Chr(34), Chr(34) + Command1_Click(AddEForm) + Chr(34), Chr(34) + App.Title + Chr(34)Print #intErrFileNo, Err.DescriptionClose #intErrFileNoMe.HideEnd SubPrivate Sub Form_activate()lblField(0).Caption = 特殊项IDlblField(1).Caption = 职工IDlblField(2).Caption = 特殊项名称lblField(3).Caption = 特殊项金额lblField(4).Caption = 特殊项日期For i = 0 To 4SpecialForm.DataGrid1.Col = itxtValue(i) = SpecialForm.DataGrid1.TextNexttxtValue(0).Locked = TrueEnd SubPrivate Sub lblField_Click(Index As Integer)End Sub111节Option Explicit月表的名称动态生成在cmbMonth中用户可以填入2003-6, 2003-06, 2003-06-01等格式而月表的名称都会变为200306Public mTableName As String员工工资总额计算得到Public mSum As Double当单击cmbEmployee框,保证与cmbName的一致性Private Sub cmbEmployee_Click()cmbName.Text = cmbName.List(cmbEmployee.ListIndex)cmbEmployee.Text = cmbEmployee.List(cmbEmployee.ListIndex)End Sub当cmbMonth框发生改变,保证月表名称一致Private Sub cmbMonth_Change()mTableName = Format(CDate(cmbMonth.Text), YYYYMM)cmbMonth.Text = mTableNameEnd Sub当单击cmbEmployee框,保证与cmbName的一致性Private Sub cmbName_Click()cmbEmployee.Text = cmbEmployee.List(cmbName.ListIndex)cmbName.Text = cmbName.List(cmbName.ListIndex)End Sub退出窗体Private Sub cmdCancel_Click()Me.HideEnd Sub生成月表之所以使用On Error Resume Next是为了避免出现数据的不完整问题Private Sub cmdGenerate_Click()On Error Resume Next-Dim SQL As String打开数据连接OpenDBFile生成月表mTableName = Format(CDate(cmbMonth.Text), YYYYMM)MakeUpTableCloseDBFile初始化月表中的数据SQL = SELECT 职工ID FROM 职工OpenRS (SQL)gRst.MoveFirstWhile Not gRst.EOFSQL = INSERT INTO & mTableName & (职工ID, 工资取毕, 工资) VALUES( & gRst(职工ID) & , NO, 0)gCon.Execute SQLgRst.MoveNextWendCloseRSEnd Sub发放工资Private Sub cmdPay_Click()打开错误处理陷阱Dim intErrFileNo As Integer 自由文件号On Error GoTo ErrGoto-打开数据连接OpenDBFile执行修改数据库gCon.Execute UPDATE & mTableName & SET 工资取毕=1, 工资= & mSum & WHERE 职工ID = & cmbEmployee.Text & 显示结果MsgBox cmbEmployee.Text & 的工资已经发放完毕关闭连接CloseDBFile-Exit Sub-ErrGoto:把错误信息保存在文件里intErrFileNo = FreeFile()Open YFSystem.ini For Append As intErrFileNoPrint #intErrFileNo, Chr(34) + Format(Now, YYYY-MM-DD HH:MM:SS) + Chr(34), Chr(34) + 信息 + Chr(34), Chr(34) + Err.Description + Chr(34), Chr(34) + cmdPay_Click(PayForm) + Chr(34), Chr(34) + App.Title + Chr(34)MsgBox 发放中出现错误: & Err.DescriptionClose #intErrFileNoEnd Sub打印报表Private Sub cmdPrint_Click()打开错误处理陷阱Dim intErrFileNo As Integer 自由文件号On Error GoTo ErrGoto-Dim sheet As WorksheetSet sheet = gX.ActiveSheetsheet.PrintOut-Exit Sub-ErrGoto:把错误信息保存在文件里intErrFileNo = FreeFile()Open YFSystem.ini For Append As intErrFileNoPrint #intErrFileNo, Chr(34) + Format(Now, YYYY-MM-DD HH:MM:SS) + Chr(34), Chr(34) + 信息 + Chr(34), Chr(34) + Err.Description + Chr(34), Chr(34) + cmdPrint_Click(PayForm) + Chr(34), Chr(34) + App.Title + Chr(34)Print #intErrFileNo, Err.DescriptionClose #intErrFileNoEnd Sub查询并显示本月工资Private Sub cmdTest_Click()打开错误处理陷阱Dim intErrFileNo As Integer 自由文件号Dim sheet As WorksheetDim SQL As String, i As IntegerOn Error GoTo ErrGoto-If cmbEmployee.Text And cmbMonth.Text Then查询工资领取情况SQL = select 工资取毕 from & Format(CDate(cmbMonth.Text), YYYYMM) & where 职工ID = & cmbEmployee.Text & 打开数据集OpenRS (SQL)gRst.MoveFirstIf gRst(工资取毕) = True ThenMsgBox 员工: & cmbEmployee.Text & 已经取过 & cmbMonth.Text & 的工资ElseMsgBox 员工: & cmbEmployee.Text & 还没有取过 & cmbMonth.Text & 的工资End IfCloseRS职位相关的工资和今天SQL = SELECT * FROM 职工,职位 where 职工.职位 = 职位.职位 and 职工.职工ID = & cmbEmployee.Text & OpenRS (SQL)gRst.MoveFirst打开Excel对象,准备输入信息Set gX = GetObject(, Excel.Application)gX.Workbooks.AddOLE1.Visible = True设置Worksheet对象Set sheet = gX.ActiveSheet报表题目sheet.Cells(1, 1) = cmbMonth.Text & 月工资表职工的基本信息sheet.Cells(2, 1) = 员工编号:sheet.Cells(2, 2) = cmbEmployee.Textsheet.Cells(2, 3) = 员工职位:sheet.Cells(2, 4) = gRst(职工.职位)sheet.Cells(2, 5) = 员工姓名:sheet.Cells(2, 6) = gRst(姓名)职工的一般工资信息sheet.Cells(3, 1) = 基本工资sheet.Cells(3, 2) = gRst(基本工资)sheet.Cells(3, 3) = 津贴sheet.Cells(3, 4) = gRst(津贴)mSum = sheet.Cells(3, 2) + sheet.Cells(3, 4)CloseRS搜索当月属于该员工的特殊项每个月按30天算SQL = SELECT * FROM 特殊项 WHERE 职工ID = & cmbEmployee.Text & AND 特殊项日期 = # & cmbMonth.Text & # and 特殊项日期 # & CStr(CDate(cmbMonth.Text) + 30) & #OpenRS (SQL)i = 3If Not (gRst.BOF Or gRst.EOF) ThengRst.MoveFirstWhile Not gRst.EOFi = i + 1sheet.Cells(i, 1) = 特殊项名称sheet.Cells(i, 2) = gRst
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。