VBA运行时错误3326:此logging集在交叉表查询上不可更新
我试图从Access到Excel输出一个交叉表查询,我读了2010年最好使用OutputTo方法,而不是TransferSpreadsheet方法。 我有以下代码行,有时它完美地工作,有时它踢VBA运行时错误3326:此logging集是不可更新的。 我没有试图更新任何数据 – 我只是想将结果数据导出到Excel。
DoCmd.OutputTo acOutputQuery, "qryStates_1_Crosstab", "ExcelWorkbook(*.xlsx)", my_filename, False
还有什么我需要做的,使其输出正确?
的DoCmd
使用交叉表查询的结果创build一个临时表:
DoCmd.RunSQL "SELECT INTO tempTable FROM qryStates_1_Crosstab"
然后将该表导出到Excel而不是查询:
DoCmd.OutputTo acOutputQuery, "tempTable", "ExcelWorkbook(*.xlsx)", my_filename, False
之后(或下一次导出之前)清除临时表中的数据:
DoCmd.RunSQL "DELETE * FROM tempTable"
或者只是删除表格:
DoCmd.DeleteObject acTable, "tempTable"
每个这些行动将popup警告和确认。 如果您不想要警告,可以使用以下命令将其closures:
DoCmd.SetWarnings False
只要确保在子结束时或之前重新打开警告:
DoCmd.SetWarnings False
DoCmd
也可以做很多很酷的东西。 在这里阅读 。