If e.DataCol.Name = "回路代码"Then '发生变化的是产品编号吗?
'在产品表找出该产品
Dim dr As DataRow
Select Case e.DataRow("回路类型")
Case "电动机"
dr = DataTables("电动机").Find("回路代码= " & "'" & e.DataRow("回路代码") & "'" )
Case "馈线"
dr = DataTables("馈线").Find("回路代码= " & "'" & e.DataRow("回路代码") & "'" )
End Select
If dr IsNot Nothing '如果找到, 则设置各列内容
e.DataRow("属性1")= dr("属性1")
e.DataRow("属性2")= dr("属性2")
End If
End If

此主题相关图片如下:引用.jpg

如图所示,需要在“回路类型”的数据表中查找“回路代码”,取相关数据,上面代码能够实现需要功能,但是需要查找的表如果很多就需要很多Case语句,能不能根据“回路类型”即数据表名用一句来实现。
dr = DataTables(e.DataRow("回路类型")).Find("回路代码= " & "'" & e.DataRow("回路代码") & "'" )
会报错,结果好像对的。
[此贴子已经被作者于2011-12-12 18:28:44编辑过]