Foxtable(狐表)用户栏目专家坐堂 → 动态加载表


  共有3328人关注过本帖树形打印复制链接

主题:动态加载表

帅哥哟,离线,有人找我吗?
恒隆君
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:496 积分:4055 威望:0 精华:0 注册:2017/7/5 16:15:00
  发帖心情 Post By:2018/2/28 9:38:00 [只看该作者]

关联表A的 表较多。
卸载表的代码放在哪里合适?


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  22楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/2/28 11:07:00 [只看该作者]

以下是引用恒隆君在2018/2/28 9:38:00的发言:
关联表A的 表较多。
卸载表的代码放在哪里合适?

 

个人建议你把所有关联的表都加载出来。

 

不然,那就这样处理:比如你要加载表A表B,如果表A已经存在,那就卸载表A,再加载A、B。(这个时候,如果你已经加载表A、表C,表C就有可能受到影响)


 回到顶部
帅哥哟,离线,有人找我吗?
恒隆君
  23楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:496 积分:4055 威望:0 精华:0 注册:2017/7/5 16:15:00
  发帖心情 Post By:2018/3/12 15:46:00 [只看该作者]

找到一个Bug, 帮忙告知如何处理?

(以下是只是一个简单的例子。实际有时要加载10多个表单)

加载表的代码加入到了菜单的按键中,
有时同时有两个按键,均要加载表A.
表B和表C 要用到表A,并有关联

按键一 是打开表B   
现在的代码
If DataTables.Contains("表B") = False Then
    DataTables.Load("表B|表A")
End If
MainTable=Tables("表B")

按键二 是打开表C
If DataTables.Contains("表C") = False Then
    DataTables.Load("表C|表A")
End If
MainTable=Tables("表C")

 
按键三 是打开表D
If DataTables.Contains("表C") = False Then
    DataTables.Load("表A|表C|表B")
End If
MainTable=Tables("表C"

点击按键一后,
再点击按键二,就会有报错。已载表A.
关闭报警窗口后,会提示 表C 不存在。
然后点击其它键加载其它表,都会提示不存此表
然而点击按键三,就会提示,已加载表C.

既然之前提示表C不存在,为何后来又提示已加载?






 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  24楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/12 15:49:00 [只看该作者]

重新说一次。

 

如果表A和表B、表C都有关联,那么,这三个表应该一起加载出来的,加载后不要卸载(把所有表全部加载出来)

 

不然,你就把表A卸载后,再重新和表B、表C一起加载表A。


 回到顶部
帅哥哟,离线,有人找我吗?
恒隆君
  25楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:496 积分:4055 威望:0 精华:0 注册:2017/7/5 16:15:00
  发帖心情 Post By:2018/3/12 15:59:00 [只看该作者]

我就是依你上次的方法,全部加载了,但有些共同关联的有10多个表,
加载时间慢。

如果要卸载表A,
代码写在哪里?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  26楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/12 16:10:00 [只看该作者]

以下是引用恒隆君在2018/3/12 15:59:00的发言:
我就是依你上次的方法,全部加载了,但有些共同关联的有10多个表,
加载时间慢。

如果要卸载表A,
代码写在哪里?

 

比如你要加载 表A、表B、表C,那么你需要判断 A、B、C 是否都已经加载了,如果加载,就先卸载,如

 

If DataTables.Contains("表A") Then

    DataTables.Unload("表A")

End If

If DataTables.Contains("表B") Then

    DataTables.Unload("表B")

End If

If DataTables.Contains("表C") Then

    DataTables.Unload("表C")

End If

DataTables.Load("表A|表B|表C")


 回到顶部
总数 26 上一页 1 2 3