一、实现的功能
主表
选择(字符)
单号
表A
选择(逻辑)
单号
表B
选择(逻辑)
单号
功能:表A或表B字段“选择”勾选,则主表的“选择”字段显示为“选择”。去掉勾选,则主表对应单号的“选择”字段清空。
二、目前实现的方法
表A、表B的表事件datacolchanged,代码
Dim dr As DataRow
If e.DataCol.Name = "选择" Then
If e.NewValue = True Then '而且变动后的值是 True(已勾选)
dr=DataTables("主表").Find("单号='"&e.DataRow("单号")&"'")
If dr IsNot Nothing Then
dr("选择") = "选择"
Else
Return
End If
Else
dr=DataTables("主表").Find("单号='"&e.DataRow("单号")&"'")
If dr IsNot Nothing Then
dr("选择") = Nothing
Else
Return
End If
End If
End If
三、缺点
就是在表A、表B的表事件datacolchanged,需要重复录入上述代码。
四、如何改进
如果需要增加多几个表,实现类似的功能,按照上述实现的方法太过于繁琐,请问如何设计才能减轻工作量,例如使用全局代码、内部函数等。