Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba &引用;开放式;Excel/Access中ADO连接的方法错误_Vba_Ado - Fatal编程技术网

Vba &引用;开放式;Excel/Access中ADO连接的方法错误

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

在VBA中尝试使用ADO连接打开数据库时,我不断收到一个错误-我收到以下错误:

运行时错误“-2147467259(80004005)”: 对象“\u记录集”的方法“打开”失败

我已经检查并重新检查了我的所有文件路径和语法,但找不到下面的代码有什么问题-有人能帮忙吗

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(无记录返回错误)”,因此我打印记录的尝试似乎有问题,而不是检索记录的尝试。。。