这个动态加载问题,经我检测会检测加载顺序,所以进行了改良,有没更简便的方式,我有个环节有20个表,照这样的写法,简直会累死啊。求版主给个简便的方式
Select Case e.Link.Name
Case "资金入账"
If DataTables.Contains("T_资金表") = False AndAlso DataTables.Contains("T_客户表") = False AndAlso DataTables.Contains("T_付款方式") = False Then
DataTables.Load("T_资金表|T_客户表|T_付款方式")
ElseIf DataTables.Contains("T_资金表") = False AndAlso DataTables.Contains("T_付款方式") = false Then
DataTables.Load("T_资金表|T_付款方式")
ElseIf DataTables.Contains("T_资金表") = False
DataTables.Load("T_资金表")
ElseIf DataTables.Contains("T_付款方式") = False
DataTables.Load("T_付款方式")
End If
MainTable = Tables("T_资金表")
Forms("资金入账").Open()
Dim 表名组 As String() = "T_资金表|T_客户表|T_付款方式".Split ("|")
For Each 表名 As String In 表名组
If DataTables.Contains(表名) = False Then
DataTables.Load(表名)
End If
Next
[此贴子已经被作者于2024/5/29 8:31:17编辑过]
Dim Value As String = "T_资金表|T_客户表|T_付款方式"
Dim sps() As Char = {"|"}
Dim Names() As String = Value.Split(sps)
For Each name As String In Names
If DataTables.Contains(name) = False Then
DataTables.Load(name)
End If
Next
感谢老师给予指导。按照你这个格式,我套用卸载,发现有问题,其中订单表与订单明细表是关联表,如何改进?Select Case e.Page.Name
Case "系统刷新"
Select Case e.Link.Name
Case "系统刷新"
Dim Value1 As String = "T_销售方式|T_订单表|T_订单明细|T_发货单|T_交货地点|T_资金表|T_付款方式|......"省去后面30个表
Dim sps3() As Char = {"|"}
Dim Names() As String = Value1.Split(sps3)
For Each name As String In Names
If DataTables.Contains(name) = True Then
DataTables.UnLoad(name)
End If
Next
Forms("主界面窗口").open()
MainTable=Tables("Maintables")
关联表就没法这样一个一个弄了,建议:
1、常规逻辑是加载了的表就不要卸载了,卸载了在加载有需要时间;
2、一次需要同时加载30个表吗?既然是加载,就不要一次加载那么多表,用到那几个表就加载那几个表就行了。
嗯!感谢楼主指点,我还是选择既然加载了就不要卸载了吧
这个没用,你看我上面同时主表、子表都卸载(并且是在两个表同时加载的情况下)