1

VBA で ADO 接続を使用してデータベースを開こうとすると、エラーが発生し続けます - 次のエラーが発生します。

実行時エラー '-2147467259 (80004005)': オブジェクト '_Recordset' のメソッド 'Open' が失敗しました

すべてのファイル パスと構文を再確認しましたが、以下のコードの問題点を見つけることができません。誰か助けてもらえますか?

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
4

2 に答える 2

0

ここで問題になるのは、sSQLステートメントです。
この行:

"WHERE Cusip = 16163HAE1 " & _

次のものに置き換える必要があります。

"WHERE Cusip = '16163HAE1' " & _

SQL では、文字列またはテキストを'(アポストロフィ) で囲みました。

于 2014-08-20T09:17:15.450 に答える
0

ms-access はロック (ldb) ファイルを作成しようとするため、関数を実行するユーザーには、ディレクトリへの書き込みアクセス権が必要です。

于 2012-07-16T13:31:47.560 に答える