Access 2013 accde文件无法导出到acFormatXLSX

时间:2015-08-06 23:20:12

标签: ms-access access-vba ms-access-2013

我有一个Access 2013数据库,我将其保存为accde文件,以便提供给最终用户。我注意到报告打印预览不再有色带上的导出按钮。我不确定为什么他们在accdb中,但在accde文件中,并找不到任何使用谷歌解释这一点,但我确实发现很多文章说你必须为Access的运行时版本制作自己的功能区导出到Excel。我没有使用运行时但我制作了自己的功能区并且它有效,但仅适用于.xls文件格式。当我尝试将其保存到.xlsx时出现错误:

“运行时错误'2282':您尝试输出当前对象的格式不可用。”

我在网上发现了一些帖子,说明这有效,但没有详细信息和很多关于Excel导出错误/已移除功能的帖子有关Excel导出无法正常工作但我使用的2013则不相关。

所以代码很简单:

DoCmd.OutputTo acOutputReport, "MyReport", acFormatXLSX, "File Name"

我也尝试过添加引用。我目前按此优先顺序排列以下参考文献: Visual Basic For Applications Microsoft Access 15.0对象库 OLE自动化 Microsoft Office 15.0 Access数据库引擎对象库 Microsoft Internet Controls Microsoft Office 15.0对象库 Microsoft Excel 15.0对象库 Microsoft数据访问组件已安装版本

简短的问题是,甚至可以使用Access 2013导出到XSLX吗?如果是的话,我做错了什么?

感谢您一直在这里阅读。

2 个答案:

答案 0 :(得分:2)

将报表导出到Excel 2013不可用。显然,由于导出报告的用户体验不佳,因此未特别包含此内容。我可以想象跨越许多细胞等的标签会变得混乱。

如果要导出到Excel,是否可以将查询导出到Excel?或者只是导出为PDF?

您还可以使用模板Excel文件,然后将数据导出到范围内。

从此link on support.office.com向下滚动到准备导出操作,请在带格式部分下查看。

脚注1.选择目标工作簿和文件格式。请注意,报告只能以较旧的* .xls文件格式导出,而不能以较新的* .xlsx文件格式导出。

答案 1 :(得分:0)

我通过VBA将其写入excel,而不是使用导出功能。有关当前项目的示例,请参见下文。

Private Sub cmdExcel_Click()
DoCmd.Hourglass 1
   'Create a new workbook in Excel
   Dim i As Long
   Dim j As Integer
   Dim oExcel As Object
   Dim oBook As Object
   Dim oSheet As Object
   Dim tbl As Object
   Dim rng As Object
   Set oExcel = CreateObject("Excel.Application")
   Set oBook = oExcel.Workbooks.Add
   Set oSheet = oBook.Worksheets(1)

    i = 1
    j = 1
   'Transfer the data to Excel
    Do While i <= frmStockScreen.Form.fGrid.rows
        Do While j <= frmStockScreen.Form.fGrid.cols
            oSheet.cells(i, j).Value = frmStockScreen.Form.fGrid.TextMatrix(i - 1, j - 1)
            j = j + 1
        Loop
        j = 1
        i = i + 1
    Loop

    Set rng = oSheet.Range(oSheet.cells(1, 1), oSheet.cells(frmStockScreen.Form.fGrid.rows, frmStockScreen.Form.fGrid.cols))
    Set tbl = oSheet.ListObjects.Add(1, rng, , 1)
    tbl.TableStyle = "TableStyleLight9"

   oSheet.Columns(1).ColumnWidth = 10
   oSheet.Columns(2).ColumnWidth = 25
   oSheet.Columns(12).ColumnWidth = 40

   'Save the Workbook and Quit Excel
   oBook.SaveAs "V:\Database\Temp\StockDump" & GetNewLogin() & ".xlsx"

   oExcel.Quit
   Application.FollowHyperlink "V:\Database\Temp\StockDump" & GetNewLogin() & ".xlsx"
DoCmd.Hourglass 0
End Sub