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),那么如何根据这个日期列来控制只导入部分数据行呢?谢谢。
ip.NewTableName ="订单" '导入后的表名ip.filter = "日期 > #12/19/2023#"
ip.Import()
如果只想将access里面某些列的数据导入至我的数据库,比如只需要导入“姓名”和“日期”两列,其他列不要导入,那要怎样改代码?谢谢。
Fields
指定要导入的字段(列),不同的字段,用逗号给开,如果不指定,则导入所有字段。
ip.
Fields = "列1,列2"
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()
我用上面代码,先增加临时表,然后再导入数据,但老是会提示:已经存在同名表“考勤机记录”,然就什么也没有导进去。请问要怎样修改代码呢?谢谢。
如果表已经存在,使用merger:
http://www.foxtable.com/webhelp/topics/0685.htm
[此贴子已经被作者于2024/1/12 13:44:59编辑过]
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() '开始合并
我改成上面那样子了,运行起来有提示:至少一个参数没有被指定值。请问是什么参数?
mg.filter = "[时间] >= #" & dtp1.value & "# And [时间] <= #" & dtp2.value & "#"
我改成这个样子了,还是一样的提示:至少一个参数没有被指定值。