以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  坐标与选定区域为何在“删除行之前”事件中区域坐标是错的  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=118487)

--  作者:YANGYUNLIN
--  发布时间:2018/5/4 9:03:00
--  坐标与选定区域为何在“删除行之前”事件中区域坐标是错的
With CurrentTable
messagebox.show( .RowSel & "    " & .TopRow & "    " & .BottomRow)
End With
在命令窗口中测试坐标正确,可在在 表事件---“删除行之前”事件中区域坐标是错的

--  作者:有点甜
--  发布时间:2018/5/4 9:10:00
--  

1、你要做什么功能?请直接说。

 

2、没看懂你为什么要在beforeDeleteDataRow写这些代码。


--  作者:YANGYUNLIN
--  发布时间:2018/5/4 9:18:00
--  
我要在删除之前 查看删除的记录行号,以便相关的表的记录做同样删除
--  作者:有点甜
--  发布时间:2018/5/4 9:27:00
--  
以下是引用YANGYUNLIN在2018/5/4 9:18:00的发言:
我要在删除之前 查看删除的记录行号,以便相关的表的记录做同样删除

 

1、根据行号这个是不正确的。行号是会随机变化的(排序、筛选等都会导致变化),不是唯一确定的值。

 

2、正确的做法是根据本行的信息,比如列 _Identify (主键),然后对应操作别的表(别的表引用此_Identify列的值)。


--  作者:YANGYUNLIN
--  发布时间:2018/5/4 9:34:00
--  
我只要得到正确的坐标位,其它都是可以解决的
--  作者:YANGYUNLIN
--  发布时间:2018/5/4 9:36:00
--  
问题是,用户选了一个区域并做了删除,我不知道他删除了哪块区域
--  作者:有点甜
--  发布时间:2018/5/4 9:51:00
--  

那试试

 

With Tables(e.DataTable.name)
    messagebox.show( .RowSel & "    " & .TopRow & "    " & .BottomRow)
End With


--  作者:YANGYUNLIN
--  发布时间:2018/5/4 10:00:00
--  
我原来一样的
--  作者:YANGYUNLIN
--  发布时间:2018/5/4 10:01:00
--  
和原来一样,解决不了问题
--  作者:狐狸爸爸
--  发布时间:2018/5/4 10:05:00
--  
不要用位置判断,容易出问题,如果某个表删除记录之前,需要删除另一个表的相关记录,可以参考:
http://www.foxtable.com/webhelp/scr/0633.htm

例如产品表删除某记录,需要从订单表删除此产品的所有记录,可以将产品表的Datarow事件代码设置为:

DataTables("订单").DeleteFor("产品= \'" & e.DataRow("产品") & "\'")