Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.08.2009, 12:48   #1
kuzminki
Новичок
Джуниор
 
Регистрация: 26.08.2009
Сообщений: 1
По умолчанию excel-odbc

Всем привет!!!

Люди, у меня возникла маленькая проблемка, с корой я столкнулся, и не знаю, как бороться, как ее решить. Как я понял, данная проблема не имеет отношения к объекту QueryTables и имеет какое-то отношение к системе безопасности Excel, но, при этом, камнем преткновения становится именно объект QueryTables. Система: ХР, Excel 2003. Следите за моей мыслью:
Условимся, что в некоторой книге под названием WB_1.xls есть макрос SUB_1(), который использует для своей работы объект QueryTables. Вот его примерный код:

Sub SUB_1()

Dim Select_exp As String

Connection_BD = "ODBC;DSN=...;UID=...;PWD=..."

' ... - информация конфиденциальна


Select_exp = "select ... from ... where ... order ..."


With ActiveSheet.QueryTables.Add(Connect ion:=Connection_BD, Destination:=Range(Cells(col, 1), Cells(col, 1)))

.CommandText = Select_exp

.Name = "TR_range"

.FieldNames = True

.RowNumbers = False

.FillAdjacentFormulas = False

.PreserveFormatting = True

.RefreshOnFileOpen = False

.BackgroundQuery = True

.RefreshStyle = xlOverwriteCells

.SavePassword = False

.SaveData = True

.AdjustColumnWidth = False

.RefreshPeriod = 0

.PreserveColumnInfo = True

.Refresh BackgroundQuery:=False

End With

End Sub


Теперь рассмотрим ситуацию:
Мы открываем книгу WB_1.xls и нажимаем Alt+F8. В появившемся окне мы выбираем наш макрос и нажимаем кнопку Run. При сценарии таких действий со стороны пользователя (т.е. меня), макрос успешно (молча) выполняется и извлекает данные из БД.
Но как только мы попытаемся повторить выполнение макроса SUB_1()(выполнение изъятия данных из БД), так сразу же Excel выводит окно списка ODBC соединений с просьбой выбрать необходимое ODBC-соединение.

Вопрос : Как сделать так, чтобы во второй ситуации Excel молча выполнял макрос SUB_1() также, как это происходит в первой ситуации??
Почему в первой ситуации Excel замечательно, прямо-таки, работает, а во второй и в следующих ситуациях просит вмешаться пользователя??

Если можно, выскажите хотя бы свое мнение по этому поводу... Заранее благодарен всем, кто отзовется.
kuzminki вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ODBC в Linux knight Lazarus, Free Pascal, CodeTyphon 7 29.10.2010 16:47
Outpost и дравера ODBC KipZ Софт 6 23.08.2009 08:47
ODBC и MFC MadDog__ Win Api 0 06.02.2009 01:18
Odbc Apo Компоненты Delphi 7 11.03.2008 11:54
проблема с ODBC ГОСЕАН БД в Delphi 8 23.09.2007 10:53