您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 薪酬管理 > 工资管理系统模块中的代码和界面
工资管理系统模块中的代码和界面:PublicFunctionconnectstring()AsString'返回一个数据库连接'将字符串赋给用户自定义函数名,即可返回connectstring=Provider=SQLOLEDB;IntegratedSecurity=SSPI;PersistSecurityInfo=False;UserID=sa;InitialCatalog=员工薪资管理系统;DataSource=127.0.0.1'DataSource=.也可以'IntegratedSecurity:用于指定采用的集成安全机制'PersistSecurityInfo:是否支持安全信息(是否保存密码)'Initialcatalog:用于指定要连接的数据库名称'DataSource:用于指定连接的计算机sql服务器名,或写成本地计算机'Microsoft建议所有的基于Win32的应用程序开发者在进行安全分布式应用程序的开发时使用SSPI的集成安全特性EndFunction1.创建系统登陆窗体,具体方法如下。系统登陆窗体中需要输入登陆用户名和密码,并可以请求验证或退出登陆。在工程中添加一个标准窗体,按照图5-1设计需要的登陆窗体。将窗体命名为“frm_login,窗体文件保存为“frmSysLogon.frm。图5-1用户登录2.实现系统登陆功能,具体方法如下。(1)定义窗体级变量。在窗体代码通用声明部分定义保存允许用户验证登陆信息最大次数的窗体级变量,语句如下所示:ConstMaxLogTimesAsInteger=3'定义允许用户验证登陆信息的最大次数(2)实现登陆身份验证。在用户输入用户名和密码之后,单击登陆按钮提交登陆信息,在按钮的单击事件过程完成所有验证操作,实现代码如下:PrivateSubcmdOK_Click()DimintcheckedAsIntegerDimstrnameAsString,strpasswordAsString'静态常量intLogTimes用于保存用户请求验证的次数StaticintlogtimesAsIntegerintlogtimes=intlogtimes+1'保存登陆次数IfintlogtimesmaxlogtimesThen'超过允许的登陆次数,显示提示信息MsgBox你已经超过允许的登录验证次数!&vbcr_&应用程序将结束!,vbCritical,登录验证End'结束应用程序Else'进一步验证登录信息的合法性strname=Trim(txtlog(0).Text)'获得用户名strpassword=Trim(txtlog(1).Text)'获得口令'检验用户名和口令的合法性,并根据检验返回值执行相应的操作SelectCasecheck_password(strname,strpassword)Case0'用户不是系统用户MsgBox用户不是系统用户,请检查用户名是否输入正确!,vbCritical,登录验证txtlog(0).SetFocustxtlog(0).SelStart=0txtlog(0).SelLength=Len(txtlog(0))Case1'口令错误MsgBox口令错误,请重新输入!,vbCritical,登录验证txtlog(1)=txtlog(1).SetFocusCase2UnloadMe'口令正确,卸载登录窗体MsgBox登陆成功,将启动系统程序!,vbInformation,登录验证frmmain.ShowCaseElse'登录验证未正常完成MsgBox登录验证未正常完成!请重新运行登陆程序,&vbcrlf_&如果仍不能登录,请报告系统管理员!,vbCritical,登录验证EndSelectEndIfEndSub(3)实现退出登陆功能。单击取消按钮,退出登陆程序,实现代码如下:PrivateSubcmdCancel_Click()'请求用户确认是否真的退出系统登陆IfMsgBox(“你选择了退出系统登陆,退出将不能启动管理系统!”&vbCRlF_&“是否真的退出?”,vbYesNO,“登陆验证”)=vbYesThenUnloadMe‘卸载登陆窗体EndIfEndSub3.实现员工信息管理功能员工信息管理功能包括员工与工资相关信息的添加、修改和删除以及记录浏览等操作。第一步,创建数据环境命令,具体方法如下。员工信息管理需要使用员工信息数据表,所以需要在数据环境中创建一个命令来访问该表。在数据环境设计器中为连接对象Wage_Manage_Con添加一个命令,将其命名为StuffData,CommandType属性设置为2(表示使用表对象),CommandText属性设置为“员工信息”,LockType属性设置为3(表示开放式锁定)。该命令返回的记录集使用Wage_Manage_Data.rsStuffData进行访问。第二步,创建员工信息管理窗体,具体方法如下。员工信息管理操作的所有操作设计都在一个窗体中完成,如图5-3-1所示。图5-1第三步,实现员工信息管理功能,具体方法如下。(1)定义窗体级变量。定义一个窗体级变量用于标识是否处于添加记录状态,当窗体处于添加记录状态时,必须完成保存操作之后才能执行其他管理操作,定义语句如下:DimisAddingAsBoolean'定义窗体状态标志(2)实现窗体初始化。在窗体加载时,窗体中默认显示“系统用户”数据表中的第一个记录数据,为了使txtNews文本框显示当前记录编号和记录总数,在窗体加载时执行按钮的单击事件过程,实现代码如下:PrivateSubForm_Load()CmdMove(0).Value=True'触发按钮单击事件EndSub(3)实现记录导航。为实现记录导航,使用pictureBox控件、命令按钮和文本框模拟实现了ADOData控件的导航条,该导航条具有浏览记录、显示当前记录编号和记录总数功能。实现记录导航功能的代码如下:PrivateSubcmdMove_Click(IndexAsInteger)WithWage_Manage_Data.rsSysUsersSelectCaseIndex‘切换当前记录Case0‘使第一个记录成为当前记录If.RecordCount0AndNot.BOFThen.MoveFirstCase1‘使上一个记录成为当前记录If.RecordCount0AndNot.BOFThen.MovePreviousIf.BOFThen.MoveFirstEndIfCase2‘使下一个记录成为当前记录If.RecordCount0AndNot.EOFThen.MoveNextIf.EOFThen.MoveLastEndIfCase3‘使最后一个记录成为当前记录If.RecordCount0AndNot.EOFThen.MoveLastEndselectIf.BOFAnd.EOFThentxtNews=“记录:无”‘显示当前记录编号和记录总数ElsetxtNews=“记录:”&.AbsolutePosition&“/”&.RecordCountEndIfEndWithEndSub(4)验证用户信息输入。在输入员工编号时,只允许输入数字作为编号,实现代码如下:验证员工编号输入PrivateSubtxtUser_KeyPress(KeyAsciiAsInteger)IfNot(Chr(KeyAscii)Like[0-9]OrKeyAscii=vbKeyBack)ThenKeyAscii=0‘输入不是数字,英文字母或退格键,取消输入EndIfpicNavigation.Enabled=FalsecmdAdd.Enabled=FalsecmdDelete.Enabled=FalseEndSub在验证输入时,将picNavigation的Enabled设置为False禁用导航条,这样在用户输入或修改当前记录数据时,不能通过导航条切换显示其他记录,必须在执行保存操作之后才行,从而避免出错。(5)强制保存当前记录修改。当用户修改当前记录数据时,禁用添加、删除按钮和导航条,在执行保存操作后再启用,这样可在执行保存操作时验证记录数据是否合法。实现代码如下:PrivateSubcmbTitle_KeyPress(KeyAsciiAsInteger)picNavigation.Enabled=FalsecmdAdd.Enabled=FalsecmdDelete.EnabledFalseEndSubPrivateSubcmbDuty_KeyPress(KeyAsciiAsInteger}picNavigation.EnabIed=FalsecmdAdd.Enabled=FalsecmdDelete.Enabled=FalseEndSubPrivateSubtxtTime_KeyPress(KeyAsciiAsInteger)piclVavigaEion.Enabled=FalsecmdAdd.Enabled=FalsecmdDelete.Enabled=FalseEndSubPrivateSubtxtlFser_KeyPress(KeyAsciiAsInteger)picNa}igation.Ena6led=FalsecmddAdd.Enalaled=FalsecmdDelete.Enabled=FalseEndSubPrivateSubtxtDeptesKeyPress(KeyAsciiAsInteger)picNavigation.Enabled=FalsecmdAdd.Enabled=FalsecmdDelete.Enabled=False(6)实现添加操作。在用户单击添加按钮时,向“员工信息”数据表中添加一条新记录,实现代码如下:PrivateSubcmdAdd_Click()WithWage_Manage_Data.rsSteffLData.AddNew'添加新记录txtNews=记录:&.AbsolutePosition&/&.ReordCountEndWithtxtNum=Format(Date,yyyymmdd)&-001'设置默认职工号cmbDuty=无'设置默认职务cmbTide=初级'设置默认职称txtTime=Format(Date,LongDate)'设置默认工作时间isAdding=TruecmdAdd.Enahled=False'在保存新记录之前禁用控件cmdDelete.Enabled=FalsepicNavigation.Enabled=FalseEndSub在添加新记录时将添加、删除按钮和导航条禁用,在执行保存操作时再启用。(7)实现删除操作。在用户单击删除按钮时,删除当前记录,实现代码如下:PrivateSubcmdDelete_Click()WithWage_Manage_Data.rsStuffDataIfNot.EOFThenIfMsgBox(将删除&Trim(txtUser)&的员工数据,是否继续?,_vbCritical+vbYesNa,系统用户管理)=vbYesThen.Delete.MoveNextIf.EQFAnd.RecordCount0Then.MoveLastEndIfEndIfEndWithEndSub(8)实现刷新操作。在用户单击刷新按钮时,执行刷新数据操作,实现代码如下:PrivateSubcmdRefresh_Click()OnErrorResumeNextWithWage_Manage_Data.rsStuffDataIf.RecordCount0Then.CancelUpdate'取消前一步执行的操作.Requer'重新读取记录集数据’重新执行数据绑定SettxtUser.DataSource=Wage_Manage_DatatxtUser.DataMember=StufFDatatxtUser.DataField=”姓名SettxtNum.DataSource=Wage_Manage_Da
本文标题:工资管理系统模块中的代码和界面
链接地址:https://www.777doc.com/doc-7345577 .html