Foxtable(狐表)用户栏目专家坐堂 → 导入access文件


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

主题:导入access文件

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
导入access文件  发帖心情 Post By:2024/1/12 9:55:00 [只看该作者]

Dim ip as New Importer
ip
.SourcePath = "c:\Data\销售管理.mdb" '指定数据文件
ip
.SourceTableName = "订单" '指定要导入的表
ip
.NewTableName ="订单" '导入后的表名
ip
.Import()
我想用上面的代码将一个 access 文件的数据导入至我的数据库。因为access档案里面数据行很多,我想只导入部分数据行。access档案里面有一列是日期格式的(像这样子的2023/12/19 19:50:15),那么如何根据这个日期列来控制只导入部分数据行呢?谢谢。

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


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

ip.NewTableName ="订单" '导入后的表名
ip.filter = "日期 > #12/19/2023#"
ip.Import()

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2024/1/12 11:20:00 [只看该作者]

如果只想将access里面某些列的数据导入至我的数据库,比如只需要导入“姓名”和“日期”两列,其他列不要导入,那要怎样改代码?谢谢。

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


加好友 发短信
等级:超级版主 帖子:110750 积分:563676 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/1/12 11:29:00 [只看该作者]

Fields
指定要导入的字段(列),不同的字段,用逗号给开,如果不指定,则导入所有字段。

ip.Fields = "列1,列2"

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2024/1/12 13:37:00 [只看该作者]

Dim dtb As New dataTableBuilder("考勤机记录")
dtb.clear 
dtb.AddDef("USerID", GetType(String), 32)
dtb.AddDef("CHECKTIME", GetType(Date))
dtb.Build()

Dim dtp1 As WinForm.DateTimePicker
dtp1 = Forms("考勤记录处理").Controls("DateTimePicker1")
Dim dtp2 As WinForm.DateTimePicker
dtp2 = Forms("考勤记录处理").Controls("DateTimePicker2")

Dim ip As New Importer
ip.SourcePath = "C:\Program Files (x86)\ZKTeco\ZKTeco\att2000.mdb" '指定数据文件
ip.SourceTableName = "CHECKINOUT" '指定要导入的表
ip.NewTableName = "考勤机记录" '导入后的表名
ip.filter = "时间 > dtp1.value"
ip.Fields = "USerID, CHECKTIME"
ip.Import() 

我用上面代码,先增加临时表,然后再导入数据,但老是会提示:已经存在同名表“考勤机记录”,然就什么也没有导进去。请问要怎样修改代码呢?谢谢。

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


加好友 发短信
等级:超级版主 帖子:110750 积分:563676 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/1/12 13:44:00 [只看该作者]

如果表已经存在,使用merger:http://www.foxtable.com/webhelp/topics/0685.htm
[此贴子已经被作者于2024/1/12 13:44:59编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2024/1/12 14:28:00 [只看该作者]

        Dim mg As New Merger
        mg.SourcePath = "C:\Program Files (x86)\ZKTeco\ZKTeco\att2000.mdb" '指定数据文件所在目录
        mg.SourceTableName = "CHECKINOUT" '指定要合并的dbase文件,无需扩展名
        mg.DataTableName = "考勤机记录" '指定接收数据的表
        mg.filter = "时间 >= dtp1.value and 时间 <= dtp2.value"
        mg.Fields = "USerID, CHECKTIME" 
        mg.Merge() '开始合并

我改成上面那样子了,运行起来有提示:至少一个参数没有被指定值。请问是什么参数?

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


加好友 发短信
等级:超级版主 帖子:110750 积分:563676 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/1/12 14:30:00 [只看该作者]

http://www.foxtable.com/webhelp/topics/1284.htm

mg.filter = "时间 >= #“ & dtp1.value & ”# and...

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2024/1/12 15:45:00 [只看该作者]

mg.filter = "[时间] >= #" & dtp1.value & "# And [时间] <= #" & dtp2.value & "#"        
我改成这个样子了,还是一样的提示:至少一个参数没有被指定值。

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


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

我测试没有问题。请上传实例测试

 回到顶部
总数 36 1 2 3 4 下一页