以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  麻烦看看这段代码的问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=43713)

--  作者:jinzhengbe
--  发布时间:2013/12/13 11:32:00
--  麻烦看看这段代码的问题

表 a  是父表  表 b 是字表 

 

表a 的总公斤 是表b 实际公斤数 的sum

 

如果表b 的实际公斤数发生变化的话  表 a 的 运费 列= 表a 的 【总公斤】 * 【单价】

 

以上是我想要的结果,但是 下面这段代码好像不太给力。 总是提示错误信息, 所以请各位大侠指点一下奥!~~  非常感谢~~~!!!!

 

 

If e.DataCol.Name = "实际公斤数" Then \'发生变化的是客户名吗?
    Dim dd As DataRow
    dd= DataTables("运单入账").Find("发货单号 = " & "\'" & e.DataRow("发货单号") & "\'" )
      If dd Is Nothing Then  \'如果表B中不存在相同的记录
  
Else
  dd("运费")=dd("总斤数") * dd("单价")
End If
    End If


--  作者:Bin
--  发布时间:2013/12/13 11:39:00
--  
提示什么错误?  最好可以上个例子
--  作者:逛逛
--  发布时间:2013/12/13 11:45:00
--  

数值运算 最好都加上空值判断,否则容易出错。


--  作者:程兴刚
--  发布时间:2013/12/13 12:01:00
--  

If e.DataCol.Name = "实际公斤数" Then \'发生变化的是客户名吗?
    Dim dd As DataRow
    dd= DataTables("运单入账").Find("发货单号 = " & "\'" & e.DataRow("发货单号") & "\'" ) 
    If dd Isnot  Nothing Then  \'如果表B中不存在相同的记录

        if dd.isnull("总斤数")  = true OrElse dd.isnull("单价") = true

           dd("运费")= 0

        else

           dd("运费")= dd("总斤数")  * dd("单价")
        End If
    End If

End If

[此贴子已经被作者于2013-12-13 12:03:01编辑过]

--  作者:test321
--  发布时间:2013/12/13 13:22:00
--  
既然是关联表 为什么不用表达式呢