Я пытаюсь установить соединение с моей базой данных через 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-запрос.