以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 蓝版:帮助中跨表引用的用法 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=151458) |
-- 作者:天宇科技 -- 发布时间:2020/6/23 16:55:00 -- 蓝版:帮助中跨表引用的用法 以下代码是帮助中的跨表引用,但我发现存在一个问题:原来单价列中有数据,如果品名列中在产品表中查找不到同名产品行时,单价列原来的数据并不会自动删除,仍然保留在表格中,就会造成错误,我觉得应该在下面的代码中加上一句e.DataRow("单价") = nothing。下面代码绿底的部分是我加的,正确吗?或者直接用第二个代码。 —————————————————————————————————————————— If e.DataCol.Name = "品名"
Then
\'如果内容发生变动的是品名列If e.NewValue Is Nothing Then \'如果新值是空白,也就是品名列的内容为空 e.DataRow("单价") = Nothing \'那么清空此行单价列的内容 Else e.DataRow("单价") = nothing‘这句是我加的。 Dim dr As DataRow \'否则在产品表查找同名的产品行,将找到的行赋值给变量dr dr = DataTables("产品").Find("[品名] = \'" & e.NewValue & "\'") If dr IsNot Nothing Then \'如果找到了同名的产品行,也就是dr不是Nothing e.DataRow("单价") = dr("单价") End If End If End If —————————————————————————————————————————————————————————————————————————— 直接用下面这个代码,怎样? If e.DataCol.Name = "品名" Then \'如果内容发生变动的是品名列 e.DataRow("单价") = nothing Dim dr As DataRow \'否则在产品表查找同名的产品行,将找到的行赋值给变量dr dr = DataTables("产品").Find("[品名] = \'" & e.NewValue & "\'") If dr IsNot Nothing Then \'如果找到了同名的产品行,也就是dr不是Nothing e.DataRow("单价") = dr("单价") End If End If [此贴子已经被作者于2020/6/23 16:58:06编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/6/23 17:24:00 -- 改的正确。 |
-- 作者:天宇科技 -- 发布时间:2020/6/23 17:37:00 -- 第一句好,还是第二句好。 |
-- 作者:有点蓝 -- 发布时间:2020/6/23 19:53:00 -- 符合自己的要求的就是好的 |