2013-04-05 87 views
2

我正在尝试将数据从我的访问数据库导出到Excel电子表格。一切都很顺利,直到我尝试为表单编写onclick事件。下面是代码:Onclick将查询结果从访问导出到Excel

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, "ReportQuery", "C:\helloworld.xlsx", True 

我得到的错误是“运行时错误3051” Microsoft Access数据库引擎无法打开或写入文件......它已经完全由其他用户打开或需要权限查看和写入其数据。

我觉得很难相信引擎没有权限。有没有设置或我在这里失踪的东西?

+2

您是否有足够的权限在C:\中创建文件?如果你打开记事本,输入“Hello”,然后尝试将它保存为'C:\ hello.txt'你是否成功? – 2013-04-05 20:43:07

+0

访问权限以启动它的用户/进程的权限运行。它不作为特殊的系统帐户运行。 – HansUp 2013-04-05 21:06:31

+0

啊。我懂了。是。这是问题所在。在尝试网络驱动器路径之前,我使用C:\作为测试位置。我的错!谢谢! – 2013-04-05 21:19:14

回答

2

您似乎没有足够的权限写入驱动器C:的根目录。测试时,请始终选择一个“安全”位置(如“文档”文件夹)以创建或更新文件。

顺便说一句,如果您在创建.xlsx文件时使用acSpreadsheetTypeExcel12Xml而不是acSpreadsheetTypeExcel12,则可能会取得更好的成功。