Sql 为什么使用“时VBA中出现错误3073?”;转让电子表格“进口”;但不是在使用“时”;“转让电子表格链接”;

Sql 为什么使用“时VBA中出现错误3073?”;转让电子表格“进口”;但不是在使用“时”;“转让电子表格链接”;,sql,vba,database,ms-access,Sql,Vba,Database,Ms Access,我只想将一些Excel工作表导入MS Access,以合并几个月的数据(每个都在一个.xlsx文件中)。只要我用 DoCmd.TransferSpreadsheet acLink, acSpreadsheetTypeExcel12, tableName, fileName, True, "A4:L23" 但在使用导入选项时不是 DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, tableName, f

我只想将一些Excel工作表导入MS Access,以合并几个月的数据(每个都在一个.xlsx文件中)。只要我用

DoCmd.TransferSpreadsheet acLink, acSpreadsheetTypeExcel12, tableName, fileName, True, "A4:L23"
但在使用导入选项时不是

DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, tableName, fileName, True, "A4:L23"
当我将选项从“链接”更改为“导入”时,我得到一个“错误3073-操作必须使用可更新查询”

由于我想添加一列,其中包含数据应用的月份和年份,因此我需要能够添加一个变量,而我不能使用链接表

谢谢你的建议或解释我做错了什么

韩国,
Martin

您可能需要使用
acSpreadsheetTypeExcel12Xml

安德烈和古斯塔夫

谢谢你们两位的帮助!!真的很感激

我想我应该在一个新的Access DB中测试代码,并且代码确实在那里工作。问题似乎是在同一数据库中切换链接和导入时引起的。
在新的数据库中,我可以在导入和链接之间切换(DoCmd.TransferSpreadsheet语句中的acLink/acimport),但在运行vba代码之前,必须在Access中删除导入或链接的表。也许这对你们大多数人来说是显而易见的,但对我来说却不是:-)

完整的错误信息是什么?亲爱的安德烈,谢谢你的提问!完整的错误消息是:操作必须使用可更新的查询。请确保导入前数据库中不存在
tableName
。亲爱的Gustav,我尝试了您的建议-谢谢!不幸的是,我仍然得到相同的错误(操作必须使用可更新的查询)。这里的代码工作正常,所以发生了一些其他事情,因为不涉及任何查询。仔细检查您的表和查询名称。