将数据从 Excel 导出到 Access - 错误:参数不是可选的

Posted

技术标签:

【中文标题】将数据从 Excel 导出到 Access - 错误:参数不是可选的【英文标题】:Export data from Excel to Access - Error: Argument not Optional 【发布时间】:2012-07-04 18:20:13 【问题描述】:

当我按下按钮时,我正在尝试使用我的 Excel 文件中的 VBA 代码将数据从 Excel 2010 导出到 Access 2010。我只想将“水质”表中的数据导出到我数据库上的“水质”表中(在 excel 文件和访问文件中是其他表和表)。

我的实际代码是:

Sub Button14_Click()

' Exports data from the active worksheet to a table in an Access database

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim r As Long
Dim LastRow As Long

' Set cn = New ADODB.Connection

'cn.Open "Provider=Microsoft.ACE.OLEDB.12.0; " & _
    "Data Source=C:\Documents and Settings\Administrador\Mis documentos\MonEAU\modelEAU Database V.2.accdb; " & _
    "Persist Security Info=False;"

strCon = "Provider=Microsoft.ACE.OLEDB.12.0; " & _
    "Data Source=C:\Documents and Settings\Administrador\Mis documentos\MonEAU\modelEAU Database V.2.accdb"

' Late binding, so no reference is needed
Set cn = CreateObject("ADODB.Connection")

cn.Open strCon

' Find LastRow in Col A into the Sheet1
LastRow = Sheet1.Range("A" & Rows.Count).End(xlUp).Row

' Insert unto a table called Water_Quality
scn = "[Excel 8.0;HDR=YES;DATABASE=" & ActiveWorkbook.FullName & "]"
strSQL = "INSERT INTO Water_Quality " _
       & "SELECT * FROM " & scn & ".[Sheet1$A5:L" & LastRow & "]"

' Execute the statement
cn.Execute strSQL

rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing

End Sub

我可以毫无问题地调试代码,但是当我运行它时,会出现运行错误:“Microsoft Office Access 数据库引擎找不到对象 'Sheet1$A5:L10'。请确保该对象存在并且您正确拼写它的名称和路径名。” cn.Execute strSQL这行好像有问题。

我也检查了名称和路径名,但找不到问题所在。

任何解决它的帮助将不胜感激。

【问题讨论】:

您是否有任何理由希望逐行而不是一次执行此操作? 当你按下CTRL+BREAK时它没有显示它停在哪一行? 【参考方案1】:

以下是一些一次性插入所有数据的示例:

strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=z:\docs\test.accdb"

''Late binding, so no reference is needed
Set cn = CreateObject("ADODB.Connection")

cn.Open strCon

''Create a table called ATable
scn = "[Excel 8.0;HDR=YES;DATABASE=" & ActiveWorkbook.FullName & "]"
strSQL = "SELECT * INTO ATable " _
       & "FROM " & scn & ".[Sheet7$A1:C4]"

''Execute the statement
cn.Execute strSQL

''Insert into a table called ATable
scn = "[Excel 8.0;HDR=YES;DATABASE=" & ActiveWorkbook.FullName & "]"
strSQL = "INSERT INTO ATable " _
       & "SELECT * FROM " & scn & ".[Sheet7$A1:C4]"

''Execute the statement
cn.Execute strSQL

''Insert into a table with no column header in Excel, 
''the fields are [afield],[atext],[another]
scn = "[Excel 8.0;HDR=NO;DATABASE=" & ActiveWorkbook.FullName & "]"
strSQL = "INSERT INTO ATable ([afield],[atext],[another]) " _
       & "SELECT F1 As afield, F2 As AText, F3 As another FROM " _
       & scn & ".[Sheet7$A1:C4]"

''Execute the statement
cn.Execute strSQL

【讨论】:

以上是关于将数据从 Excel 导出到 Access - 错误:参数不是可选的的主要内容,如果未能解决你的问题,请参考以下文章

使用 VBA 将数据从 Excel 导出到 Access

打开多个 Excel 实例时如何通过 Excel 宏将数据从 Excel 导出到 Access

无需激活即可将数据从 Access 导出到 Excel2013

将查询从 Access 导出到 Excel 模板

如何将数据从 ms-access 或 excel 导出到 IBM DB2 I-Series 数据库?

怎样从数据库里把自己需要的数据导出到excel表格中?