以下代码是帮助中的跨表引用,但我发现存在一个问题:原来单价列中有数据,如果品名列中在产品表中查找不到同名产品行时,单价列原来的数据并不会自动删除,仍然保留在表格中,就会造成错误,我觉得应该在下面的代码中加上一句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编辑过]