Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / проверка подключения к базе в VBA Excel / 4 сообщений из 4, страница 1 из 1
23.12.2009, 16:53
    #36382710
Datsun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка подключения к базе в 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
Заранее сбасибо.
...
Рейтинг: 0 / 0
23.12.2009, 18:27
    #36383016
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка подключения к базе в VBA Excel
Динамические подключения и QueryTables друг с другом не сочетаются.
Проще сделать примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
dim con as new ADODB.Connection
dim rs as ADODB.Recordset
set con = CreateObject("ADODB.Connection")
on error resume next
con.open "DSN=...1....."
on error goto  0 
if con.State <> adStateOpen then
   con.open "DSN=..2..."
end if

set rs = con.execute("select ....")
Worksheets("Часовые").Range("A1").CopyFromRecordset rs
...
Рейтинг: 0 / 0
24.12.2009, 17:42
    #36385163
Datsun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка подключения к базе в VBA Excel
Большое спасибо за ответ. Почти близок к разгадке подскажите как мне написать в то что в скобках [есть подключение к базе], не нашел в инете HELPa


Sub SQLOtchet(str1 As Variant, tip As Variant)
Dim str As Variant
Dim DSN_str As String

If [есть подключение к базе]
Then DSN_str = "ODBC;DSN=INSQLSERVER;UID=***;PWD=***;APP=Microsoft Office 2003;DATABASE=Runtime"
Else DSN_str = "ODBC;DSN=INSQLSERVER2;UID=***;PWD=***;APP=Microsoft Office 2003;DATABASE=Runtime"

With Worksheets("Часовые").QueryTables.Add(Connection:= DSN_str _
, 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
...
Рейтинг: 0 / 0
26.12.2009, 01:40
    #36387668
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка подключения к базе в VBA Excel
DatsunБольшое спасибо за ответ.Пожалуйста, пожалуйста.
Теперь бы ты этот ответ еще прочитал бы... цены бы тебе не было.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / проверка подключения к базе в VBA Excel / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]