我尝试使用带有SQL查询的ADO从Excel文件(.xls)中获取一些值。但是,我在尝试打开连接时遇到错误。这就是我目前所拥有的:
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
strFile = IIf(strPath <> "", strPath, Range("G13").Value)
If strFile = "" Then Exit Sub
strCon = "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile & ";'Extended Properties='Excel 8.0;HDR=No;IMEX=1';"
strCon2 = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFile & ";'Extended Properties='Excel 12.0 Xml;HDR=YES';"
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
cn.Open strCon2
我已经使用我的连接字符串(strCon,strCon2)测试但没有成功。我得到一个错误,没有文字只有&#34; x&#34;符号。或"System Error &H80004005 (-2147467259)"
更改了它,所以我打开记录集,但它仍然给我同样的错误。
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
strFile = IIf(strPath <> "", strPath, Range("G13").Value)
If strFile = "" Then Exit Sub
strCon = "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & _
strFile & "';'Extended Properties='Excel 8.0;HDR=No;IMEX=1';"
strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & strFile & ";" & _
"Extended Properties=Excel 12.0;"
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
'cn.Open strCon
strSQL = "SELECT * FROM [Sheet11$C5]"
rs.Open strSQL, strConn
Debug.Print rs.GetString
答案 0 :(得分:1)
回答这个问题为时已晚,但对于将来的读者来说。
我有类似的问题。 我试图将Excel与MySQL数据库连接,但是当记录集打开时,它会破裂并向我显示&H80004005错误。
最后,问题是我的办公室是32位,但是我的ODBC是64位,这不喜欢它。
我将ODBC连接更改为32位,并且VBA功能正常工作。