我之前发现过类似的问题,但我似乎无法用这些例子来解决这个问题。
我正在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
并显示“编译错误 - 用户定义的类型未定义”
非常感谢任何帮助。谢谢!
答案 0 :(得分:2)
试试这个:在VBA编辑器中,转到工具 - >引用。向下滚动到“Microsoft Access 11.0对象库”(您的可能不是11.0,但您正在寻找一个说Microsoft Access的那个)并确保选中该框。如果没有,请检查它并单击“确定”。这在我测试时解决了编译错误。
答案 1 :(得分:1)
您是否在VBA for Access中包含了参考文献?
Tools > references > Microsoft Access xx.x Object Library