Проверка подключения к базе в VBA Excel
Формулировка задачи:
Sub SQLOtchet(str1 As Variant, tip As Variant)
Dim str As Variant
'Dim DSN_str As String
'если есть подключение к базе
'тогда DSN_str = INSQLSERVER
'иначе DSN_str = INSQLSERVER2
If tip = 1 Then
Worksheets("Часовые").Visible = True
Worksheets("Часовые").Range("A1:IV500").ClearContents
str = "exec Get_Otchet_1hourAVG_OF " + str1
With Worksheets("Часовые").QueryTables.Add(Connection:= _
"ODBC;DSN=+DSN_str+;UID=***;PWD=***;APP=Microsoft Office 2003;DATABASE=Runtime" _
, Destination:=Worksheets("Часовые").Range("A1"))
.CommandText = Array(str)
.Name = "Запрос из INSQLSERVER_1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertEntireRows
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
End If
Есть подключение к базе в Excel. Хотим подключаться к второму серверу если первй выключен.
В ' коментариях условие для проверки выбора DSN драйвера (серевера). Подскажите как это написать на VBA Excel
Заранее сбасибо.
Dim str As Variant
'Dim DSN_str As String
'если есть подключение к базе
'тогда DSN_str = INSQLSERVER
'иначе DSN_str = INSQLSERVER2
If tip = 1 Then
Worksheets("Часовые").Visible = True
Worksheets("Часовые").Range("A1:IV500").ClearContents
str = "exec Get_Otchet_1hourAVG_OF " + str1
With Worksheets("Часовые").QueryTables.Add(Connection:= _
"ODBC;DSN=+DSN_str+;UID=***;PWD=***;APP=Microsoft Office 2003;DATABASE=Runtime" _
, Destination:=Worksheets("Часовые").Range("A1"))
.CommandText = Array(str)
.Name = "Запрос из INSQLSERVER_1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertEntireRows
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
End If
Есть подключение к базе в Excel. Хотим подключаться к второму серверу если первй выключен.
В ' коментариях условие для проверки выбора DSN драйвера (серевера). Подскажите как это написать на VBA Excel
Заранее сбасибо.
Решение задачи: «Проверка подключения к базе в VBA Excel»
textual
Листинг программы
<font color="blue">dim</font> con <font color="blue">as</font> <font color="blue">new</font> ADODB.Connection <font color="blue">dim</font> rs <font color="blue">as</font> ADODB.Recordset <font color="blue">set</font> con = CreateObject(<font color="teal">"ADODB.Connection"</font>) <font color="blue">on</font> <font color="blue">error</font> <font color="blue">resume</font> <font color="blue">next</font> con.<font color="blue">open</font> <font color="teal">"DSN=...1....."</font> <font color="blue">on</font> <font color="blue">error</font> <font color="blue">goto</font> <font color="darkblue"><b>0</b></font> <font color="blue">if</font> con.State <> adStateOpen <font color="blue">then</font> con.<font color="blue">open</font> <font color="teal">"DSN=..2..."</font> <font color="blue">end</font> <font color="blue">if</font> <font color="blue">set</font> rs = con.execute(<font color="teal">"select ...."</font>) Worksheets(<font color="teal">"Часовые"</font>).Range(<font color="teal">"A1"</font>).CopyFromRecordset rs
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д