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


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

主题:导入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),那么如何根据这个日期列来控制只导入部分数据行呢?谢谢。

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


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

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

 回到顶部
帅哥哟,离线,有人找我吗?
edisontsui
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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() 

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

 回到顶部
帅哥哟,离线,有人找我吗?
edisontsui
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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() '开始合并

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

 回到顶部
帅哥哟,离线,有人找我吗?
edisontsui
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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 & "#"        
我改成这个样子了,还是一样的提示:至少一个参数没有被指定值。

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2024/1/13 11:01:00 [显示全部帖子]

找到原因了。

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2024/2/2 9:04:00 [显示全部帖子]

        Dim mg As New Merger
        Dim dt3 As Date = dtp2.Value.AddDays(1) 
        mg.SourcePath = p & "att2000.mdb" '指定数据文件所在目录
        mg.SourceTableName = "CHECKINOUT" '指定要合并的dbase文件,无需扩展名
        mg.DataTableName = "考勤机记录" '指定接收数据的表
        mg.filter = "[CHECKTIME] >= #" & dtp1.value & "# And [CHECKTIME] <= #" & dt3 & "#"        
        mg.Fields = "USerID, CHECKTIME" 
        mg.Merge() '开始合并
        DataTables("考勤机记录").save
上面的合并文件代码,我希望达到这样的效果:如果 "考勤机记录" 里面已经存在相同姓名、相同"CHECKINOUT"的记录,就不要再合并了。那要怎样修改代码呢?谢谢。

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2024/2/2 10:47:00 [显示全部帖子]

好的。

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2024/2/27 9:34:00 [显示全部帖子]

cmd.C
上面代码里面的 cmd.C,无论是改成 cmd.C 还是 cmd.ConnectionName = p & "att2000",都会提示“指定的数据源名称错误”。请问要怎样修改?谢谢。

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2024/2/27 9:35:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:text.rar

请看附页代码。

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