Foxtable(狐表)用户栏目专家坐堂 → 删除记录求和


  共有6234人关注过本帖树形打印复制链接

主题:删除记录求和

帅哥哟,离线,有人找我吗?
shqpldczj
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:141 积分:1285 威望:0 精华:0 注册:2016/4/6 14:05:00
删除记录求和  发帖心情 Post By:2022/8/30 6:34:00 [只看该作者]

A表的成本金额=B表的金额合计(逻辑关联是B表的主合同号=A表的合同编号),我在删除B表的记录时重新计算A表的成本金额,现在发现删除B表的最后一条记录后A表的成本金额不为0

 回到顶部
帅哥哟,离线,有人找我吗?
shqpldczj
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:141 积分:1285 威望:0 精华:0 注册:2016/4/6 14:05:00
代码  发帖心情 Post By:2022/8/30 7:24:00 [只看该作者]

If MessageBox.Show("是否删除?","请确认",MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.Yes Then
            Tables("外包合同").Current.Delete
            Dim dr2 As DataRow
            dr2 = DataTables("合同主表").Find("[合同编号] = '" & Tables("外包合同").Current("主合同号") & "'")
            dr2("成本金额") = DataTables("外包合同").sqlCompute("sum(审定金额)","主合同号 = '" & dr2("合同编号") & "'")
        End If

我这样写如果有多条外包记录就是到最后一条记录删除时,合同主表的成本金额不为0


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/30 8:41:00 [只看该作者]

原因
1、这一行都已经删除了,再使用Current就已经是另外一行了.
2、sqlCompute只能统计已经保存的数据,删除后要保存才会更新到数据库

dim ht as string = Tables("外包合同").Current("主合同号")
Tables("外包合同").Current.Delete
Tables("外包合同").save
Dim dr2 As DataRow
dr2 = DataTables("合同主表").Find("[合同编号] = '" & ht & "'")
dr2("成本金额") = DataTables("外包合同").sqlCompute("sum(审定金额)","主合同号 = '" & ht & "'")

 回到顶部