2015-09-11 164 views
0

我正在嘗試將工作表從Excel 2007導出到Windows 7上的Access 2007,包括創建一個新表格。我在Excel中嘗試過以下VBA,但它聲明「編譯錯誤用戶定義類型未定義」,然後突出顯示Access對象的第一個變量聲明。我有Microsoft ActiveX數據對象6.1庫引用。什麼是「編譯錯誤用戶定義類型未定義」?

出了什麼問題?

Dim acc As New Access.Application 
Dim ws As Worksheet 
Dim ThisWorkbook As Workbook 
Dim a As Long 
Dim b As Long 

Set ThisWorkbook = ActiveWorkbook 
Set ws = ThisWorkbook.Sheets("CompleteNoFormat3") 
a = ws.UsedRange.Rows.Count 
b = ws.UsedRange.Columns.Count 

acc.OpenCurrentDatabase "CustDB.mdb" 
    acc.DoCmd.TransferSpreadsheet _ 
    TransferType:=acImport, _ 
    SpreadSheetType:=acSpreadsheetTypeExcel12Xml, _ 
    TableName:="CustExportTable", _ 
    Filename:=Application.ActiveWorkbook.FullName, _ 
    HasFieldNames:=True, _ 
    Range:="BAPCompletNoFormat$A1:" & a & B 
acc.CloseCurrentDatabase 
acc.Quit 
Set acc = Nothing 
+0

您需要將引用添加到應用程序的訪問對象庫。 ADO和Access並不是一回事。 –

+0

@TimWilliams感謝您的回覆。遲到的答覆,因爲我不得不休年假。這解決了這個問題,但現在它不識別「CompleteNoFormat3」工作表,而是轉移第一個工作表 – mjhenry

回答

1

考慮使用後期綁定它甚至有時會建議,如果應用程序分發到誰可以安裝不同的庫版本類型的多個用戶。

後期綁定避免了需要專門選擇爲適當的類型CPU搜索,對於做應用程序引用不support the "New" keyword

Dim acc As Object 

Set acc = CreateObject("Access.Application") 
相關問題