以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  动态增加列时出现问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=59107)

--  作者:sky-18
--  发布时间:2014/10/29 18:57:00
--  动态增加列时出现问题

Dim Builder As New ADOXBuilder
Builder.Open()

    
 Builder.Tables("表A").AddColumn("备注" ,ADOXType.Text) \'增加备注列

Builder.Close()

通过以上代码增加列时出现这个错误提示。


图片点击可在新窗口打开查看此主题相关图片如下:搜狗截图20141029185514.jpg
图片点击可在新窗口打开查看


求老师解答


--  作者:有点甜
--  发布时间:2014/10/29 19:03:00
--  

 如果重复添加,就会报错

 

Dim Builder As New ADOXBuilder
try
    Builder.Open()
    Builder.Tables("表A").AddColumn("备注32" ,ADOXType.Text) \'增加备注列
    msgbox("成功")
catch ex As exception
    Builder.Close()
End try


--  作者:sky-18
--  发布时间:2014/10/29 22:20:00
--  没有重复增加
没有重复增加,而且重复增加的报错不是这样的。
奇怪的是在我的项目里只要通过代码动态增加列就会出现这个错误。
甜老师能不能通过错误提示看出来时什么问题?

--  作者:有点甜
--  发布时间:2014/10/29 22:22:00
--  

 你用的是不是最新版了?旧版可能有bug

 

 我测试没有问题。


--  作者:sky-18
--  发布时间:2014/10/29 22:46:00
--  甜老师再看看
Dim resta As Integer = 0
Dim 生产备注 As Boolean = True
Dim 算价 As Boolean = True
For Each dd As Col In Tables("订单").Cols
    If dd.Name = "生产备注" Then
        生产备注 = False
    End If
Next
For Each ddsj As Col In Tables("订单数据").Cols
    If ddsj.Name = "算价" Then
        算价 = False
    End If
Next
If 生产备注 = True Then
    Dim Builder As New ADOXBuilder
    Builder.Open() 
    Builder.Tables("订单").AddColumn("生产备注" ,ADOXType.text)
    Builder.Close()
resta = resta + 1
End If
If 算价 = True Then
    Dim Builder As New ADOXBuilder
    Builder.Open()
    Builder.Tables("订单数据").AddColumn("生产备注" ,ADOXType.text)
    Builder.Close()
resta = resta + 1
End If
If resta > 0 Then
MessageBox.Show("为了迎合新功能,数据库已经自动升级,需要重新打开软件.请在软件自动关闭后再手动打开.")
Syscmd.Project.Exit(True)
End If



我的代码其实是这样的,但是在运行到:Builder.Tables("订单").AddColumn("生产备注" ,ADOXType.text)
这条代码时就出现了前面说的错误。甜老师看看怎么回事

--  作者:有点甜
--  发布时间:2014/10/29 22:53:00
--  

 1、先升级到最新版;

 

 2、http://www.foxtable.com/help/topics/2715.htm

 


--  作者:sky-18
--  发布时间:2014/10/29 22:59:00
--  
甜老师,我用的是win7.
而且我通过系统菜单能增加列。
现在发现只是在通过代码动态添加列会出现错误。

    Dim Builder As New ADOXBuilder
    Builder.Open() \'打开ADOXBuilder
    Builder.Tables("库存").AddColumn("算价" ,ADOXType.text) \'增加日期型列
    Builder.Close() \'关闭ADOXBuilder
就像上面这个简单的代码也会出现错误,无法增加列

--  作者:有点甜
--  发布时间:2014/10/29 23:00:00
--  
先升级到最新版
--  作者:sky-18
--  发布时间:2014/10/29 23:03:00
--  
已经是最新版本了。图片点击可在新窗口打开查看
--  作者:有点甜
--  发布时间:2014/10/29 23:06:00
--  
测试了一下,你的表名写错了。没有对应的表就会报这个错。