2016-08-16 85 views
-1

我试图将访问查询的内容写入新打开的excel工作簿。这里是我试过的代码,它是用空表打开新的excel,而不是将查询写入表单。访问vba导出查询到新的excel工作簿

Dim myExcel As Excel.Application 
Dim myBook As Excel.Workbook 
Dim mySheet As Excel.Worksheet 

Set myExcel = CreateObject("Excel.Application") 

Set myBook = myExcel.Workbooks.Add(1) 
Set mySheet = myBook.Worksheets(1) 

myExcel.Visible = True 

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, qrytbl1, mySheet, True 

Set myBook = Nothing 
Set mySheet = Nothing 
Set myExcel = Nothing 
+0

不扔任何错误 – sam

+0

它只是'选择tbl1.name,tbl1.id,tbl1.ecid FROM TBL 1;' – sam

+0

这是查询表在Access数据库 – sam

回答

0

您可以使用导出到电子表格功能,但请记住这写入到一个新的文件。不知道这是否与已打开的文件一起工作。另一种方法是在创建记录集后使用CopyFromRecordset方法。

下面是一个例子。

Public Sub DisplayRecordset() 
    Dim myrs As DAO.Recordset ' Create a recordset to hold the data 
    Dim myExcel As New Excel.Application ' Create Excel with Early binding 
    Dim mySheet As Excel.Worksheet 

    Set mySheet = myExcel.Workbooks.Add(1).Worksheets(1) ' Create Workbook 
    Set myrs = CurrentDb.OpenRecordset("select tbl1.name,tbl1.id,tbl1.ecid FROM tbl1;") ' Define recordset 

    'Add header names 
    For i = 0 To myrs.Fields.Count - 1 
     mySheet.Cells(1, i + 1).Value = myrs.Fields(i).Name 
    Next 

    'Add data to excel and make Excel visible 
    mySheet.Range("**A2**").CopyFromRecordset myrs 
    myExcel.Visible = True 
End Sub 
相关问题