You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

导出当前记录至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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 18:05:22