以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]模拟关联表问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=45390)

--  作者:aduydgd
--  发布时间:2014/1/24 1:13:00
--  [求助]模拟关联表问题

我从帮助文件中拷贝出来的代码做实验

打开窗口后一直显示未找到列 XXX

但是我压根就没有这个列,后来检查发现,XXX可能是我编号列内容的前缀,我编号列示字符型,不知道是不是跟这个有关系

这个是代码“

Dim t As Table = Tables("窗口1_Table2")
With Tables("main_table")
    If .Current Is Nothing Then
        t.Filter = "False"
    Else
        t.Filter = "[bianhao_id] = " & .Current("bianhao_id")
    End If
End With


--  作者:Bin
--  发布时间:2014/1/24 8:39:00
--  
字符列 需要添加单引号

t.Filter = "[bianhao_id] = \'" & .Current("bianhao_id") & "\'"

--  作者:aduydgd
--  发布时间:2014/1/24 10:03:00
--  
哎,怎么都把这事忘了,以后记住了,谢谢
--  作者:aduydgd
--  发布时间:2014/1/24 11:57:00
--  

还有一个问题,请教一下,

If CurrentTable.Name = "repair_Table3" Then \'如果当前表是模拟的关联表
    Dim r1 As Row = Tables("main_table").Current
   If r1 IsNot Nothing Then
        e.DataRow("bianhao_id") = r1("bianhao_id")
    End  If
 End  If

 

我在repair_table增加行的时候,编号ID为空,同样我的编号ID都是字符型,帮忙看看,是不是跟这个有关系,我的理解是代码中引用的是列名称,应该不会跟这个有关系吧,高手指教,谢谢


--  作者:Bin
--  发布时间:2014/1/24 12:03:00
--  
你代码是写在哪里的? 你这是想实现什么? 你还是上个例子吧
--  作者:aduydgd
--  发布时间:2014/1/24 13:17:00
--  

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

参照帮助文件“模拟关联表”操作的,这个例子是照搬帮助文件的,当我点击增加按钮时,按照帮助文件中描述,

If CurrentTable.Name = "窗口1_Table1" Then \'如果当前表是模拟的关联表
   Dim r As Row = Tables("产品").Current
   If r IsNot Nothing Then
        e.DataRow("产品编号") = r("产品编号")
   End
If

End
If

表B增加行的同时会把表A的bianhao_id填写进去,但是我这个例子中怎么也弄不成


--  作者:Bin
--  发布时间:2014/1/24 14:09:00
--  
原因很简单,你使用的并不是副本表,所以表名是表A 而不是窗口1_Table1  你判断当前表是否为 窗口1_Table1 永远不会成立

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



--  作者:aduydgd
--  发布时间:2014/1/24 14:14:00
--  
我刚才在测试的时候也发现这个问题了,之前那样写可能是我的理解错了,总之非常感谢,为我解惑