以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  还是动态加载表的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=91552)

--  作者:douglas738888
--  发布时间:2016/10/13 10:12:00
--  还是动态加载表的问题

老师,如果

1. 在全局代码 设置了 Public xzqy As DataTable \'从后台提取Users员工姓名

2. 在AfterOpenProject设置了 Tables("员工档案主表").Cols("员工姓名").Combolist = xzqy.SQLGetComboListString("Name").....

 

在以上部位设置了代码后,是否动态加载表就不能实现?加载表是在AfterOpenProject之后进行的吗?

 

设置动态加载和卸载的代码后,报错,无 “员工档案主表”......  错误位置在AfterOpenProject


--  作者:有点蓝
--  发布时间:2016/10/13 10:27:00
--  
AfterOpenProject、BeforeConnectOuterDataSource、BeforeLoadOuterTable

上面三个事件代码完整贴出来

--  作者:douglas738888
--  发布时间:2016/10/13 10:53:00
--  

BeforeConnectOuterDataSource:

e.C & e.ProjectPath & "gh\\用户.mdb;Persist Security Info=False"  (未发布连接本台计算机ACCESS)

 

AfterOpenProject:

Dim cmd1 As New SQLCommand
cmd1.C     
cmd1.CommandText = "SELECT * F      rom {Users} Where [Name] Is Null"
xzqy = cmd1.ExecuteReader


Tables("员工档案主表").Cols("员工姓名").Combolist = xzqy.SQLGetComboListString("Name")
Tables("员工档案主表").Cols("工作部门").Combolist = xzqy.SQLGetComboListString("Dept")
Tables("员工档案主表").Cols("工作职务").Combolist = xzqy.SQLGetComboListString("Group")

 

BeforeLoadOuterTable:

Select Case e.DataTableName
    Case "投标评价" \'初始不加载这个表
        e.Cancel = True
    Case "员工档案主表","员工档案合同","员工档案教育","员工档案薪酬","员工档案阅历"  \'初始不加载5个表(关联) 
        e.Cancel = True
End Select

 

 

主窗口 AfterLoad:

If DataTables.Contains("员工档案主表") = False Then

   DataTables.Load("员工档案主表|员工档案合同|员工档案教育|员工档案薪酬|员工档案阅历")

End If


--  作者:有点蓝
--  发布时间:2016/10/13 11:06:00
--  
既然BeforeLoadOuterTable设置了不加载,在没有再次加载之前,这些表都不能使用的

主窗口 AfterLoad:

If DataTables.Contains("员工档案主表") = False Then

   DataTables.Load("员工档案主表|员工档案合同|员工档案教育|员工档案薪酬|员工档案阅历")

End If

Tables("员工档案主表").Cols("员工姓名").Combolist = xzqy.SQLGetComboListString("Name")......