Foxtable(狐表)用户栏目专家坐堂 → 这样更改字段名称报错


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

主题:这样更改字段名称报错

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


加好友 发短信
等级:七尾狐 帖子:1696 积分:15795 威望:0 精华:0 注册:2017/6/1 23:12:00
这样更改字段名称报错  发帖心情 Post By:2018/5/10 22:46:00 [只看该作者]

 Dim t1 As Table = Tables("采购")
    If t1.Cols.Contains("型号") = True Then
        Dim Builder As New ADOXBuilder("bjgl") '要指定数据源名称
        'Dim tbl As ADOXTable
        Builder.Open()
        With Builder.Tables(t.name)
            .RenameColumn("型号" ,"品名")
        End With
        Builder.Close()
        DataTables.unload("匹配出库|匹配出库临时|搜索匹配|搜索匹配临时|操作员档案|销售|采购")
        DataTables.Load("匹配出库|匹配出库临时|搜索匹配|搜索匹配临时|操作员档案|销售|采购")
    End If
错误提示:参数 @objname 不明确或所声明的 @objtype (column)有误。



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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/10 23:03:00 [只看该作者]

1、是不是这个代码导致的报错?

 

DataTables.Load("匹配出库|匹配出库临时|搜索匹配|搜索匹配临时|操作员档案|销售|采购")

 

注释掉看看

 

2、我这样测试正常

 

Dim t1 As Table = Tables("表A")
If t1.Cols.Contains("第二列") = True Then
    Dim Builder As New ADOXBuilder '要指定数据源名称
    'Dim tbl As ADOXTable
    Builder.Open()
    With Builder.Tables(t1.name)
        .RenameColumn("第二列" ,"品名")
    End With
    Builder.Close()
    DataTables.unload("表A")
    DataTables.Load("表A")
End If


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


加好友 发短信
等级:七尾狐 帖子:1696 积分:15795 威望:0 精华:0 注册:2017/6/1 23:12:00
  发帖心情 Post By:2018/5/16 22:02:00 [只看该作者]

With tbl
            .AddColumn("日期" ,ADOXType.DateTime)
            .AddColumn("说明" ,ADOXType.String, 12)
            .AddColumn("备注" ,ADOXType.String, 254)
            .AddColumn("操作员" ,ADOXType.String,12)
        End With
日期还是date 而不是datetime,有什么办法,变成datetime吗?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/16 22:28:00 [只看该作者]


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


加好友 发短信
等级:七尾狐 帖子:1696 积分:15795 威望:0 精华:0 注册:2017/6/1 23:12:00
  发帖心情 Post By:2018/5/16 23:05:00 [只看该作者]

Dim Builder As New ADOXBuilder("bjgl") '要指定数据源名称
        Dim tbl As ADOXTable
        Builder.Open()
        tbl = Builder.NewTable("日志") '创建表
        With tbl
            .AddColumn("日期" ,ADOXType.DateTime)
            .AddColumn("说明" ,ADOXType.String, 12)
            .AddColumn("品名" ,ADOXType.String, 60)
            .AddColumn("封装" ,ADOXType.String, 60)
            .AddColumn("备注" ,ADOXType.String, 254)
            .AddColumn("操作员" ,ADOXType.String,12)
        End With
        Builder.AddTable(tbl) '增加表
        Builder.Close()
执行到Builder.AddTable(tbl) '增加表,报错:在对应所需名称或序数的集合中,未找到项目。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/16 23:38:00 [只看该作者]

我测试了一下代码,代码没问题。肯定不是你5楼报的错。

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


加好友 发短信
等级:七尾狐 帖子:1696 积分:15795 威望:0 精华:0 注册:2017/6/1 23:12:00
  发帖心情 Post By:2018/5/17 8:42:00 [只看该作者]

If  Tables.Contains("日志") Then
    Else
        Dim Builder As New ADOXBuilder("bjgl") '要指定数据源名称
        Dim tbl As ADOXTable
        Builder.Open()
        tbl = Builder.NewTable("日志") '创建表
        With tbl
            .AddColumn("日期" ,ADOXType.DateTime)
            .AddColumn("说明" ,ADOXType.String, 12)
            .AddColumn("品名" ,ADOXType.String, 60)
            .AddColumn("封装" ,ADOXType.String, 60)
            .AddColumn("备注" ,ADOXType.String, 254)
            .AddColumn("操作员" ,ADOXType.String,12)
        End With
        Builder.AddTable(tbl) '增加表
        Builder.Close()
        DataTables.unload("日志")
        DataTables.load("日志")
        DataTables("日志").DataCols("日期").SetDateTimeFormat(DateTimeFormatEnum.DateTime)
    End If
这是全部代码,没看出来哪有问题

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/17 8:44:00 [只看该作者]

这个代码有错

 

        DataTables.unload("日志")
        DataTables.load("日志")
        DataTables("日志").DataCols("日期").SetDateTimeFormat(DateTimeFormatEnum.DateTime)

 

外部数据表(代码新建的),无法直接通过unload、load加入的

 

如果要加入,只能临时加入 http://www.foxtable.com/webhelp/scr/1279.htm

 

 


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


加好友 发短信
等级:七尾狐 帖子:1696 积分:15795 威望:0 精华:0 注册:2017/6/1 23:12:00
  发帖心情 Post By:2018/5/17 9:09:00 [只看该作者]

If  Tables.Contains("日志") Then
        DataTables("日志").DataCols("日期").SetDateTimeFormat(DateTimeFormatEnum.DateTime)
    Else
        Dim Builder As New ADOXBuilder("bjgl") '要指定数据源名称
        Dim tbl As ADOXTable
        Builder.Open()
        tbl = Builder.NewTable("日志") '创建表
        With tbl
            .AddColumn("日期" ,ADOXType.DateTime)
            .AddColumn("说明" ,ADOXType.String, 12)
            .AddColumn("品名" ,ADOXType.String, 60)
            .AddColumn("封装" ,ADOXType.String, 60)
            .AddColumn("备注" ,ADOXType.String, 254)
            .AddColumn("操作员" ,ADOXType.String,12)
        End With
        Builder.AddTable(tbl) '增加表
        Builder.Close()
    End If
    '
    '''升级增加缺少的字段
    Dim t As Table = Tables("销售")
    If t.Cols.Contains("最近出货时间") = False Then
        Dim Builder As New ADOXBuilder("bjgl") '要指定数据源名称
        Dim tbl As ADOXTable
        Builder.Open()
        With Builder.Tables(t.name)
            .AddColumn("最近出货时间" ,ADOXType.Datetime)
        End With
        Builder.Close()
    Else
        DataTables("销售").DataCols("最近出货时间").SetDateTimeFormat(DateTimeFormatEnum.DateTime)
    End If
这样写的,还是报错

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/17 9:12:00 [只看该作者]

每段代码单独测试;执行下面代码报什么错?

 

        Dim Builder As New ADOXBuilder("bjgl") '要指定数据源名称
        Dim tbl As ADOXTable
        Builder.Open()
        tbl = Builder.NewTable("日志") '创建表
        With tbl
            .AddColumn("日期" ,ADOXType.DateTime)
            .AddColumn("说明" ,ADOXType.String, 12)
            .AddColumn("品名" ,ADOXType.String, 60)
            .AddColumn("封装" ,ADOXType.String, 60)
            .AddColumn("备注" ,ADOXType.String, 254)
            .AddColumn("操作员" ,ADOXType.String,12)
        End With
        Builder.AddTable(tbl) '增加表
        Builder.Close()

 

如果报【日志表已经存在】,那,说明你的外部数据库那里,已经存在日志表了。


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