已有23人关注
《Visual Basic数据库系统开发案例精选》人力资源管理系统 部门管理 部分出问题
发表在VB答疑区 2008-03-03
是否精华
版块置顶:
<P>今天在试运行时发现,系统管理模块有些问题</P>
<P>问题一,如果初始化后,不能进行部门管理和工资管理。</P>
<P>问题二,部门管理中如果录入两个同级同名的部门后,点击确定时系统报错,部门管理不能再进行修改,而且系统死机。</P>
分享到:
精彩评论 5
Lemon
学分:0 LV1
2008-03-04
沙发
<P>您好!</P>
<P>问题一,在初始化以后不能使用部门管理和工资管理。产生这个问题的原因是因为在初始化时,系统将“权限信息表”中的数据删除了,而超级用户mr,密码mrsoft,是写在程序中的,当用户进入到系统中进行操作时,系统将查询“权限信息表”中该用户权限,如果具有该权限则可以操作,否则,不能执行操作。在执行初始化操作以后,数据表中没有数据,因此查询结果为空,所以不具有权限。解决的方法为,在“权限信息表”中添加一条数据,前面的数据都为“1”,操作员为mr,密码为mrsoft。然后,再运行程序,即可解决问题。</P>
<P>问题二,在部门管理中录入同级同名的的部门。一般情况下,录入同级同名的部门是不符合实际的规范的,用户在使用中应该避免这一问题的发生。在本程序中,输入了同级同名的部门,并没有差生错误或死机的状况,请问,您是如何输入的,同时,产生的错误是什么?多给我们提供一些操作的细节,以便于我们解决。</P>
<P>&nbsp;</P>
三十而立
学分:0 LV1
2008-03-04
板凳
<P>看到您的回复非常感激,不过试运行中仍频率出现错误。</P>
<P>1、在初始化时已经避免将权限信息表初始化,也就是说没有选中权限信息表,可初始化后无法进行部门管理,实际上不初始化,只要把部门管理中原来就有的两个部门删除而不是修改的话,就不能进行部门管理,出现错误提示“运行时错误'91':未设置对象变量或with block变量”。</P>
<P>2、在部门管理中添加同级部门名称,有时会出现编号不变的情况,如出现两个编号为(03)的部门,可删除时或同时将两个部门删除。</P>
<P>3、人事信息添加中,部门信息无法添加上去。点右侧的选择文件标记,能够出现树状部门列表,但无论是双击还是单击都不能将数据添进去。</P>
Lemon
学分:0 LV1
2008-03-05
地板
<P>您好!</P>
<P>问题1,当部门表中没有数据时,TreeView控件的SelectedItem.key的值不存在,因此产生错误。可以通过在程序代码中添加下面的代码进行调整。其中红色的代码为添加的代码。</P>
<P>Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)<BR>&nbsp;&nbsp;&nbsp; Select Case Button.Key<BR>......<BR>&nbsp;&nbsp; <BR>&nbsp;Case "addnew"</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tlbState False<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; blnTJ = True<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; blnAdd = True<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For i = 0 To Text1.UBound<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Text1(i).text = ""<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next i<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<STRONG><FONT color=#ff0033> If TreeView1.Nodes.Count = 0 Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bmjc = "1"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Text1(1) = "01"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Text1(0) = "01"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<BR></FONT></STRONG>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs1.Open "select * from 部门表 where 部门全称='" + TreeView1.SelectedItem.Key + "'order by 编码级次", Cnn, adOpenKeyset, adLockOptimistic<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If rs1.RecordCount &gt; 0 Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bmjc = rs1.Fields("编码级次")<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs1.Close<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs1.Open "select * from 部门表 where 部门全称 like '" + Left(TreeView1.SelectedItem.Key, (bmjc - 1) * 2) + "'+'%'and 编码级次=" &amp; bmjc &amp; "", Cnn, adOpenKeyset, adLockOptimistic<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If rs1.RecordCount &gt; 0 Then<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs1.MoveLast<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Text1(1) = Format(Val(rs1.Fields("本级编号")) + 1, "00")<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Text1(0) = Left(rs1.Fields("部门编号"), Val(bmjc - 1) * 2) &amp; Text1(1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Text1(1) = "01"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For i = 1 To bmjc<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Text1(0) = Text1(0) &amp; "01"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next i<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; rs1.Close<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT color=#f70938><STRONG>End If</STRONG></FONT><BR></P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Text1(2).SetFocus<BR>&nbsp; <BR>........<BR>&nbsp;&nbsp;&nbsp; End Select<BR>End Sub</P>
<P>问题2,产生两个相同记录的原因可能是操作的问题,在测试过程中我们并没有发现这个问题,您是如何操作的?我们的添加步骤为:首先选择TreeView中的一个项,根据该项来确定添加同级还是下一级的项目。</P>
<P>问题3,人事信息添加中部门的添加是利用回车键进行添加的。</P>
三十而立
学分:0 LV1
2008-03-07
4L
<P>看到您的回复,非常感激,看得出你们对自己的产品是相当负责任的。关于“部门表为空时无法添加部门”的问题,经过添加您的代码,问题已经解决。现有如下两个问题:</P>
<P>1、初始化时,如果全选,将把权限信息表内容全部清除。这应该是一个BUG,至少应该无法清除登录者本人权限信息才对。</P>
<P>2、在人事信息添加中,如果只输入姓名,不修改出生日期,也就是说保留出生日期的默认值,直接点击“保存”,出现错误提示“运行时错误-2147352571(80020005‘:类型不匹配)”,调试时发现代码“rs1.fields("年龄")=txt1(17)”呈黄色。</P>
<P>问题是在日常工作中不可能录入每一人的资料时都清楚地知道其出生日期,暂时保留默认值或不录入出生日期是常见的。</P>
Lemon
学分:0 LV1
2008-03-12
5L
<P>您好!</P>
<P>1、初始化时,没有对权限进行考虑确实是我们考虑不够周全。但是写书主要是将重要的知识点讲清楚,可能不会像做对外的项目时那样严谨。希望广大读者可以谅解。</P>
<P>2、类型不匹配的问题,就是典型的考虑不够周全而产生的,在程序中仅将输入完全正确的数据存储到数据库中,对于输入不全或者不够标准的情况并没有考虑。这里可以利用IF语句进行判断,如果文本框或者其他控件中的数据信息内容不够完整,或者格式不够正确,可以利用MsgBox函数弹出提示对话框,或者利用Format函数将其格式化为指定的格式,然后再将其存储到数据库中。就不会出现类型不匹配的情况了。</P>
首页上一页 1 下一页尾页 5 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照