ssdbgrid中在AfterColUpdate事件中求某列的和

    正确代码:
   For intI = 0 To grdtest.Row - 1
        bkMark = grdtest.AddItemBookmark(intI)
        intSum = intSum + CInt(grdtest.Columns("test").CellValue(bkMark))
    Next intI
   
    intSum = intSum + CInt(grdtest.Columns("test").Value)
   
    For intI = (grdtest.Row + 1) To (grdtest.Rows - 1)
        bkMark = grdtest.AddItemBookmark(intI)
        intSum = intSum + CInt(grdtest.Columns("test").CellValue(bkMark))
    Next intI
    MsgBox "The Sum:" & intSum

错误代码:
    For intI = 0 To (grdtest.Rows - 1)
        bkMark = grdtest.AddItemBookmark(intI)
        intSum = intSum + CInt(grdtest.Columns("test").CellValue(bkMark))
     Next intI
    MsgBox "The Sum:" & intSum

      错误代码中由于在AfterColUpdate事件中通过绝对行数用AdditemBookmark方法得到bookmark,再通过 grdtest.Columns("test").CellValue(bkMark)取得的被修改行的值不是修改过的值,而是修改之前的值。
      在正确的代码中,将修改行单独用grdtest.Columns("test").Value取得修改后的值,然后将其他行的值用For循环的绝对行数—>BookMark->Value的方法取得,然后求和,可以达到求修改后的和的目的。

PS:在AfterColUpdate中,对grdtest.Bookmark赋值不会起作用,对bookmark的movefirst等move操作也不会起作用。在这个事件中bookmark不会被移动。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11411056/viewspace-733999/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/11411056/viewspace-733999/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值