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

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

我正在Excel中写一个macros,最后一步需要将Sheet1!A:Q(第一行的标题)中的所有数据导入到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并显示“编译错误 – 用户定义types未定义”

任何帮助将不胜感激。 谢谢!

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

您是否在VBA中包含了Access的参考?

 Tools > references > Microsoft Access xx.x Object Library