Страницы: 1
RSS
EXCEL 2013, создание "Подключения" с помощью VBA.
 
Есть Excel файл.
Я создал данные из других источников (С сервера SQL Server). Создалась таблица с привязкой этого подключения.
Далее я удаляю это подключение "Данные" - "Подключения" - "Удалить".
Затем я хочу создать удаленное подключение снова и обновить таблицу.
Создание подключения вроде должно создаваться через (...Connections.Add2)
Не получается, выдает 91 ошибку.
Цитата
Run-time error '91': Object variable or With block variable not set.
сам код:
Код
Sub test()
Dim wbcon As WorkbookConnection
Dim wbcons As Connections
Set wbcon = wbcons.Connections.Add2(Name:="Connection Name", Description:="", ConnectionString:=Array("OLEDB;Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=LB;Data Source=SERVER;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;Tag with columncollation when possible=False", CommandText:=Array("""LB"".""dbo"".""Quality""", lCmdType:=6, CreateModelConnection:=False, ImportRelationships:=False)
End Sub
Сейчас у меня подключения не разрываются, а в текущих подключениях книги я меняю строки подключения, все обновляю, потом удаляю или разрываю подключения.
Но хочется чтобы файл изначально был без подключений, после запуска макроса он создает подключения, обновляет таблицы, удаляет подключения.

Вот как сделать новое подключение с 0, не могу разобраться. Прошу вашей помощи.
Вот  некоторые ссылки которые я находил с материалом, не помогло.
1 , 2 , 3
Изменено: Marchuk - 16.02.2015 11:42:24
 
Цитата
Marchuk пишет: Затем я хочу создать удаленное подключение снова и обновить таблицу.
я бы, наверно, на вашем месте посмотрела как это делает макрорекодер и подправила как надо... но у меня не 2013...
лишь гипотеза
Изменено: JeyCi - 16.02.2015 11:49:45
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
JeyCi,
Записанное макрорекордером не работает. Выдает ошибку.  :)
 
кому интересно, то проблема в параметре CreateModelConnection:=False, он должен быть TRUE, иначе не работает.
Код
Set wbcon = ActiveWorkbook.Connections.Add2(Name:="Connection Name", Description:="", ConnectionString:=Array("OLEDB;Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=LB;Data Source=SERVER;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;Tag with columncollation when possible=False", CommandText:=Array("""LB"".""dbo"".""Quality""", lCmdType:=6, CreateModelConnection:=True, ImportRelationships:=False)
 
Вновь решил сделать подключение, и не пошло. Искал решение, наткнулся на свой пост )))
Есть новая фишка, если написать lCmdType:=2, то параметр может быть CreateModelConnection:=False (модель создавать не обязательно).
Искал описание параметра lCmdType, не нашел. Поэтому не знаю что означает 6 , а что 2 )))
Главное работает.
Страницы: 1
Читают тему
Наверх