2017-07-07 69 views
0

我有多個表訪問的數據庫。我的最終目標是用一個按鈕創建一個窗體,當按下時,運行一個宏。該宏將運行自定義VBA代碼。訪問2016 VBA代碼導出到Excel,「找不到可安裝ISAM」

運行時,我希望宏到用一個工作表創建一個新的Excel工作簿,並將一個特定的表導入到該工作表中。

目前,這是我的VBA代碼。我對VBA有0的經驗,所以不知道這段代碼是否可以工作。我發現這個代碼在網上作爲回答關於類似的目標的問題,不是我的(Export MS Access tables through VBA to an excel spreadsheet in same directory

Option Compare Database 

Public Function exportToExcel() 

Dim outputFileName As String 
outputFileName = CurrentProject.Path & "\Export_" & Format(Date, "yyyyMMdd") & ".xlsx" 

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel2Xml, "all_data", outputFileName, True 

End Function 

我打開VBA編輯器,創建了一個名爲export module新的模塊,在模塊文件夾中導航窗格在VBA編輯器窗口的右側。 Option Compare Database位已經存在了,我將其餘的輸入到這個新模塊中。

保存模塊後,我創建了一個新的宏,其中我有RunCode命令,功能字段是=exportToExcel()。當我運行宏,我得到錯誤

Run-time error '3170': 
Could not find installable ISAM. 

有誰知道這個錯誤來自哪裏,以及我如何解決它?你也可以對我的VBA代碼發表評論,並告訴我是否有什麼錯誤,我應該改變什麼,或者如果我甚至想要以正確的方式自動導出到Excel中?

非常感謝您的幫助。

回答

0

做了更多挖了一條能夠找到一個解決方案,如果有人發現在未來的這個問題。

我不知道整個ISAM問題是,但this tutorial是我完成所需任務的關鍵。我在VBA編輯器中創建了一個新模塊,並在其中編寫了這些代碼。

Sub exportToXL() 

On Error GoTo ErrorHandler 

Dim dbTable As String 
Dim xlWorksheetPath As String 

'<PATH> is the location you want the Excel file saved to, C:\ etc... 
xlWorksheetPath = "<PATH>" 

xlWorksheetPath = xlWorksheetPath & "xlExportAccessToExcel.xls" 

'table1 is generic table name, this is the name of the table you want to export 
dbTable = "table1" 

DoCmd.TransferSpreadsheet transfertype:=acExport, spreadsheettype:=acSpreadsheetTypeExcel9, tablename:=dbTable, FileName:=xlWorksheetPath, hasfieldnames:=True 

ErrorHandlerExit: 

    Exit Sub 

ErrorHandler: 

    MsgBox "Error No: " & Err.Number & ";Description: " & Err.Description 

    Resume ErrorHandlerExit 


End Sub 

我把這個模塊從VBA編輯器內直,導航到我指定的文件位置,發現裏面所需數據的新的Excel工作簿!

希望這有助於在未來的人。

0

我懷疑這是錯誤的Excel庫和使用

acSpreadsheetTypeExcel2Xml改變代碼

acSpreadsheetTypeExcel9

具有參考ACTUA根據主機上安裝的任何版本的excel,lly取得了不同的結果。

+1

我讓Excel 2016安裝,在我的答案新代碼它上面既... Excel9工作,並與... Excel12Xml –

相關問題