以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  查询赋值的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=60680)

--  作者:120785713
--  发布时间:2014/11/29 0:08:00
--  查询赋值的问题

表A第一列是字符型      第二列是逻辑型       表B中的第一列添加了和表A第一列相同的数据时      表A的第二列被勾选      

                                                          表B中的第一列删除了和表A第一列相同的数据时      表A的第二列取消勾选

搞了半天也没搞懂   求助哪位高手帮帮忙           先谢谢了

 


--  作者:Bin
--  发布时间:2014/11/29 8:29:00
--  
参考http://www.foxtable.com/help/topics/1453.htm
--  作者:120785713
--  发布时间:2014/11/29 9:27:00
--  

说明里的这一段我看了好长时间   还是没搞明白


--  作者:120785713
--  发布时间:2014/11/29 9:29:00
--  
我想知道的是被引用的表数据行做一个标注   以便筛选数据用
--  作者:狐狸爸爸
--  发布时间:2014/11/29 17:15:00
--  

有简单的方法,表A和表B通过第一列建立关联,表A的第二列改为逻辑列:

Count(Child(关联名).第一列) > 0


--  作者:120785713
--  发布时间:2014/11/29 22:50:00
--  

谢谢  狐爸  不过这样的话行数太多会不会造成  运算耗时呢


--  作者:120785713
--  发布时间:2014/11/29 23:09:00
--  

If e.DataCol.Name = "第一列" Then  
    Dim dr As  DataRow
    dr =  DataTables("表A").Find("[第一列] = \'" & e.OldValue &  "\'")
    If dr IsNot Nothing
        dr(“第二列") = False
    Else
    End  If
End  If

If e.DataCol.Name = "第一列" Then  
    Dim dr As  DataRow
    dr =  DataTables("表A").Find("[第一列] = \'" & e.NewValue &  "\'")
    If dr IsNot Nothing
        dr(“第二列") = True
    Else
    End  If
End  If

狐爸帮我看一下     这写到事件中可以实现更改   不过删除单行可以写一段到  删除键代码中    多行删除我就没没什么好办法了(比如说表B是明细表 父表行被删除关联的多行被同时删除)


--  作者:有点甜
--  发布时间:2014/11/30 9:07:00
--  

 直接这样写,比如

 

DataTables("表B").DeleteFor("[编号] = \'" & e.Datarow("编号") &  "\'")


--  作者:120785713
--  发布时间:2014/12/26 14:51:00
--  

非常完美的搞定   谢谢了甜老师