以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]跨表更新 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=53152) |
-- 作者:lesliecheung912 -- 发布时间:2014/7/1 9:21:00 -- [求助]跨表更新 现有一个部门岗位表,表里有部门体系,部门名称,办事处,职务岗位,职别,职级,职系等字段, 现在想要在窗口中实现“当连级选择完部门体系,部门名称,办事处,职务岗位以后,职别,职级,职系的值自动填上” 窗口中绑定的员工表,我在员工表的DataColChanged事件中写入以下代码: If e.DataCol.Name = "职务岗位" Then If e.DataRow.IsNull("职务岗位") Then e.DataRow("职别") = Nothing e.DataRow("职级") = Nothing e.DataRow("职系") = Nothing Else Dim dr As DataRow = DataTables("部门岗位").Find ( "部门体系 = \'" & e.DataRow("部门体系") & "\' and 部门名称 = \'" & e.DataRow("工作部门") & "\' and 办事处 = \'" & e.DataRow("办事处") & "\' And 岗位名称 = \'" & e.DataRow("职务岗位") & "\'" ) e.DataRow("职别") = dr("职别") e.DataRow("职级") = dr("职级") e.DataRow("职系") = dr("职系") End If End If 但是在操作时会报以下错误,并且程序崩溃,请老师帮我看看哪有问题啊
|
-- 作者:Bin -- 发布时间:2014/7/1 9:27:00 -- 点击显示详细信息看看 |
-- 作者:Bin -- 发布时间:2014/7/1 9:28:00 -- 你要判断一下是否找到这一行 Dim dr As DataRow = DataTables("部门岗位").Find ( "部门体系 = \'" & e.DataRow("部门体系") & "\' and 部门名称 = \'" & e.DataRow("工作部门") & "\' and 办事处 = \'" & e.DataRow("办事处") & "\' And 岗位名称 = \'" & e.DataRow("职务岗位") & "\'" ) if dr isnot nothing then e.DataRow("职别") = dr("职别") e.DataRow("职级") = dr("职级") e.DataRow("职系") = dr("职系") end if
|
-- 作者:lesliecheung912 -- 发布时间:2014/7/1 9:37:00 -- 找不到这一行,但是在部门岗位表中明明是有对应的数据的,为什么找不到呢? |
-- 作者:Bin -- 发布时间:2014/7/1 9:39:00 -- 你利用 messagebox.show 弹出你拼接的条件 看看是什么样子的,再检查是否有对应的行 |
-- 作者:lesliecheung912 -- 发布时间:2014/7/1 10:15:00 -- 都能取到值,并且在部门岗位表里都有对应的数据,但是为啥dr的值为空啊,搞不明白 |
-- 作者:有点甜 -- 发布时间:2014/7/1 10:17:00 -- 以下是引用lesliecheung912在2014-7-1 10:15:00的发言:
都能取到值,并且在部门岗位表里都有对应的数据,但是为啥dr的值为空啊,搞不明白
查不到,肯定是值不对,你再看看,是否有空格之类的影响了。 |
-- 作者:Bin -- 发布时间:2014/7/1 10:17:00 -- 看5楼 实在搞不懂就上例子
|
-- 作者:lesliecheung912 -- 发布时间:2014/7/1 10:45:00 -- 还是不行,没有空格之类的影响,这个代码看着是没问题,能不能帮我想个另外的方法 |
-- 作者:lesliecheung912 -- 发布时间:2014/7/1 10:46:00 -- 我的事外部表,实在不方便上例子 |