Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA将数据导入现有Access数据库_Vba_Ms Access_Excel - Fatal编程技术网

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

Excel VBA将数据导入现有Access数据库,vba,ms-access,excel,Vba,Ms Access,Excel,我以前也发现过类似的问题,但我似乎无法用这些例子来解释 我正在Excel中编写一个宏,最后一步需要导入Sheet1中的所有数据!A:Q(第1行中的标题)到Access数据库中的表1。我需要确保Excel中的每一列都对应于Access中的正确字段 我正在使用Excel 2010/2013和Access 2010/2013。我目前使用的代码是: Sub AccImport() Dim acc As New Access.Application acc.OpenCurrentDatabase "C:

我以前也发现过类似的问题,但我似乎无法用这些例子来解释

我正在Excel中编写一个宏,最后一步需要导入Sheet1中的所有数据!A:Q(第1行中的标题)到Access数据库中的表1。我需要确保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作为新的访问应用程序,并显示“编译错误-未定义用户定义类型”


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

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

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

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

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

您是否在VBA中包含了用于Access的引用

Tools > references > Microsoft Access xx.x Object Library

您是否在VBA中包含了用于访问的引用

Tools > references > Microsoft Access xx.x Object Library

您是否在VBA中包含了用于访问的引用

Tools > references > Microsoft Access xx.x Object Library

您是否在VBA中包含了用于访问的引用

Tools > references > Microsoft Access xx.x Object Library


你试过什么代码?你有什么错误吗?我想我需要使用一些这种语法——也许还有这里的代码。如果你能给我指出一些代码,我觉得我可以适应它,我只是还没有找到我可以适应的东西@thunderblasterI已尝试此操作,但出现错误:
Dim acc As New Access.Application acc.OpenCurrentDatabase“C:\Users\Benjamin\Documents\Database1.accdb”acc.DoCmd.TransferSpreadsheet\acImport、\acSpreadsheetTypeExcel12Xml、\u“tblExcelImport”,\uApplication.ActiveWorkbook.FullName、\uTrue、\uCallLog“acc.CloseCurrentDatabase acc.Quit Set acc=Nothing
您能否编辑您的问题并包含该代码,并描述您遇到的错误(具体错误号和消息,以及错误所在的行)?您的语法看起来是正确的,因此如果没有错误详细信息,很难说出问题所在。@thunderblaster将代码添加到问题中。我还在学习如何正确使用stackoverflow!你试过什么代码?你有什么错误吗?我想我需要使用一些这种语法——也许还有这里的代码。如果你能给我指出一些代码,我觉得我可以适应它,我只是还没有找到我可以适应的东西@thunderblasterI已尝试此操作,但出现错误:
Dim acc As New Access.Application acc.OpenCurrentDatabase“C:\Users\Benjamin\Documents\Database1.accdb”acc.DoCmd.TransferSpreadsheet\acImport、\acSpreadsheetTypeExcel12Xml、\u“tblExcelImport”,\uApplication.ActiveWorkbook.FullName、\uTrue、\uCallLog“acc.CloseCurrentDatabase acc.Quit Set acc=Nothing
您能否编辑您的问题并包含该代码,并描述您遇到的错误(具体错误号和消息,以及错误所在的行)?您的语法看起来是正确的,因此如果没有错误详细信息,很难说出问题所在。@thunderblaster将代码添加到问题中。我还在学习如何正确使用stackoverflow!你试过什么代码?你有什么错误吗?我想我需要使用一些这种语法——也许还有这里的代码。如果你能给我指出一些代码,我觉得我可以适应它,我只是还没有找到我可以适应的东西@thunderblasterI已尝试此操作,但出现错误:
Dim acc As New Access.Application acc.OpenCurrentDatabase“C:\Users\Benjamin\Documents\Database1.accdb”acc.DoCmd.TransferSpreadsheet\acImport、\acSpreadsheetTypeExcel12Xml、\u“tblExcelImport”,\uApplication.ActiveWorkbook.FullName、\uTrue、\uCallLog“acc.CloseCurrentDatabase acc.Quit Set acc=Nothing
您能否编辑您的问题并包含该代码,并描述您遇到的错误(具体错误号和消息,以及错误所在的行)?您的语法看起来是正确的,因此如果没有错误详细信息,很难说出问题所在。@thunderblaster将代码添加到问题中。我还在学习如何正确使用stackoverflow!你试过什么代码?你有什么错误吗?我想我需要使用一些这种语法——也许还有这里的代码。如果你能给我指出一些代码,我觉得我可以适应它,我只是还没有找到我可以适应的东西@thunderblasterI已尝试此操作,但出现错误:
Dim acc As New Access.Application acc.OpenCurrentDatabase“C:\Users\Benjamin\Documents\Database1.accdb”acc.DoCmd.TransferSpreadsheet\acImport、\acSpreadsheetTypeExcel12Xml、\u“tblExcelImport”、\uApplication.Ac