以文本方式查看主题 - 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=47637) |
-- 作者:小刚 -- 发布时间:2014/3/13 23:30:00 -- 用Table控件模拟关联表,我把产品编号设置字符列了,发现有些不能关联,该怎么改?(已自己搞定,哈哈~) 用Table控件模拟关联表,我把产品编号设置字符列了,发现有些不能关联,该怎么改?
我的设置方法和帮助里面的一模一样。后来发现有些行不能关联。 后面对照了帮助好久,发现我把“产品编号”设置字符列了,帮助里面是数值列,别的没有什么改变。 虽然我现在的“产品编号”是数字,但是由于产生这些编号,我是采用时间分秒产生的,所以必须是字符列,现在该怎么改下面的代码呢? 让没有关联的行,关联起来?
4、窗口的AfterLoad事件设为: Dim t As Table = Tables("窗口1_Table1")With Tables("产品") If .Current Is Nothing Then t.Filter = "False" Else t.Filter = "产品编号 = " & .Current("产品编号") End IF End With 此段代码确保打开窗口后,Tables("窗口1_Table1")只显示当前选定产品的订单。 5、关闭窗口设计器,回到产品表,打开表属性设置窗口,将其CurrentChanged事件代码设为: If Forms("窗口1").Opened() \'一定要判断用于模拟关联表的窗口是否已经打开Dim t As Table = Tables("窗口1_Table1") With Tables("产品") If .Current Is Nothing Then t.Filter = "False" Else t.Filter = "产品编号 = " & .Current("产品编号") End IF End With End If 当我们在产品表选择不同的产品时,上述代码会判断窗口是否已经打开,如果已经打开,则更新Tables("窗口1_Table1")的Filter属性,使其显示新选定产品的订单。 [此贴子已经被作者于2014-3-14 0:25:28编辑过]
|
-- 作者:小刚 -- 发布时间:2014/3/14 0:07:00 -- 我查了BIN老师的历史回复,字符列 需要添加单引号 t.Filter = "[bianhao_id] = \'" & .Current("bianhao_id") & "\'"
我把上面的代码
t.Filter = "产品编号 = " & .Current("产品编号")
改成了 t.Filter = "[产品编号] = \'" & .Current("产品编号") & "\'"
也不行啊,这是什么原因呢? |
-- 作者:小刚 -- 发布时间:2014/3/14 0:21:00 -- 哦,我又看了一下历史查询记录,才突然想起来,我使用的是外部数据源,是不是与这个有关系?那该如何更改代码呢? 外部数据源名称 "订单数据库" |
-- 作者:小刚 -- 发布时间:2014/3/14 0:28:00 -- 为了不让后学者走冤枉路,写出搞定方法: t.Filter 改为 DataTables("***").LoadFilter 即可 |
-- 作者:lsy -- 发布时间:2014/3/14 7:37:00 -- 楼主不错。 既会学,也会教。 |
-- 作者:无限5180 -- 发布时间:2014/3/17 18:18:00 -- |
-- 作者:无限5180 -- 发布时间:2014/3/17 18:18:00 -- 我也在等待高手解决这个问题 |