Страница 1 из 1

Установить Connect Excel c InSQL динамически

СообщениеДобавлено: Пн мар 26, 2012 2:00 pm
Art
Добрый день, такой вопрос возник при разработки отчета в Excel, который цепляет данные с Historian, после перезагрузки машины с Historian падает connect и в листе Excel no connection. Вот не могу найти как установить эту связь через скрипт VBA. Заранее благодарен.
P.S.И еще один вопросик есть ли у кого суппорт InSQLConceptsRus.

Re: Установить Connect Excel c InSQL динамически

СообщениеДобавлено: Пн мар 26, 2012 7:06 pm
skom
Через ADO, вся документация есть в MSDN.

Re: Установить Connect Excel c InSQL динамически

СообщениеДобавлено: Пн мар 26, 2012 11:33 pm
Генератор зла
HistClient.pdf
Wonderware Historian Client Workbook Object - Wonderware Historian Client Workbook Object Methods - AddServer

ActiveFactoryWorkbook.AddServer(message serverName, message loginName, message password)

Re: Установить Connect Excel c InSQL динамически

СообщениеДобавлено: Вт мар 27, 2012 12:38 pm
Генератор зла
Art писал(а):есть ли у кого суппорт InSQLConceptsRus

http://files.mail.ru/NUB9EE

Re: Установить Connect Excel c InSQL динамически

СообщениеДобавлено: Ср мар 28, 2012 1:24 pm
Art
Спасибо, Генератор Зла! За то, что правильно понял вопрос! От себя добавлю, для WorkBook нужно добавить Refernce на ActiveFactoryWorkBook, чтобы компилятор смог понять на что мы ссылаемся. И в Excel 2003 вызов функции делается без скобок:
ActiveFactoryWorkbook.AddServer message serverName, message loginName, message password

Re: Установить Connect Excel c InSQL динамически

СообщениеДобавлено: Чт май 31, 2012 9:06 am
yurec
Dim cnnConnect As ADODB.Connection
Dim rstRecordset As ADODB.Recordset
Dim sqlSource As String 'источник запроса
Set cnnConnect = New ADODB.Connection
sqlSource = "Provider=SQLOLEDB;" & _
"Data Source=ip address сервака ;Initial Catalog=Runtime;" & _
"User ID=Имя пользователя;Password=Пароль;"

cnnConnect.Open sqlSource

Set rstRecordset = New ADODB.Recordset

Dim s As String 'строка запроса
s = "Set DateFormat dmy " + _
"SELECT * FROM ................ Запрос на выборку

rstRecordset.Open _
Source:=s, _
ActiveConnection:=cnnConnect

With Worksheets("Имя Листа").QueryTables.Add(rstRecordset, Worksheets("Имя Листа").Range("A5"))
.Name = "Contact List"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells 'xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
rstRecordset.Close
cnnConnect.Close
*********************************************************************************************************************************************88
как-то так