Excel VBA将数据导入现有Access数据库

时间:2014-01-12 22:17:46

标签: excel vba ms-access excel-vba

我之前发现过类似的问题,但我似乎无法用这些例子来解决这个问题。

我正在Excel中编写一个宏,其中最后一步需要将Sheet1中的所有数据!A:Q(第1行中的标题)导入Access数据库中的Table1。我需要确保Excel中的每一列都对应于Access中的正确字段。

我使用的是Excel 2010/2013和Access 2010/2013。我目前使用的代码是:

Sub AccImport()

Dim acc As New Access.Application
acc.OpenCurrentDatabase "C:\Users\Benjamin\Documents\Database1.accdb"
acc.DoCmd.TransferSpreadsheet _
        acImport, _
        acSpreadsheetTypeExcel12Xml, _
        "Sheet1", _
        Application.ActiveWorkbook.FullName, _
        True, _
        "A1:Q1000"         'Need to change to reflect the last row in the sheet
acc.CloseCurrentDatabase
acc.Quit
Set acc = Nothing

End Sub

代码导致错误消息,突出显示acc As New Access.Application并显示“编译错误 - 用户定义的类型未定义”

非常感谢任何帮助。谢谢!

2 个答案:

答案 0 :(得分:2)

试试这个:在VBA编辑器中,转到工具 - >引用。向下滚动到“Microsoft Access 11.0对象库”(您的可能不是11.0,但您正在寻找一个说Microsoft Access的那个)并确保选中该框。如果没有,请检查它并单击“确定”。这在我测试时解决了编译错误。

答案 1 :(得分:1)

您是否在VBA for Access中包含了参考文献?

Tools > references > Microsoft Access xx.x Object Library