主表:tab_QYInfo
子表:tab_YanHuaWGJL,tab_QYGLRY,tab_QYEquip....等通过[企业ID]关联的九个子表
目前系统设置主表附表全部加载,但是感觉因为表格多,数据多了,启动太慢了,所以想动态加载数据表。
看了“父表与子表同步加载”的例子,我感觉项目一开始主表全部加载了,子表也会全部加载,没有限制加载的效果了。(是不是这样理解的?)
所以在窗体关联表中想用“SQLTable”代替“Normal”的tab_QYInfo.tab_YanHuaWGJL(等其他子表)
主表选中不同记录,窗体中的Table(子表)会显示不同记录,
如图窗体
此主题相关图片如下:捕获d23232d.jpg

想用SQL的代码实现同样效果,该怎么写这句SQL代码,谢谢自己瞎写了一下,发现不对,
Select * From {tab_YanHuaWGJL} where {tab_YanHuaWGJL}.企业ID = {tab_QYInfo}.企业ID
Select * From {tab_YanHuaWGJL} where {tab_YanHuaWGJL}.企业ID = 'DQ201303731'
可以列出记录
但是用表达式就不行,怎么回事?
Select * From {tab_YanHuaWGJL} where {tab_YanHuaWGJL}.企业ID = '" & tables("tab_QYInfo").current("企业ID")& "'
不能识别tables("tab_QYInfo").current("企业ID")
我在主表 CurrentChanged事件设置了全局变量
If e.Table.Current Is Nothing Then Vars("CurrID")="" Else Vars("CurrID")=e.Table.Current("企业ID") End If |
这语句也不行
Select * From {tab_YanHuaWGJL} where {tab_YanHuaWGJL}.企业ID = '" & Vars("CurrID") & "'
狐爸说:
那就设置主表的CurrentChanged事件,假定企业ID是字符型:
if e.table.Current Is Nothing Then
DataTables("子表").LoadFilter = "[_Identify] Is Null"
Else
DataTables("子表").LoadFilter = "企业ID = '" & e.Table.Current("企业ID") & "'"
End if
DataTables("子表").Load()
但是我觉得也不合理,因为我选中主表后,子表不需要同时显示的,所以也不用全部根据[企业ID]重新加载了。
我需要点击子表的时候,该子表进行关联加载,这样该怎么实现?
望狐爸指点,望前辈指点,谢谢
|
[此贴子已经被作者于2014-2-12 19:53:49编辑过]