VBA:从Excel批量往Access数据库传数据时显示找不到目标对象的异常

1 Update " & myTableName & " A,[Excel 12.0;imex=0;Database=D:\k\new\0930__data.xlsx].[Sheet1$" & Range("A1").CurrentRegion.Address(0, 0) & "] B Set A.Project=B.Ext_MaterialGrp " _
2 & " where  A.plantPN = B.Plnt & B.Material 


在使用VBA从Excel往Access上传数据时,同样的代码,但是就是一句能插入数据成功,一句总是显示找不到目标对象,系统报错让去Check文件名称及路径是否正确。

在刚遇到这个问题的第一时间,参照异常提醒检查了文件路径及文件名,均没有问题;接着怀疑是第2句引用的文件格式因为是从SAP系统导出到Unicode格式,所以去变更格式,结果还是不行。然后又尝试了很多办法,总是提示文件找不到。

大慨花费了一天的时间,一直找不到问题的根源所在,所以开始考虑是不是Excel数据的问题,于是就开始到底是哪条数据报错的,从后往前1000条一千条的删数据,上传测试。最终发现在65536行的时候如果多插一行就上传不成功,无论插入的什么数据。所以顿悟可能是Access对Excel上传数量的限制,但又见过其他人上传上十万行数据的情况,所以就去网上查找突破65536限制的方法,最终找到如下对策:

1. Access在操作Excel在大量数据的时候,需要独占这份文件

2.所以需要执行SQL语句之前用.close方法完全关闭目标Excel对象

3.因此我的做法是先将这份文件打开,然后使用.save保存文件,然后使用.close关闭Workbook对象

转载于:https://www.cnblogs.com/xl-qimao/p/Qimao.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值