Access Database Engine找不到对象 - 对象是Excel命名范围

时间:2016-03-23 15:30:15

标签: excel vba object ms-access oledb

这是让我在圆圈中转了一段时间的事情,基本上我想做的就是将Excel动态范围的值插入到Access表中。

通过参考范围我已经成功地做到了这一点,但是为了让事情更加自给自足,我宁愿使用动态范围。

我的代码如下:

Sub ExportDistDatatoSql()

Dim cn As ADODB.Connection
Dim STRQUERY As String

Set cn = New ADODB.Connection

With cn
.Provider = "Microsoft.ACE.OLEDB.12.0"
.ConnectionString = "Data Source=" & ThisWorkbook.Path & "\uMyDB.accdb;"
.Open
End With

ssql = "INSERT INTO Crude_Prods_DB Select * from [Excel 12.0;HDR=YES;DATABASE=C:\TEST\mysheet.xlsm].[n_range]"

cn.Execute ssql

End Sub

我看到的错误已附加,我已检查工作簿中是否存在[n_range]。

[尝试将数据从excel命名范围插入访问表时出现错误]

我们非常感谢任何建议。

1 个答案:

答案 0 :(得分:1)

我很难学到这一点。只有在Excel运行时才会解析动态范围,因此当您只读取文件时它不存在。

Access只能读取已保存和固定的命名范围。