【发布时间】:2021-05-14 18:06:58
【问题描述】:
我有代码可以将 MS Access (2016\2013) 查询结果导出到已使用多年的 Excel 电子表格中。
这是代码(没有发布我上面的所有变量定义):
strSQL = "select[query].* FROM [query] "
Set qdf = dbs.CreateQueryDef("MKTShare", strSQL)
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "MKTShare", "\\path\file.xlsx", _
True, ""
DoCmd.DeleteObject acQuery, "MKTShare"
给出的错误是 3251 - 此对象类型不支持操作
我尝试了两台机器,一台运行WIN10,一台运行WIN7。结果相同。真正奇怪的是,这个问题主要出现在交叉表查询中。 “标准”选择查询没有问题。如果我将 xtabquery 转换为表,然后导出该表,则没有问题,但这是一个非常低效的解决方案,因为我有很多查询,而且非常大的数据集在循环中运行。
如果我从 Access 中运行查询,它会显示很好的结果。问题在于转移电子表格方法。
它发生在昨天一些 Windows 更新之后。
我尝试使用 Output 来解决问题,但它不适用于预填充的 Excel 模板,因为它搞砸了要导出到的整个文件。
【问题讨论】:
标签: vba ms-access-2013 ms-access-2016