求助,下面代码,增加当前表最后1行修改后,当前表最后1行的数据更新统计到表B
当前表非最后1行修改不跨表更新到表B,也就是只有当前表最后1行修改才执行下面代码
If e.DataCol.Name = "第一列" Then '如果内容发生变动的是第一列列
If e.NewValue Is Nothing Then '如果新值是空白,也就是第一列列的内容为空
e.DataRow("第二列") = Nothing '那么清空此行第二列列的内容
Else
Dim dr As DataRow
'否则在表B表查找同名的表B行,将找到的行赋值给变量dr
dr = DataTables("表B").Find("[第一列] = '" & e.NewValue & "'")
If dr IsNot Nothing Then '如果找到了同名的表B行,也就是dr不是Nothing
e.DataRow("第二列") = dr("第二列")
End If
End If
End If
[此贴子已经被作者于2024/8/8 18:14:52编辑过]
If e.DataCol.Name = "第一列" Then '如果内容发生变动的是第一列列
If e.NewValue Is Nothing Then '如果新值是空白,也就是第一列列的内容为空
e.DataRow("第二列") = Nothing '那么清空此行第二列列的内容
Else
dim p as integer = tables(e.datatable.name).findrow(e.DataRow)
if p = tables(e.datatable.name).rows.count - 1 then
Dim dr As DataRow
'否则在表B表查找同名的表B行,将找到的行赋值给变量dr
dr = DataTables("表B").Find("[第一列] = '" & e.NewValue & "'")
……
蓝大师,图片补充表达一下,要实现的是当前表A最后1行的值,自动更新同步到表B的成绩列,
之前我的描述有问题,上楼代码跟图片想要的效果不符,辛苦帮忙
此主题相关图片如下:未标题-1.jpg
[此贴子已经被作者于2024/8/8 20:52:12编辑过]
dim p as integer = tables(e.datatable.name).findrow(e.DataRow)
if p = tables(e.datatable.name).rows.count - 1 then
Dim dr As DataRow = DataTables("表B").Find("[科目] = '" & e.DataCol.Name & "'")
If dr IsNot Nothing Then '如果找到了同名的表B行,也就是dr不是Nothing
dr("成绩") = e.DataRow(e.DataCol.Name)
End If
End If
[此贴子已经被作者于2024/8/8 21:01:05编辑过]
蓝大师,下面代码放在 表切换时报错,求助
If MainTable.Name = "表A" Then '如果选择的主表是订单表
Dim p As Integer = Tables(e.DataTable.name).findrow(e.DataRow)
If p = Tables(e.DataTable.name).rows.count - 1 Then
Dim dr As DataRow = DataTables("表B").Find("[科目] = '" & e.DataCol.Name & "'")
If dr IsNot Nothing Then '如果找到了同名的表B行,也就是dr不是Nothing
dr("成绩") = e.DataRow(e.DataCol.Name)
End If
End If
End If
蓝大师,我这边想的是 表A最后5行都执行统计到表B如果按上楼的代码,表A最后5行中的最后1行才在表事件编辑里执行代码,最后5行中的4行不执行代码
所以求助 放在 MainTable 事假里,下面代码怎么修改
If MainTable.Name = "表A" Then '如果选择的主表是订单表
Dim p As Integer = Tables(e.DataTable.name).findrow(e.DataRow)
If p = Tables(e.DataTable.name).rows.count - 1 Then
Dim dr As DataRow = DataTables("表B").Find("[科目] = '" & e.DataCol.Name & "'")
If dr IsNot Nothing Then '如果找到了同名的表B行,也就是dr不是Nothing
dr("成绩") = e.DataRow(e.DataCol.Name)
End If
End If
If p = Tables(e.DataTable.name).rows.count - 2 Then
Dim dr As DataRow = DataTables("表B").Find("[科目] = '" & e.DataCol.Name & "'")
If dr IsNot Nothing Then '如果找到了同名的表B行,也就是dr不是Nothing
dr("成绩") = e.DataRow(e.DataCol.Name)
End If
End If
If p = Tables(e.DataTable.name).rows.count - 3 Then
Dim dr As DataRow = DataTables("表B").Find("[科目] = '" & e.DataCol.Name & "'")
If dr IsNot Nothing Then '如果找到了同名的表B行,也就是dr不是Nothing
dr("成绩") = e.DataRow(e.DataCol.Name)
End If
End If
If p = Tables(e.DataTable.name).rows.count - 4 Then
Dim dr As DataRow = DataTables("表B").Find("[科目] = '" & e.DataCol.Name & "'")
If dr IsNot Nothing Then '如果找到了同名的表B行,也就是dr不是Nothing
dr("成绩") = e.DataRow(e.DataCol.Name)
End If
End If
If p = Tables(e.DataTable.name).rows.count - 5 Then
Dim dr As DataRow = DataTables("表B").Find("[科目] = '" & e.DataCol.Name & "'")
If dr IsNot Nothing Then '如果找到了同名的表B行,也就是dr不是Nothing
dr("成绩") = e.DataRow(e.DataCol.Name)
End If
End If
End If
datacolchanged事件
Dim p As Integer = Tables(e.DataTable.name).findrow(e.DataRow)
If p >= Tables(e.DataTable.name).rows.count - 5 Then
Dim dr As DataRow = DataTables("表B").Find("[科目] = '" & e.DataCol.Name & "'")
If dr IsNot Nothing Then '如果找到了同名的表B行,也就是dr不是Nothing
dr("成绩") = e.DataRow(e.DataCol.Name)
End If
End If
Dim p As Integer = Tables(e.DataTable.name).findrow(e.DataRow)
If p >= Tables(e.DataTable.name).rows.count - 5 Then
Dim dr As DataRow = DataTables("表B").Find("[科目] = '" & e.DataCol.Name & "'")
If dr IsNot Nothing Then '如果找到了同名的表B行,也就是dr不是Nothing
dr("最后行_" & (Tables(e.DataTable.name).rows.count - p)) = e.DataRow(e.DataCol.Name)
End If
End If