Ошибка автоматизации при попытке запроса базы данных с использованием VBA - PullRequest
0 голосов
/ 21 марта 2019

Я сделал следующие объявления объекта ADODB в коде.

Dim OConn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim fld As ADODB.Field
Set OConn = New ADODB.Connection
Set rs = New ADODB.Recordset

Я хотел бы использовать следующий код для чтения из таблицы в файле базы данных MS Access и генерации набора записей, rs.

'Get the table name from the search results.
tableName = ThisWorkbook.Sheets("PLC Module Data").Cells(2, 9).Value

'Set the SQL string.
strSql = "SELECT Code, Points, Type, Description, Rating " & _
"FROM " & tableName

'Set the connection string and open the connection to the Access DB.
OConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=Q:\AutoCAD Improvements\PLC IO Utility Docs\PLC IO Spreadsheet     
App\PLC IO App\ace_plc.mdb"

OConn.Open

'Open the recordset and error out if nothing is returned
Set rs = OConn.Execute(strSql)
If rs.EOF Then
    MsgBox "No matching records found."
    rs.Close
    OConn.Close
    Exit Sub
End If

Я проверил оператор запроса в самом файле Access, и он работает нормально.Я всегда получаю сообщение об ошибке

Ошибка времени выполнения-2147217900 (80040e14) ': ошибка автоматизации

в строке,

Set rs = OConn.Execute(strSql)

Если бы кто-нибудь мог взглянуть на мой код и определить, почему это происходит, это было бы очень полезно.Я посмотрел похожие примеры в Интернете, и похоже, что это должно быть правильно.

1 Ответ

3 голосов
/ 26 марта 2019

Я добавил скобки вокруг строки tableName, и теперь она работает. Спасибо за все отзывы.

'Set the SQL string.
strSql = "SELECT Code, Points, Type, Description, Rating " & _
"FROM [" & tableName & "]"
...