以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  beforesaverow的中断  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=104039)

--  作者:newsun2k
--  发布时间:2017/7/21 16:05:00
--  beforesaverow的中断
beforesaverow中会对行的输入值进行校验。
如果出错,会cancel。
可否把之前没有问题的行先保存?
如何实现?

--  作者:有点甜
--  发布时间:2017/7/21 16:17:00
--  

要换一种保存方式

 

For Each r As Row In Tables("表a").rows
    r.save
Next


--  作者:newsun2k
--  发布时间:2017/7/21 16:23:00
--  
还有个新问题
如果一个出错了,后续继续保存,后续可能都是同样的错误,就一直在报错
最好是发现一个错误就退出不保存。

--  作者:有点甜
--  发布时间:2017/7/21 16:34:00
--  

这样写

 

For Each r As Row In Tables("表a").rows
    r.save
    If r.DataRow.RowState <> DataRowState.Unchanged Then
        Return 
    End If
Next

[此贴子已经被作者于2017/7/21 16:34:58编辑过]

--  作者:newsun2k
--  发布时间:2017/7/21 18:02:00
--  
这么写?
For Each r As Row In Tables("表a").rows 
    If r.DataRow.RowState <> DataRowState.Unchanged Then
r.save
        If r.DataRow.RowState <> DataRowState.Unchanged Then Return 
    End If
Next

--  作者:有点蓝
--  发布时间:2017/7/21 20:08:00
--  
4楼用法就可以,这样写就多余了,如果数据没有改变r.save本身就不会起作用
--  作者:newsun2k
--  发布时间:2017/7/23 19:54:00
--  
好像有点小问题,删除的时候没起作用。
--  作者:有点甜
--  发布时间:2017/7/23 19:58:00
--  
以下是引用newsun2k在2017/7/23 19:54:00的发言:
好像有点小问题,删除的时候没起作用。

 

追后,再总体保存一下

 

For Each r As Row In Tables("表a").rows
    r.save
    If r.DataRow.RowState <> DataRowState.Unchanged Then
        Return 
    End If
Next

Tables("表a").Save