【问题标题】:Export a Requeried Subform into Excel将请求的子表单导出到 Excel
【发布时间】:2016-03-05 10:22:10
【问题描述】:

我有一个名为 subform_View_Search 的子表单,我根据某些用户的偏好重新查询它(例如过滤或查找特定项目的最新日期)。

现在,我想将此修改后的子表单导出到用户首选位置。我有以下代码,但我不确定我是否走在正确的轨道上,这段代码 好像不行;~(

Private Sub Command_Excel_Inst_Click()
Dim Path As String

Path = CurrentProject.Path & "\" & "TempQueryName" & ".xls"

subform_View_Search.Form.RecordSource = SQL
subform_View_Search.Form.Requery

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "subform_View_Search", Path

End Sub

您的帮助将不胜感激!

这个问题与其他问题不同,因为我是从 SQL 而不是查询创建 excel 文件。

这是我的第二次尝试。 这是创建临时查询的代码,但有两个问题。 1.它给出了运行时错误3066 2. 我的代码似乎无法删除旧的临时查询

Dim db As Database
Dim Qdf As QueryDef

Dim strQry As String
Dim strSQL As String
Dim Path As String

Path = CurrentProject.Path & "\" & "TempQueryName" & ".xls"

strSQL = SQL '<-From public
strQry = "TempQueryName"

Set db = CurrentDb
Set Qdf = db.CreateQueryDef(strQry, strSQL)

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, strQry, Path

DoCmd.DeleteObject acQuery, strQry

【问题讨论】:

    标签: sql vba ms-access export-to-excel


    【解决方案1】:

    您可以尝试以下类似的方法,但并不像您想要的那么简单,但乍一看我会尝试。不过我会继续看的。

    Dim f As Form
    Dim x As Excel.Application
    
    Set f = Me.Child0.Form
    
    Set x = New Excel.Application
    x.Visible = 1
    x.Workbooks.Add
    x.Worksheets(1).Range("a1").CopyFromRecordset f.Recordset
    
    x.ActiveWorkbook.SaveAs "filename"
    x.ActiveWorkbook.Close False
    
    Set f = Nothing
    Set x = Nothing
    

    或者使用相同的 SQL 创建一个临时查询,然后导出它,然后删除它。不确定什么是允许的。

    【讨论】:

      猜你喜欢
      • 2022-01-23
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 2017-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多