以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  继续探讨跨行删除的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=20167)

--  作者:reachtone
--  发布时间:2012/5/31 11:02:00
--  继续探讨跨行删除的问题

由于在BeforeSelChange和AfterSelChange中都不能删除数据行,也不能Reject修改,现在尝试用全局变量进行传递:

在Beforeselchange中保存当前行到一个全局变量,然后在CurrentChanged事件中通过这个全局变量获得上一次的当前行,再将其删除。

 

经测试,这种思路也走不通:

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目29.table


--  作者:狐狸爸爸
--  发布时间:2012/5/31 11:30:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目402.table


--  作者:reachtone
--  发布时间:2012/5/31 11:56:00
--  
DataRowState.Deleted原来还有这样的用处,高!
--  作者:reachtone
--  发布时间:2012/5/31 13:04:00
--  

想对2楼的文件做进一步的测试,为什么一设置排序就会自动退出呢?

即使将CurrentChanged中的事件全部删除,仍然是一排序就退出.

将BeforeSelChanged中的那行代码删除就正常了,难道BeforeSelChanged和Sort有什么冲突?

[此贴子已经被作者于2012-5-31 13:08:51编辑过]

--  作者:狐狸爸爸
--  发布时间:2012/5/31 15:10:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目402.table


--  作者:狐狸爸爸
--  发布时间:2012/5/31 16:07:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目402.table


--  作者:reachtone
--  发布时间:2012/6/4 12:45:00
--  

按照6楼的方法,使用外部数据源(foxtable自带的Code.mdb)。

6楼代码只修改了表名和主键列名称,其它未动。

打开窗口1,执行按钮第一次正常,再执行一次,出错!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目402.table


--  作者:狐狸爸爸
--  发布时间:2012/6/4 16:43:00
--  
With DataTables("Code")
    prevr = Nothing
    .DeleteFor("Code Is null")
    .LoadFilter = "Code is not null"
    .Load
    .AddNew
End With