Foxtable(狐表)用户栏目专家坐堂 → [求助]改列名后重新代码加载会报错!


  共有2865人关注过本帖树形打印复制链接

主题:[求助]改列名后重新代码加载会报错!

帅哥哟,离线,有人找我吗?
whyfoxtable
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:134 积分:1047 威望:0 精华:0 注册:2014/11/24 11:07:00
[求助]改列名后重新代码加载会报错!  发帖心情 Post By:2015/5/28 15:35:00 [只看该作者]

Dim Builder As New ADOXBuilder
Builder.Open()
With Builder.Tables("表B")
    .RenameColumn("第三列","成绩")
End With
Builder.Close()
DataTables("表B").Load
[此贴子已经被作者于2015/5/28 15:38:18编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/5/28 15:35:00 [只看该作者]

报什么错? 

 回到顶部
帅哥哟,离线,有人找我吗?
whyfoxtable
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:134 积分:1047 威望:0 精华:0 注册:2014/11/24 11:07:00
[求助]会提示“表B没有“成绩”列”  发帖心情 Post By:2015/5/28 15:38:00 [只看该作者]

然后就是一大堆代码,表B也不能正常出现,需要关闭程序重新打开才可见。

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/5/28 15:38:00 [只看该作者]

请问报什么错?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/5/28 15:43:00 [只看该作者]

 删除列的时候,要unload表,然后再load表。

 回到顶部
帅哥哟,离线,有人找我吗?
whyfoxtable
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:134 积分:1047 威望:0 精华:0 注册:2014/11/24 11:07:00
[求助]有如下报错.  发帖心情 Post By:2015/5/28 15:43:00 [只看该作者]

见附件。

 

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


图片点击可在新窗口打开查看此主题相关图片如下:n2.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2015/5/28 15:47:20编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2015/5/28 15:45:00 [只看该作者]

DataTable的load是加载数据,  你修改了结构,当然会出错。

 

应该先先卸载:

http://www.foxtable.com/help/topics/2754.htm

再加载:

http://www.foxtable.com/help/topics/2753.htm

 

个人建议你不要去折腾这些东西,不适合目前的你。

[此贴子已经被作者于2015/5/28 15:48:22编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
whyfoxtable
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:134 积分:1047 威望:0 精华:0 注册:2014/11/24 11:07:00
[求助]毛病出在表上,表中有表达式列!  发帖心情 Post By:2015/5/28 16:11:00 [只看该作者]

去除表达式列,则代码正常。

有表达式列,则代码不能正常。

 

现在,如何检测是否是表达式列?

 


Dim Builder As New ADOXBuilder
Dim dc As Col
Dim NewName As String
Dim OLDname As String
Builder.Open()
    For Each dc  In Tables("表A").Cols
        NewName =  "pii"+dc.name
        OLDname = dc.name
        Builder.Tables("表A").RenameColumn(OLDname,NewName)
    Next
Builder.Close()

 If DataTables.Contains("表A")  Then '如果表已经加载
      DataTables.Unload("表A") '卸载表
 End If

 If (DataTables.Contains("表A") = False)  Then '如果未加载
      DataTables.load("表A") '加载表
 End If

[此贴子已经被作者于2015/5/28 16:17:52编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/5/28 16:25:00 [只看该作者]

Dim Builder As New ADOXBuilder
Dim dc As Col
Dim NewName As String
Dim OLDname As String
Builder.Open()
For Each dc  In Tables("表A").Cols
    If dc.DataCol.Expression = "" Then
        NewName =  "pii"+dc.name
        OLDname = dc.name
        Builder.Tables("表A").RenameColumn(OLDname,NewName)
    End If
Next
Builder.Close()


If DataTables.Contains("表A")  Then '如果表已经加载
    DataTables.Unload("表A") '卸载表
End If

If (DataTables.Contains("表A") = False)  Then '如果未加载
    DataTables.load("表A") '加载表
End If

 


 回到顶部
帅哥哟,离线,有人找我吗?
whyfoxtable
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:134 积分:1047 威望:0 精华:0 注册:2014/11/24 11:07:00
[求助]如是是表达式列,但没表达式,会不会正常?  发帖心情 Post By:2015/5/28 16:33:00 [只看该作者]

我去试一下,回来报告。

 

 

。。。。

 

试了一下,新加表达式列,但不设表达式,代码仍旧会报错。。。。

[此贴子已经被作者于2015/5/28 16:37:16编辑过]

 回到顶部
总数 13 1 2 下一页