在同一目录下将表格导出到Excel电子表格中

24

我在我的Access数据库中有两个表格想要导出到Excel

我可以通过打开表格,然后进行文件->导出... ,然后选择格式并输入文件名来完成导出。

但是,这种方式需要用户自己输入文件名,所以有可能会命名错误或保存为错误格式或位置。此外,这两个表格必须分别导出到两个单独的工作簿中。

我希望能够在表格上制作一个按钮,自动将一个表格导出到一个工作表中,另一个表格导出到另一个工作表中,同时在同一Excel工作簿中。

如果无法将它们放入同一工作簿中,那也没关系。我只是想让它们自动导出到保存我的Access数据库的同一目录中。

如果您知道如何操作,额外的好处可能是自定义文件名以包括日期。这样该目录就会有历史导出记录。有什么建议吗?

3个回答

43
你可以使用 VBA 将 Access 数据库表导出为 Excel 工作簿中的工作表。
要获取 Access 数据库的路径,请使用 CurrentProject.Path 属性。
要将 Excel 工作簿文件命名为当前日期,请使用 Format(Date, "yyyyMMdd") 方法。
最后,要将表格导出为工作表,请使用 DoCmd.TransferSpreadsheet 方法。
示例:
Dim outputFileName As String
outputFileName = CurrentProject.Path & "\Export_" & Format(Date, "yyyyMMdd") & ".xls"
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Table1", outputFileName , True
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Table2", outputFileName , True

这将把Table1和Table2同时输出到同一个工作簿中。

希望能对您有所帮助。


那很好用,但我如何强制将其导出到CurrentProject.Path? - Matt
3
输出文件名 = CurrentProject.Path & "\Export_" & Format(Date, "YYYYDDmm") & ".xls" - Fionnuala
1
在提供的代码中,您可以通过在将值分配给outputFileName变量时包含路径来强制将文件保存到当前路径。也就是说,在等号和引号之间插入CurrentProject.Path,并在引号后面放置\(CurrentProject.Path省略了尾部斜杠)。 - David-W-Fenton
它只能导出65535行,如果需要更多,则需要使用DoCmd.TransferText。 - Salman Siddique

8

-8

对于通过搜索引擎找到这篇文章的人,你不需要使用VBA。你可以直接:

1.) select the query or table with your mouse
2.) click export data from the ribbon
3.) click excel from the export subgroup
4.) follow the wizard to select the output file and location.

如果您将其作为最终用户应用程序/报告系统交付,则此解决方案无效。 - MattE

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接