导出当前记录至Excel时出现MS Access 3011运行时错误
Access VBA导出当前记录至Excel报错及需求说明
初始代码与运行时错误3011
我编写了一段VBA代码,试图将当前浏览的记录导出到Excel表格,但运行时触发错误3011,提示找不到对象(错误信息已正确识别当前查看的是记录86)。代码如下:
Private Sub cmdExportFilename_Click() Dim sFilename As String Dim StrSQL As String StrSQL = "Select * FROM [MainData] WHERE ([ID]=" & Me![ID] & ");" sFilename = "C:\Desktop\exportResults.xlsx" DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, StrSQL, sFilename, True End Sub
之前可用但导出全部记录的代码
之前有一段代码能成功导出数据,但会导出整个查询结果,而非仅当前浏览的记录:
Private Sub cmdExportFilename_Click() Dim sFilename As String sFilename = "C:\Users\cpastore\Desktop\exportResults.xlsx" DoCmd.OutputTo acOutputForm, "OpenComplaintsQuery", acFormatXLSX, sFilename, AutoStart:=True End Sub
由于OutputTo命令无法设置筛选参数,所以改用TransferSpreadsheet命令尝试实现需求。
最终目标
点击按钮时,将当前表单显示的25个字段中的6-7个字段,导出至Excel表格的指定单元格位置。目前代码尚未达到目标,正在逐步调试学习。
编辑后的代码(仍触发运行时错误)
根据June7的建议修改了代码,但还是遇到运行时错误,代码如下:
Private Sub cmdExportfield_Click() Dim rsGroup As DAO.Recordset Dim QIMS As String Dim path As String path = "C:\Desktop\" Set rsGroup = CurrentDb.OpenRecordset("SELECT OpenComplaintsQuery.QIMS# " & "FROM OpenComplaintsQuery GROUP BY OpenComplaintsQuery.QIMS#", dbOpenDynaset) Do While Not rsGroup.EOF QIMS = rsGroup!QIMS# Dim rsExportSQL As String rsExportSQL = "Select * FROM OpenComplaintsQuery" & "WHERE (((OpenComplaintsQuery.QIMS#='" & QIMS & "'))" Dim rsExport As DAO.QueryDef Set rsExport = CurrentDb.CreateQueryDef("myexportquerydef", rsExportSQL) DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "myexportquerydef", path & "exporttest.xlsx", True CurrentDb.QueryDefs.Delete rsExport.Name rsGroup.MoveNext Loop End Sub
内容的提问来源于stack exchange,提问作者Kemidan2014
相关产品推荐
相关产品推荐

