Foxtable(狐表)用户栏目专家坐堂 → 导入数据问题


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

主题:导入数据问题

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


加好友 发短信
等级:二尾狐 帖子:546 积分:4332 威望:0 精华:0 注册:2019/1/13 10:12:00
导入数据问题  发帖心情 Post By:2024/3/8 8:41:00 [只看该作者]

老师,狐表里的“生产计划表”,设计了新增按钮,序号自动增加,只增加一行。现在想从Excel导入,新增行数不固定,还得实现序号自动增加,我看了帮助,写了下面的代码,麻烦您给完善一下。
这是新增一行的代码:
DataTables("生产计划表").AddNew()
Tables("生产计划表").AutoSizeCols()
下面是导入按钮的代码:
Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= "xls文件|*.xlsx" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim ip As New Importer
    ip.SourcePath = dlg.FileName '指定数据文件
    ip.SourceTableName = "生产计划表" '指定要导入的表
    ip.NewTableName ="生产计划" '导入后的表名
    ip.Format = "Excel" '指定导入格式
    ip.Import()
End If
另外,想实现选择文件的时候xls和xlsx都出现在选择的窗口里。

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


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

是要导入一个新表?还是要把execl里的数据合并到现有的表里?

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


加好友 发短信
等级:二尾狐 帖子:546 积分:4332 威望:0 精华:0 注册:2019/1/13 10:12:00
  发帖心情 Post By:2024/3/8 9:13:00 [只看该作者]

在现有的表增加新的行,也就是把execl里的数据合并到现有的表里

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


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

合并要使用Merger :http://www.foxtable.com/webhelp/topics/0685.htm

Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= "xls文件|*.xlsx;*.xls" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
dim xh as integer = DataTables("生产计划表").compute("max(序号)")
dim id as integer = DataTables("生产计划表").compute("max(_identify)")
    Dim ip As New Merger 
    ip.SourcePath = dlg.FileName '指定数据文件
    ip.SourceTableName = "生产计划表" 'execl文件里的sheet名称
    ip.NewTableName ="生产计划表" '导入后的表名
if dlg.FileName.endswith(".xls")
    ip.Format = "Excel" '指定导入格式
else
    ip.Format = "Excel2007" '指定导入格式
end if
    ip.Merge()
for each dr as datarow in DataTables("生产计划表").select("_identify>" & id,"_identify")
xh = xh + 1
dr("序号") = xh
next
End If

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


加好友 发短信
等级:二尾狐 帖子:546 积分:4332 威望:0 精华:0 注册:2019/1/13 10:12:00
  发帖心情 Post By:2024/3/8 9:41:00 [只看该作者]

老师,提示以下错误:
编译错误:newtablename is not a member of "merger"
错误代码:ip.NewTableName ="生产计划表" '导入后的表名

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


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

Merger 的用法错误,根据帮助自己改一下

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


加好友 发短信
等级:二尾狐 帖子:546 积分:4332 威望:0 精华:0 注册:2019/1/13 10:12:00
  发帖心情 Post By:2024/3/8 15:06:00 [只看该作者]

老师,现在能导入,出现一个问题:序号自动增加,是在当前显示序号的基础上增加,而不是根据数据库后台的最高序号上增加,麻烦您指导一下

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


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

dim xh as integer = DataTables("生产计划表").sqlcompute("max(序号)")

 回到顶部