2009-12-04 35 views
16

我有两个表格,我希望能够导出到excel通过VBA将MS Access表导出到同一目录下的Excel电子表格中

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

但是,这样用户实际上必须输入名称,这样才有可能误导文件或将其保存为错误的格式或错误的位置。此外,这两个表必须导出到两个单独的工作簿。

我希望能够做的是使该自动导出一个表,一个工作表,另一个到另一个工作表窗体上的一个按钮,无论是在相同的Excel工作簿

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

如果您知道如何操作,那么添加的perk可能是自定义名称以包含日期。这样该目录也会有历史出口。有什么建议?

回答

32

可以使用VBA将Excel数据库表导出为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 

这将输出两者Table 1和表2到同一工作簿。

HTH

+0

这很好,但我如何强制它导出到CurrentProject.Path? – Matt 2009-12-04 22:51:36

+3

outputFileName = CurrentProject.Path&“\ Export_”&Format(Date,“YYYYDDmm”)&“.xls” – Fionnuala 2009-12-05 01:00:39

+1

在提供的代码中,您强制它将文件保存到当前路径, value到outputFileName变量。也就是说,将CurrentProject.Path粘贴在=和“之间,并在报价后放置一个\(CurrentProject.Path忽略结尾斜杠)。 – 2009-12-05 01:17:07

-4

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

这不是有效的解决方案如果您将此作为最终用户应用程序/报告系统提供 – MattE 2017-11-08 20:59:03

相关问题