以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  为何有时BuildHeader不起作用  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=39075)

--  作者:瞩望星空
--  发布时间:2013/8/14 22:16:00
--  为何有时BuildHeader不起作用

新建一个项目,并在命令窗口中执行以下代码:

Dim b1 As Boolean = Tables("表B").Cols.Contains("第十一列")

Output.Show(b1) \'用于验证

Dim Builder As New ADOXBuilder
Builder.Open() \'打开ADOXBuilder
With Builder.Tables("表B")
    If b1 = False
        .AddColumn("第十一列" ,ADOXType.String,4) \'增加字符型列,长度指定为4
    End If
End With
Builder.Close() \'关闭ADOXBuilder
DataTables("表B").BuildHeader  \'更新表头,才能显示更新的哦.
MainTable = Tables("表B")

 

再次打开这个项目,并通过菜单中删除“第十一列”,并保存项目,再打开项目,并在命令窗口中执行上述代码,

多做几次上述过程中,发现有几次执行命令窗口后,“表B”能显示“第十一列”,有几次又不能显示,不知为何?


 

[此贴子已经被作者于2013-8-14 22:17:06编辑过]

--  作者:有点甜
--  发布时间:2013/8/14 22:22:00
--  
 动态添加的列,必须重新启动项目才能生效的。帮助里有写明。

Syscmd.Project.Open(ProjectFile)

--  作者:瞩望星空
--  发布时间:2013/8/14 22:39:00
--  

重启后一定会显示新增的列,问题是上述代码有时也能直接显示(指不重启项目)新增的列。


--  作者:有点甜
--  发布时间:2013/8/14 22:45:00
--  
我测试不能直接显示新增的列……