将数据从 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 - 错误:参数不是可选的的主要内容,如果未能解决你的问题,请参考以下文章
打开多个 Excel 实例时如何通过 Excel 宏将数据从 Excel 导出到 Access
无需激活即可将数据从 Access 导出到 Excel2013