以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]动态增加表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=10203)

--  作者:kensou11111
--  发布时间:2011/5/25 12:04:00
--  [求助]动态增加表
我想以某个表的单元格内容作为表名来动态增加表,但使用ADOXBuilder的话要重新打开项目才会出现这个新表。有没有什么办法可以无需重新打开项目就可以直接生成新表的?
--  作者:狐狸爸爸
--  发布时间:2011/5/25 12:05:00
--  

生成好后,用OuterTableBuilder动态加载你生成的表。


--  作者:kensou11111
--  发布时间:2011/5/25 14:54:00
--  

OuterTableBuilder不是用外部数据源来生成外部表的吗?不太了解这个语句的使用

 

我有现在这段代码:

 

Dim Builder As New ADOXBuilder

Dim tbl As ADOXTable

Builder.Open()

tbl = Builder.NewTable("订单") \'创建表

With tbl

    .AddColumn("日期" ,ADOXType.DateTime)

    .AddColumn("产品" ,ADOXType.String, 12)

    .AddColumn("客户" ,ADOXType.String, 20)

    .AddColumn("数量" ,ADOXType.Integer)

    .AddColumn("备注" ,ADOXType.Text)

End With

Builder.AddTable(tbl) \'增加表

Builder.Close()

 

我新增的表“订单”要重新打开项目后才能显示,如果我想运行完一段代码后就能显示,剩下的代码应该怎么写?


--  作者:狐狸爸爸
--  发布时间:2011/5/25 14:59:00
--  
Dim Builder As New ADOXBuilder
Dim tbl As ADOXTable
Builder.Open()
tbl = Builder.NewTable("订单") \'创建表
With tbl
    .AddColumn("日期" ,ADOXType.DateTime)
    .AddColumn("产品" ,ADOXType.String, 12)
    .AddColumn("客户" ,ADOXType.String, 20)
    .AddColumn("数量" ,ADOXType.Integer)
    .AddColumn("备注" ,ADOXType.Text)
End With
Builder.AddTable(tbl) \'增加表
Builder.Close()
Dim q As new QueryBuilder
q.C订单"
q.SelectString = "Select * From {订单} "
q.Build
MainTable = Tables("订单")
--  作者:kensou11111
--  发布时间:2011/5/25 15:16:00
--  

网速悲剧,发重了。。。

[此贴子已经被作者于2011-5-25 15:18:23编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/5/25 15:23:00
--  

Dim Builder As New ADOXBuilder
Dim tbl As ADOXTable
Builder.Open()
tbl = Builder.NewTable("BOM") \'创建表
With tbl
    .AddColumn("序号" ,ADOXType.Integer)
    .AddColumn("材料编码" ,ADOXType.String, 50)
    .AddColumn("材料名称" ,ADOXType.String, 50)
    .AddColumn("型号规格" ,ADOXType.String, 50)
    .AddColumn("单机量" ,ADOXType.Double)
    .AddColumn("装入位号" ,ADOXType.String, 50)
    .AddColumn("分工" ,ADOXType.String, 50)
    .AddColumn("功能" ,ADOXType.String, 50)
End With
Builder.AddTable(tbl) \'增加表
Builder.Close()
Dim q As new QueryBuilder
q.Table Name = "BOM"
q.SelectString = "Select * From {BOM} "
q.Build
MainTable = Tables("BOM")

 

注意:

q.Table Name = "BOM"

Table Name中的空格要删除,论坛限制,不加空格上不来。


--  作者:kensou11111
--  发布时间:2011/5/25 15:30:00
--  

上面的代码能显示“订单”表了,但这个表是查询表,不能编辑,我后续需要往里面填充数据和运算的。能不能生成一个普通的表啊?

[此贴子已经被作者于2011-5-25 15:41:50编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/5/25 15:38:00
--  

以后改进,下次更新可以

 


--  作者:rcsy001
--  发布时间:2011/5/25 16:07:00
--  

  发帖心情 Post By:2011-5-25 15:38:00 [只看该作者]

以后改进,下次更新可以

 

顶一个


--  作者:tanxiaoping9
--  发布时间:2013/1/25 12:47:00
--  
Syscmd.Project.Open(ProjectFile) \'动态创建的表和列之后,都必须重新打开项目,可以使用这个代码重新打开当前项目.