以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  2次打开关联表问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=65521)

--  作者:chenbh_yz
--  发布时间:2015/3/17 17:30:00
--  2次打开关联表问题
由于关联表无法在2个窗口中同时打开,设想在第2个窗口利用过滤,模拟出关联信息!

问题: 表A:  表B:  关联字都为编码,

问:如何在窗口 Afterload 事件中, 用代码实现在  表B 中,只显示 表A  编码相同的记录?



--  作者:Bin
--  发布时间:2015/3/17 17:32:00
--  
帮助有模拟关联的例子 http://www.foxtable.com/help/topics/2222.htm
--  作者:chenbh_yz
--  发布时间:2015/3/17 17:45:00
--  
If Forms("卡片可调剂料").Opened() \'一定要判断用于模拟关联表的窗口是否已经打开
    Dim t As Table = Tables("可调B")
    With Tables("可调剂料")
        If .Current Is Nothing Then
            t.Filter = "False"
        Else
            t.Filter = "编码 = " & .Current("编码")
        End If
    End With
End If

显示结果: 未查到 相关记录!

--  作者:有点甜
--  发布时间:2015/3/17 17:49:00
--  

 加入msgbox看是否执行了对应代码

 

msgbox(1)

If Forms("卡片可调剂料").Opened() \'一定要判断用于模拟关联表的窗口是否已经打开
    msgbox(2)
    Dim t As Table = Tables("可调B")
    With Tables("可调剂料")
        If .Current Is Nothing Then
            t.Filter = "False"
        Else
            t.Filter = "编码 = " & .Current("编码")
        End If
    End With
End If

--  作者:chenbh_yz
--  发布时间:2015/3/17 17:57:00
--  
已执行对应代码。 显示运行错误:

未找到列 [K000002]。

--  作者:chenbh_yz
--  发布时间:2015/3/17 18:36:00
--  
为何用这个代码可以实现?

tr1 = Tables("可调剂料").Current("编码")

         tr1 ="[编码] =" + "\'" + TR1 + "\'"

        
         Tables("可调B").Filter =  TR1


--  作者:有点甜
--  发布时间:2015/3/17 19:07:00
--  

 对于字符串列,必须用单引号把它括起来

 

t.Filter = "编码 = \'" & .Current("编码") & "\'"


--  作者:swagger
--  发布时间:2015/3/19 20:48:00
--  
以下是引用有点甜在2015/3/17 19:07:00的发言:

 对于字符串列,必须用单引号把它括起来

 

t.Filter = "编码 = \'" & .Current("编码") & "\'"

原来这样子,浪费我几个小时研究这个