Vba &引用;开放式;Excel/Access中ADO连接的方法错误
在VBA中尝试使用ADO连接打开数据库时,我不断收到一个错误-我收到以下错误: 运行时错误“-2147467259(80004005)”: 对象“\u记录集”的方法“打开”失败 我已经检查并重新检查了我的所有文件路径和语法,但找不到下面的代码有什么问题-有人能帮忙吗Vba &引用;开放式;Excel/Access中ADO连接的方法错误,vba,ado,Vba,Ado,在VBA中尝试使用ADO连接打开数据库时,我不断收到一个错误-我收到以下错误: 运行时错误“-2147467259(80004005)”: 对象“\u记录集”的方法“打开”失败 我已经检查并重新检查了我的所有文件路径和语法,但找不到下面的代码有什么问题-有人能帮忙吗 Public Sub PlainTextQuery() Dim rsData As ADODB.Recordset Dim sConnect As String Dim sSQL As String Dim sCusip As
Public Sub PlainTextQuery()
Dim rsData As ADODB.Recordset
Dim sConnect As String
Dim sSQL As String
Dim sCusip As String
sCusip = Trim(Range("cusip").Value)
' Create the connection string
sConnect = "Provider=Microsoft.ACE.OLEDB.12.0; " & _
"Data Source=C:\Users\intern\Documents\NewStuff\ResiOffers_v1.accdb;"
' Create the SQL statement
sSQL = "SELECT Date, Cusip, Bond, OF, CF, Dealer, Price, Matcher, DayCount, MktValue " & _
"FROM ResiOffersColor " & _
"WHERE Cusip = 16163HAE1 " & _
"ORDER BY Date;"
' Create the recordset object and run the query
Set rsData = New ADODB.Recordset
rsData.Open sSQL, sConnect, adOpenForwardOnly, _
adLockReadOnly, adCmdText
' Make sure we get records back
If Not rsData.EOF Then
' Dump the contents onto the worksheet
Sheet2.Range("A2").CopyFromRecordset rsData
' Close the recordset object
rsData.Close
Else
' Close the recordset object
rsData.Close
MsgBox "Error: No records returned.", vbCritical
End If
' Destroy the recordset object
Set rsData = Nothing
End Sub
执行该函数的人必须具有对目录的写访问权限,因为ms access将尝试创建锁(ldb)文件。这里的问题是
sSQL
语句。这一行:
"WHERE Cusip = 16163HAE1 " & _
应替换为:
"WHERE Cusip = '16163HAE1' " & _
在SQL中,您用
”
(撇号)括起了字符串或文本。感谢您的回复-我刚刚通过在SQL查询字符串中的每个字段名周围放上括号[]使代码正常工作…但现在有一个新问题-我的excel工作簿中没有打印任何记录。我没有收到“no records returned error(无记录返回错误)”,因此我打印记录的尝试似乎有问题,而不是检索记录的尝试。。。