我有一个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吗?如果是的话,我做错了什么?
感谢您一直在这里阅读。
答案 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