Я пытаюсь использовать SQL для запроса таблицы (покупок) в Excel. Тем не менее, я получаю сообщение об ошибке при запуске сценария ниже.Ошибка Запрос таблицы с использованием ADODB с VBA в Excel
Переменная tableaddress производит Покупки! $ A $ 2: $ F $ 1200, который является диапазоном таблицы «Покупки».
SQL-запрос, который производится:
Select * From [Purchases!$A$2:$F$1200]
Сам ток УВА, как показано ниже:
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strSQL As String
Dim tableAddress As String
Set cn = New ADODB.Connection
cn.ConnectionString = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" & ActiveWorkbook.Path & Application.PathSeparator & ActiveWorkbook.Name
cn.Open
tableAddress = "Purchases!" & Range("Purchases").Address
strSQL = "Select * From [" & tableAddress & "]"
rs.Open strSQL, cn
cn.Close
Однако при выполнении я получаю ошибку ниже ...
[Microsoft][ODBC Excel Driver] 'Purchases!$A$2:$F$1200' is not a valid name.
Make sure that it does not include invalid characters or punctuation and that it is no too long.
Я вижу апострофы в ошибке, но не уверен, относится ли это к пунктуации или как избавиться если так.
Спасибо!
Пробовали ли вы без '[]'? –
У меня есть, что вызывает проблему «Синтаксическая ошибка в FROM». Я изначально имел это таким образом, но добавил скобки после того, как увидел эти ссылки в других инструкциях ADODB. –
Что такое 'ActiveWorkbook.Path & Application.PathSeparator & ActiveWorkbook.Name'. Вы уверены, что 'ActiveWorkbook' - это тот, который, по вашему мнению, есть, и на нем есть вкладка« Покупки »? Также попробуйте квалифицировать полный путь к файлу в инструкции SQL. ' –