Проверка подключения к базе в 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
Заранее сбасибо.

Решение задачи: «Проверка подключения к базе в 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5