我有一个名为 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文件。
这是我的第二次尝试。 这是创建临时查询的代码,但有2个问题。 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
答案 0 :(得分:2)
你可以尝试下面这样的东西,不是你想要的那么简单,但首先要看看我会尝试的东西。我会继续看。
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创建临时查询,然后将其导出,然后将其删除。不确定是什么允许的。