2016-08-16 19 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 FROM tbl1.ecidを選択し;' – sam

+0

これは、アクセスデシベル – sam

答えて

0

スプレッドシート関数にエクスポートを使用できますが、これは新しいファイルへの書き込みに留意してください。すでに開いているファイルでこれが機能するかどうかは不明です。もう1つの方法は、レコードセットを作成した後に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 
関連する問題