将表导出到Excel并打开文件

时间:2014-10-29 20:03:25

标签: ms-access access-vba

我想将一个表(该表称为" Consultations")导出到Excel,然后打开该文件。我是从带有按钮的表单中做到这一点的。此时,我正确导出文件,但Excel不会保持打开状态。我尝试使用xlApp.Visible = True,但只是在导出文件时打开Excel,然后在完成后关闭Excel。

为了保持Excel(和导出的文件)的打开,我需要插入哪些代码?

Private Sub btnExportConsultations_Click()

Dim curPath As String
Dim xlApp As Object

Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
curPath = CurrentProject.Path & "\Consultations - " & Format(Date, "MM") & "-" & Format(Date, "dd") & "-" & Format(Date, "yyyy") & ".xlsx"
DoCmd.TransferSpreadsheet acExport, 10, "Consultations", curPath, -1

End Sub

2 个答案:

答案 0 :(得分:4)

创建电子表格,然后使用Application.FollowHyperlink在与该文件类型相关联的应用程序中打开它 - 应该是Excel。

Private Sub btnExportConsultations_Click()
    Dim curPath As String

    curPath = CurrentProject.Path & "\Consultations - " & _
        Format(Date, "mm-dd-yyyy") & ".xlsx"
    DoCmd.TransferSpreadsheet acExport, 10, "Consultations", curPath, -1
    Application.FollowHyperlink curPath 
End Sub

注意我也更改了curPath =行。您可以使用单个Format()表达式而不是三个表达式将格式化日期添加到文件名中。

答案 1 :(得分:0)

使用Excel应用程序对象的Workbooks.Open方法在您创建的Excel对象中打开工作簿。另外,我会在搞乱Excel之前导出文件 - 不确定它是否有所作为,但我认为代码流程至少更好。

Private Sub btnExportConsultations_Click()

    Dim curPath As String
    Dim xlApp As Object

        curPath = CurrentProject.Path & "\Consultations - " & Format(Date,"mm-dd-yyyy")
        DoCmd.TransferSpreadsheet acExport, 10, "Consultations", curPath, -1

        Set xlApp = CreateObject("Excel.Application")
        xlApp.Workbooks.Open(curPath)
        xlApp.Visible = True

End Sub