以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  窗口中的Table一个小问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=97479)

--  作者:goldenfont
--  发布时间:2017/3/13 13:29:00
--  窗口中的Table一个小问题
我在主窗口中加载了一个Normal的Table,一个SQLQuery的Table,然后根据Normal的Table里当前行自动筛选出符合的SQLQuery的Table,我把这个功能写在CurrentChanged事件里,打开的时候出错,说是找不到Tables(窗口_Table2),这个应该写在哪个函数里呢?写在click事件里没问题,但是刚打开的时候又起不到筛选的效果,只有点击后才符合要求,应该是感觉CurrentChanged事件发生时表还没有形成,所以会出错,但是咋解决呢?

窗口的CurrentChagned事件里写如下代码:

If e.Table.Current Is Nothing Then \'如果Current为Nothing
    \'没有选定行时执行的代码
Else
    \'有选定行时执行的代码
    Dim tb As Table = Tables("窗口_Table2")
    Dim flt As String = "[产品编号] = \'" & e.Table.Current("产品编号") & "\'"
    tb.DataTable.Load
    tb.Filter = flt
End If

--  作者:有点蓝
--  发布时间:2017/3/13 15:17:00
--  

判断一下窗口是否打开

 

If e.Table.Current Is Nothing Then \'如果Current为Nothing
    \'没有选定行时执行的代码
Else
    \'有选定行时执行的代码
    If Forms("窗口").open
        Dim tb As Table = Tables("窗口_Table2")
        Dim flt As String = "[产品编号] = \'" & e.Table.Current("产品编号") & "\'"
        tb.DataTable.Load
        tb.Filter = flt
    End If
End If