以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]自动填充 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=106666) |
-- 作者:积水成渊 -- 发布时间:2017/9/13 14:33:00 -- [求助]自动填充 我有两张表A,B。A表为工资表(字段为工号,基本工资,技能工资,其他补贴),B为工资修改表(字段为工号,基本工资,技能工资,其他补贴)。 其中A表有数据,B为空表,当我在B表输入工号的时候自动从A表中带出该工号的工资信息,问题是A表的其他补贴为空,但是在B表中自动带出的其他补贴为0, 这种效果非常的不好看,怎么写代码可以实现,如何A表中的其他补贴为空,在B表中带出的其他补贴为空,而不是用0来填充。
|
-- 作者:积水成渊 -- 发布时间:2017/9/13 14:40:00 -- 我这样写,还是不行,如何在A表其他补贴没有值,在B表中带出来的自动填充0了 Select Case e.DataTable.name Case "B" Select Case e.DataCol.name Case "工号" Dim dr As DataRow = DataTables("A").find("工号 = \'" & e.DataRow("工号") & "\'") If dr IsNot Nothing Then if dr.isnull("其他补贴") then \'e.DataRow("其他补贴") = nothing else e.DataRow("其他补贴") = dr("其他补贴") end if End If End Select End Select
|
-- 作者:有点甜 -- 发布时间:2017/9/13 14:45:00 -- 方法一:DataColChanging事件
If e.DataCol.Name = "其他补贴" Then If e.NewValue = 0 Then msgbox(123456) e.NewValue = Nothing End If End If |
-- 作者:有点甜 -- 发布时间:2017/9/13 14:47:00 -- 方法二:
像你2楼那样写,判断是0是否为空,如果是,那就赋值为nothing |
-- 作者:积水成渊 -- 发布时间:2017/9/13 15:10:00 -- 感谢,我少判断了是否为0这个条件了。 |
-- 作者:积水成渊 -- 发布时间:2017/9/13 15:12:00 -- 正确代码 Select Case e.DataTable.name Case "B" Select Case e.DataCol.name Case "工号" Dim dr As DataRow = DataTables("A").find("工号 = \'" & e.DataRow("工号") & "\'") If dr IsNot Nothing Then if dr.IsNull("其他补贴") OrElse dr("其他补贴") = 0 then e.DataRow("其他补贴") = Nothing else e.DataRow("其他补贴") = dr("其他补贴") end if End If End Select End Select |