Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Excel виснет из-за переменных ADODB / 14 сообщений из 14, страница 1 из 1
07.11.2014, 12:38
    #38798383
Excel виснет из-за переменных ADODB
Доброго времени суток!
Столкнулся с проблемой, решение которой пока не могу найти ни в подкорке своего мозга, ни в интернете.

Мой xlsx-файл при помощи VBA обращается к базе данных MS Access 2010.
Для "конструктивного диалога" с СУБД я использую переменные библиотеки ADODB.
Обращения происходят неоднократно и из разных частей программы, поэтому в одном из модулей я объявил глобальную переменную.

И здесь как раз начинаются проблемы.
Дело в том, что прогоняю программу на двух компьютерах (оба на 32-разрядной Windows 7 с подключенной в Tools->References ADO-библиотекой).
----------------
Так вот, на компьютере А для объявления переменной и (в дальнейшем) создания соответствующего объекта я использую следующие строки кода:
Код: vbnet
1.
2.
3.
Public con as ADODB.Connection
...
Set con = new ADODB.Connection


или сразу
Код: vbnet
1.
Public con as new ADODB.Connection


Однако, не доходя до выполнения первой строки кода (видимо, доходя до объявления переменной con ), компилятор, а с ним и весь Excel, безнадежно зависают.
---------------
Тогда приходится открывать файл на компьютере Б и править код на:
Код: vbnet
1.
2.
3.
Public con as Variant
...
Set con = new ADODB.Connection


И все вроде бы хорошо начинает работать на компе А , НО теперь на самом Б создается объект ConnectionObject отличный от нужного ADODB.Connection .
---------------
ВНИМАНИЕ, ВОПРОС:
В чем может быть проблема?
И как можно ее исправить и гарантированно обойти подобные инциденты в будущем? Быть может я старомоден, и стоит использовать иные библиотеки?
(другой язык прошу не предлагать)

Большое спасибо!

P.S. Не стал приводить полного текста, надеясь, что такого уровня абстракции будет достаточно
...
Рейтинг: 0 / 0
07.11.2014, 13:01
    #38798416
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel виснет из-за переменных ADODB
Дмитрий Чуманов видимо , доходя до объявления переменной con Давайте без "видимо", найдите точную строку, на которой происходит зависание (пошаговым выполнением).

Дело в том, что команда объявления переменной не является исполняемой (даже в случае с new), поэтому она зависать не может.
...
Рейтинг: 0 / 0
07.11.2014, 13:04
    #38798423
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel виснет из-за переменных ADODB
разные версии ADODB или их отстутствие
http://support.microsoft.com/kb/301202
...
Рейтинг: 0 / 0
07.11.2014, 13:07
    #38798428
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel виснет из-за переменных ADODB
Konst_Oneразные версии ADODB или их отстутствие
http://support.microsoft.com/kb/301202 можно просто
Код: vbnet
1.
2.
Dim a As New ADODB.Connection
Debug.Print a.Version

заодно убедиться, что это хотя бы не зависает
...
Рейтинг: 0 / 0
07.11.2014, 13:20
    #38798452
Excel виснет из-за переменных ADODB
Shocker.ProДмитрий Чуманов видимо , доходя до объявления переменной con Давайте без "видимо", найдите точную строку, на которой происходит зависание (пошаговым выполнением).

Дело в том, что команда объявления переменной не является исполняемой (даже в случае с new), поэтому она зависать не может.

Моё "видимо" основано на том, что точку останова я установил на самой первой строке выполняемой процедуры, но и до ее выполнения дела не дошло
...
Рейтинг: 0 / 0
07.11.2014, 13:23
    #38798462
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel виснет из-за переменных ADODB
предложенный мной код работает? (в чистом файле, например)
...
Рейтинг: 0 / 0
07.11.2014, 13:25
    #38798468
Excel виснет из-за переменных ADODB
Shocker.Proпредложенный мной код работает? (в чистом файле, например)

Да. Версия: 6.1
...
Рейтинг: 0 / 0
07.11.2014, 13:27
    #38798473
Excel виснет из-за переменных ADODB
Shocker.Pro, только я немного не понял.
В Reference'ах версия ADO 6.0, а здесь - 6.1.
как так?)
...
Рейтинг: 0 / 0
07.11.2014, 13:29
    #38798479
Excel виснет из-за переменных ADODB
Konst_One, мне удалось обойти проблему банальным переподключением библиотеки в Tools-References.
Сейчас все заработало справно, но не дело это.. хочется добиться стабильной работы, а не ждать, когда система вновь так сбойнет
...
Рейтинг: 0 / 0
07.11.2014, 13:36
    #38798490
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel виснет из-за переменных ADODB
тогда используй позднее связывание
...
Рейтинг: 0 / 0
11.11.2014, 11:57
    #38801803
Excel виснет из-за переменных ADODB
Konst_One, подробно изучу, что оно из себя представляет. Спасибо

Но неужели нет универсального и простого решения данной проблемы?
Или так всегда будет с подключаемыми библиотеками?
...
Рейтинг: 0 / 0
11.11.2014, 12:29
    #38801857
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel виснет из-за переменных ADODB
что всегда?
это ваша программа, вы и должны обеспечить ей правильное окружение для работы. делайте сетапы или создавайте справки для пользователей как правильно настраивать, чтобы работало и тд и тп
...
Рейтинг: 0 / 0
12.11.2014, 01:13
    #38802895
alex77755
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel виснет из-за переменных ADODB
авторМой xlsx-файл при помощи VBA обращается
авторвы и должны обеспечить ей правильное окружение для работы. делайте сетапы
Вот о такой комбинации можно подробне?
Как делать сетап для ексел-файла
правильное направление подсказали
автортогда используй позднее связывание
Код: vbnet
1.
Set con = CreateObject("ADODB.Connection")


Тем более, что сам уже убедился
авторВ Reference'ах версия ADO 6.0, а здесь - 6.1.
как так?)
...
Рейтинг: 0 / 0
12.11.2014, 11:43
    #38803218
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel виснет из-за переменных ADODB
для офиса был вроде бы SDK и в нём был какой-то инструмент для создания сетапов. или ищите что-то бесплатное/условно бесплатное, например тот-же INNO setup
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Excel виснет из-за переменных ADODB / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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