通过VBA将MS Access表导出到同一目录中的Excel电子表格

时间:2009-12-04 20:50:11

标签: excel ms-access access-vba export-to-excel

我的访问数据库中有两个表,我希望能够导出到excel

我可以通过打开表然后执行File-> Export ...然后选择格式并输入文件名来实现。

然而,这种方式用户实际上必须输入名称,因此存在误导文件或将其保存为错误格式或位置错误的空间。此外,这两个表必须导出到两个单独的工作簿。

我想要做的是在表单上创建一个按钮,自动将一个表导出到一个工作表,另一个导出到另一个工作表,两者都在相同的Excel工作簿< / strong>即可。

如果将它们放在同一个工作簿中是不可能的,那很好。我只是希望它们自动导出到我的访问数据库保存在同一目录中。

如果您知道如何操作,可能需要添加额外费用来自定义名称以包含日期。这样,该目录也将具有历史导出。有什么建议吗?

3 个答案:

答案 0 :(得分:36)

您可以使用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输出到同一个工作簿中。

HTH

答案 1 :(得分:7)

劳伦斯给了你一个很好的答案。但是,如果您想要更多地控制导出到Excel中的位置,请参阅Modules: Sample Excel Automation - 逐个单元格,并且Modules: Transferring Records to Excel with Automation您可以执行诸如从第2行开始导出记录集并插入自定义文本等操作在第1行中。以及所需的任何自定义格式。

答案 2 :(得分:-7)

对于通过搜索引擎找到此内容的人,您不需要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.