有个主表:表A有n个子表:表B、表C。。。,每个子表只加载了部分数据
要达到的效果:当主表某行的"所有者"列数据发生变化时,它的所有子表已经加载了的数据的“所有者”列也改变,同时,后台数据库没加载的数据的“所有者”列也改变
于是,我在全局表事件的DataColChanged事件中这样写:
'对于所有关联表,如果主表的所有者改变了,该主表的所有子表的所有者也变成对应的
If e.DataCol.Name = "所有者" Then
For Each re As Relation In Relations
If re.ParentTable Is e.DataTable Then
For Each r As Row In Tables(Re.ParentTable.Name & "." & Re.ChildTable.Name).Rows '遍历关联表的所有行
r("所有者") = e.DataRow("所有者") '将加载出来的关联表的所有记录的所有者修改
Next
DataTables(Re.ChildTable.Name).SQLReplaceFor("所有者",e.DataRow("所有者")," '" & Re.ChildColumn.Name & "' = '" & e.DataRow(Re.ParentColumn.Name) & "'") '修改后台数据库中
DataTables(Re.ChildTable.Name).Save()
End If
Next
End If
出现的问题:已经加载的数据倒是变化了,但是后台数据库对应的数据并没有发生改变