以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]已使用的一级不允许增加下级 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=64065) |
||||
-- 作者:blsu33 -- 发布时间:2015/2/4 11:30:00 -- [求助]已使用的一级不允许增加下级 有点甜老师, 还是类似的问题,这个问题以前没有问过您,是这样,部门编码分成递归的2级 如果一级已经在职员档案中使用,那么这个一级不允许增加二级,其他的可以。下列代码怎么优化,烦您帮忙改下; 举例 部门档案 正则 2+2 位 已经存在 01 财务部 ,已在职员档案中使用了01 财务部,现在,01财务部下增加 0101 出纳部 ,提示不允许在增加0101 出纳部,因为上级已经使用 Select Case e.DataCol.Name Case "编码名称" Dim dr1 As DataRow Dim dr2 As DataRow dr1 = e.DataTable.Find("编码名称 = \'" & e.NewValue & "\'") If dr1 IsNot Nothing Then MessageBox.Show("部门名称重复是否正确!","请确认") e.Cancel = True Else dr1 = DataTables("职员档案").Find("部门名称 = \'" & e.OldValue & "\'") If dr1 IsNot Nothing Then MessageBox.Show("已在职员档案中使用,不能重命名","提示") e.Cancel = True End If End If dr2 = DataTables("职员档案").Find("部门名称 like \'" & e.DataRow("编码名称") & "%\'") 这段代码导致整个表不能再增加数据了,想要达到判断上级已经使用的话,不许增加二级 If dr2 IsNot Nothing Then Messagebox.Show("上级编码名称已使用,不能增加下级!","提示") e.Cancel=True End If end Select |
||||
-- 作者:Bin -- 发布时间:2015/2/4 11:46:00 -- dr2 = DataTables("职员档案").Find("部门名称 like \'" & e.DataRow("编码名称") & "%\' and 部门名称 <> \'" & e.DataRow("编码名称") & "\'") |
||||
-- 作者:blsu33 -- 发布时间:2015/2/4 12:17:00 -- bin老师, 先谢谢您,但是按照这个代码,部门档案不能增加行了,烦您在帮忙看看。
|
||||
-- 作者:blsu33 -- 发布时间:2015/2/4 12:18:00 -- 想要达到是的这个已使用的部门不允许增加,不是整个表不允许增加了。 |
||||
-- 作者:Bin -- 发布时间:2015/2/4 13:59:00 -- 2楼不行? |
||||
-- 作者:blsu33 -- 发布时间:2015/2/4 16:00:00 -- 老师, 跪求代码呀
|
||||
-- 作者:Bin -- 发布时间:2015/2/4 16:01:00 -- 2楼的代码不行么? |
||||
-- 作者:blsu33 -- 发布时间:2015/2/4 16:05:00 -- 恩 是的 我上传例子 老师 烦您在帮我看下 特别是:哪一个部门被职员档案使用过了,该部门不允许增加上下级。
[此贴子已经被作者于2015-2-4 16:06:25编辑过]
|
||||
-- 作者:Bin -- 发布时间:2015/2/4 16:09:00 -- 好像没问题啊. 我输入01 他提示我不可以输入 |
||||
-- 作者:blsu33 -- 发布时间:2015/2/4 16:11:00 -- 不是录入01 是录入0101 还有 录入一条新部门05
|