以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]用代码,能一次批量给多表增加相同的列吗?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=57890)

--  作者:foxtable1
--  发布时间:2014/10/7 11:19:00
--  [求助]用代码,能一次批量给多表增加相同的列吗?

 

 如果在设置了好多表后,发现各个表还想再添加一个相同的列,如果手动去加,那太麻烦了,用代码,能一次批量给多表增加相同的列?

求教论坛的前辈


--  作者:有点甜
--  发布时间:2014/10/7 11:20:00
--  

 可以,参考代码 http://www.foxtable.com/help/topics/2122.htm

 


--  作者:lihe60
--  发布时间:2014/10/7 11:27:00
--  

可以的。


--  作者:foxtable1
--  发布时间:2014/10/7 11:35:00
--  

用如下代码,能实现吗?我做了个近钮,但一次也只能对一张表添加,不能批量添加:

 

For Each tbl As Table In Tables
        Dim Builder As New ADOXBuilder
        Builder.Open() 
        
        If tbl.Cols.contains(Colname)=False Then
                 If Ary(1)="0" Then
                With Builder.Tables(tbl.name)
                    .AddColumn(Colname,Ary(1),Collength)
                End With
               
            Else
                Builder.Tables(tbl.name).AddColumn(Colname,Ary(1))
               
            End If
            Builder.Close()

next

 

请问如何修改?



--  作者:有点甜
--  发布时间:2014/10/7 11:39:00
--  
Dim Builder As New ADOXBuilder
Builder.Open()
Dim Colname As String = "第100列"
For Each tbl As Table In Tables
     
    If tbl.Cols.contains(Colname )=False Then
        With Builder.Tables(tbl.name)
            .AddColumn(Colname, ADOXType.String, 16)
        End With
    End If
   
Next
Builder.Close()
Syscmd.Project.Open(ProjectFile)

--  作者:foxtable1
--  发布时间:2014/10/7 12:16:00
--  

可以实现了。原来

Dim Builder As New ADOXBuilder
Builder.Open()   要放循环体外。