powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Excel виснет из-за переменных ADODB
14 сообщений из 14, страница 1 из 1
Excel виснет из-за переменных ADODB
    #38798383
Доброго времени суток!
Столкнулся с проблемой, решение которой пока не могу найти ни в подкорке своего мозга, ни в интернете.

Мой 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
Excel виснет из-за переменных ADODB
    #38798416
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Чуманов видимо , доходя до объявления переменной con Давайте без "видимо", найдите точную строку, на которой происходит зависание (пошаговым выполнением).

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

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

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

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

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

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


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


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