VBA SQL соединение и запрос - PullRequest
0 голосов
/ 06 марта 2019

Я пытаюсь установить соединение с моей базой данных через VBA, потому что подключение к сводной таблице занимает около 2 минут (подключение и импорт данных). В другой работе у меня был код VBA для подключения к базе данных и выполнения MDX-запросов, и это было намного быстрее, чем с помощью сводной таблицы Excel. В этом случае у меня не может быть mdx-запроса, потому что он недоступен (другая база данных?).

Я нашел код для подключения и выполнения запроса. Проблема в том, что я не получаю никакой информации, если я подключен или нет, и часть запроса выдает мне ошибку: (ошибка времени выполнения '-2147217865 (80040e37) Ошибка автоматизации).

Вот код:

Sub SQL_Connection()

Dim con As ADODB.Connection
Dim rs As ADODB.Recordset
Dim query As String
Set con = New ADODB.Connection
Set rs = New ADODB.Recordset
Dim strCon As String

'http://learnexcelmacro.com/wp/2011/11/sql-connection-string/

strCon = "Provider=SQLOLEDB.1;Data Source=sql2\bbqsrv;Initial Catalog=Reports;Integrated Security=SSPI"

'---  Open   the above connection string.

con.Open (strCon)
con.CommandTimeout = 120 'sec

'---  Now connection is open and you can use queries to execute them.
'---  It will be open till you close the connection

'slq query
query = "SELECT TOP 10 * FROM [Reports]"

'Performs the actual query
rs.Open query, con

'Dumps all the results from the query into cell A2 of the first sheet in the active workbook
Sheets(1).Range("A2").CopyFromRecordset rs

End Sub

Во-первых, вы, ребята, можете мне помочь, как проверить, правильно ли я подключен и работает ли эта часть кода? В Excel, если я проверяю в DATA> Соединения нет ничего. Во-вторых, как написать простой запрос, если у меня есть только доступ к сводной таблице, а не базы данных / SQL? На этой оси я не могу проверить MDX-запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...