Foxtable(狐表)用户栏目专家坐堂 → 如何动态创建表达式列?


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

主题:如何动态创建表达式列?

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


加好友 发短信
等级:小狐 帖子:339 积分:3766 威望:0 精华:0 注册:2017/9/7 15:20:00
如何动态创建表达式列?  发帖心情 Post By:2019/8/24 9:25:00 [只看该作者]

老师,您好!

请问如何动态创建表达式列?

Dim Builder As New ADOXBuilder
Builder.Open()
'打开ADOXBuilder
With
Builder.Tables("表A")
    .AddColumn(
"日期" ,ADOXType.DateTime) '增加日期型列
    .AddColumn(
"产品" ,ADOXType.String, 12) '增加字符型列,长度指定为12
    .AddColumn(
"客户" ,ADOXType.String, 20) '增加字符列,长度为20
    .AddColumn(
"数量" ,ADOXType.Integer) '增加整数型列
    .AddColumn(
"备注" ,ADOXType.Text) '增加备注列
End
With
Builder.Close() 


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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/24 9:41:00 [只看该作者]

这个方法无法创建表达式列。建表达式列的表必须先创建,然后加载进来,再通过这种方式添加:http://www.foxtable.com/webhelp/topics/1428.htm

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


加好友 发短信
等级:小狐 帖子:339 积分:3766 威望:0 精华:0 注册:2017/9/7 15:20:00
  发帖心情 Post By:2019/8/24 10:07:00 [只看该作者]

ADOXBuilder用于动态创建表和列。一般放在什么事件当中比较好?

在Initialize事件中的话,是否后面也需要代码Syscmd.Project.Open(ProjectFile)重新打开项目?

If DataTables.Contains("表A") = False Then
'动态创建表和列
end if

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/24 10:43:00 [只看该作者]

任何地方都可以使用,没有什么准则。

注意的是ADOXBuilder创建的表是无法自动添加进来的,需要手动在外部表管理中添加,或者通过代码添加:http://www.foxtable.com/webhelp/topics/1279.htm,通过代码添加的表,只能到全部表事件写代码

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


加好友 发短信
等级:小狐 帖子:339 积分:3766 威望:0 精华:0 注册:2017/9/7 15:20:00
  发帖心情 Post By:2019/8/24 17:30:00 [只看该作者]

那么,如何判断外部数据源中是否存在(“表A”)或(“某列”)呢?,不存在则添加

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/24 17:42:00 [只看该作者]


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


加好友 发短信
等级:小狐 帖子:339 积分:3766 威望:0 精华:0 注册:2017/9/7 15:20:00
  发帖心情 Post By:2019/8/25 0:07:00 [只看该作者]

1.我是想在生成datatable之前,判断Access数据源中是否存在(“表A”)或(“某列”),如果不存在则在Access中添加,
因为如果Access中没有(“表A”)的话会报错

2.用ADOXBuilder动态创建表,写在BeforeLoadOuterTable 及以上的事件中都不会起作用,还有其它的方法吗?

[此贴子已经被作者于2019/8/25 1:25:30编辑过]

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


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/25 20:53:00 [只看该作者]

参考:http://www.foxtable.com/webhelp/topics/1943.htm

只能在afteropenproject之后使用ADOXBuilder。

或者百度一下使用.net的方法连接数据库,使用sql操作建表

 回到顶部