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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2012, 15:52   #1
Kycaka
Пользователь
 
Регистрация: 13.05.2009
Сообщений: 63
По умолчанию Ошибка 1004 при обновлении данных из Access (VBA EXCEL)

Всем добрый день.

В Excel создано подключение к таблице в БД Access, автоматическое обновление подключения отключено.
Данные обновляются каждую минуту путем авто выполняемого макроса (ontime) через код ActiveWorkbook.RefreshAll. Дальше происходят разные расчеты и т.п.

Время от времени возникает следующая ошибка:
Код:
 
Номер ошибки: 1004 
Описание ошибки: Запрос не выполняется, или не удается открыть таблицу базы данных. Проверьте сервер или обратитесь к администратору базы данных. 
Убедитесь, что внешняя база данных доступна и не была перемещена или реорганизована, а затем вновь повторите операцию. 
Приложение: Microsoft Office Excel
Лечится легко - полный перезапуск excel (сделано через on error go to и батник, который убивает excel и через 10 секунд запускает заново, при запуске Excel запускается "автомакрос ontime").

Крутится это круглосуточно (своего рода система мониторинга). В принципе работает, но хотелось бы искоренить эту проблему.

Может кто знает в чем может быть проблема?

Последний раз редактировалось Kycaka; 04.12.2012 в 15:55.
Kycaka вне форума Ответить с цитированием
Старый 04.12.2012, 16:44   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

полагаю, если выполнить обновление конкретного соединения, то можно еще получить код результата, ну а дальше... решить что с этим делать
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 04.12.2012, 17:44   #3
Kycaka
Пользователь
 
Регистрация: 13.05.2009
Сообщений: 63
По умолчанию

Заменил ActiveWorkbook.RefreshAll на ActiveWorkbook.Connections("update" ).Refresh. Отчет крутится, пока ошибок не возникало.


Цитата:
Сообщение от IgorGO Посмотреть сообщение
полагаю, если выполнить обновление конкретного соединения, то можно еще получить код результата, ну а дальше... решить что с этим делать
Можете подсказать поподробнее что вы имели ввиду?
Погуглил синтаксис Connections, пока ничего путного не нашел.

Последний раз редактировалось Kycaka; 04.12.2012 в 17:46.
Kycaka вне форума Ответить с цитированием
Старый 04.12.2012, 17:56   #4
Kycaka
Пользователь
 
Регистрация: 13.05.2009
Сообщений: 63
По умолчанию

Ошибка всё равно возникает.
Это может быть связано с тем, что VBA дергает каждую минуту обновление из Access?
Ошибка возникает рандомно по времени, может в течение нескольких минут после запуска, может часов 8 нормально работать.
Всё это крутится на виртуальном ПК, где больше ничего не делается.
Kycaka вне форума Ответить с цитированием
Старый 04.12.2012, 18:25   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

где-то в начале процедуры:
Код:
on error resume next
после обновления:
Код:
if not err then
... то, что крутилось ранее
else
  err.clear
end if
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 04.12.2012, 18:49   #6
Kycaka
Пользователь
 
Регистрация: 13.05.2009
Сообщений: 63
По умолчанию

Игорь, почти так у меня сейчас и есть.

Код:
On Error GoTo Errors1
    ... код макроса ...
    ActiveWorkbook.Connections("update" ).Refresh
    ... код макроса ...
GoTo Ends:

Errors1:
    Application.Run "reboot"
Ends:
если ошибки нет - то выполняется код
если ошибка есть - то запускается макрос, который отправляет письмо об ошибке + запускает reboot.bat

С обработкой ошибки всё норм, тут вопрос в том, из-за чего возникает эта ошибка, и как её в корне исправить.
В любом случае спасибо за то, что пытаетесь помочь
Kycaka вне форума Ответить с цитированием
Старый 05.12.2012, 14:11   #7
Kycaka
Пользователь
 
Регистрация: 13.05.2009
Сообщений: 63
По умолчанию

Прошу помочь с данной проблемой, ошибка возникает и возникает. Вот лог:

Дата / Код ошибки / Макрос / Приложение / Описание
Цитата:
04.12.2012 17:54:24 1004 Alerts() Microsoft Office Excel Запрос не выполняется, или не удается открыть таблицу базы данных...
04.12.2012 18:06:28 1004 Alerts() Microsoft Office Excel Запрос не выполняется, или не удается открыть таблицу базы данных...
04.12.2012 18:12:41 1004 Alerts() Microsoft Office Excel Запрос не выполняется, или не удается открыть таблицу базы данных...
04.12.2012 18:58:31 1004 Alerts() Microsoft Office Excel Запрос не выполняется, или не удается открыть таблицу базы данных...
04.12.2012 20:07:17 1004 Alerts() Microsoft Office Excel Запрос не выполняется, или не удается открыть таблицу базы данных...
04.12.2012 20:39:57 1004 Alerts() Microsoft Office Excel Запрос не выполняется, или не удается открыть таблицу базы данных...
04.12.2012 23:59:36 1004 Alerts() Microsoft Office Excel Данная операция не допускается во время фонового обновления данных.
04.12.2012 23:59:36 1004 Alerts() Microsoft Office Excel Данная операция не допускается во время фонового обновления данных.
04.12.2012 23:59:37 1004 Alerts() Microsoft Office Excel Данная операция не допускается во время фонового обновления данных.
04.12.2012 23:59:37 1004 Alerts() Microsoft Office Excel Данная операция не допускается во время фонового обновления данных.
05.12.2012 10:13:08 1004 Alerts() Microsoft Office Excel Данная операция не допускается во время фонового обновления данных.
05.12.2012 10:14:45 1004 Alerts() Microsoft Office Excel Запрос не выполняется, или не удается открыть таблицу базы данных...
05.12.2012 10:15:31 1004 Alerts() Microsoft Office Excel Запрос не выполняется, или не удается открыть таблицу базы данных...
05.12.2012 10:30:18 1004 Alerts() Microsoft Office Excel Запрос не выполняется, или не удается открыть таблицу базы данных...
05.12.2012 10:59:58 1004 Alerts() Microsoft Office Excel Запрос не выполняется, или не удается открыть таблицу базы данных...
05.12.2012 11:00:23 1004 Alerts() Microsoft Office Excel Запрос не выполняется, или не удается открыть таблицу базы данных...
05.12.2012 11:04:53 1004 Alerts() Microsoft Office Excel Запрос не выполняется, или не удается открыть таблицу базы данных...
05.12.2012 11:05:27 1004 Alerts() Microsoft Office Excel Запрос не выполняется, или не удается открыть таблицу базы данных...
05.12.2012 11:06:57 1004 Alerts() Microsoft Office Excel Запрос не выполняется, или не удается открыть таблицу базы данных...
05.12.2012 11:10:37 1004 Alerts() Microsoft Office Excel Запрос не выполняется, или не удается открыть таблицу базы данных...
05.12.2012 11:11:02 1004 Alerts() Microsoft Office Excel Запрос не выполняется, или не удается открыть таблицу базы данных...
05.12.2012 11:23:42 1004 Alerts() Microsoft Office Excel Запрос не выполняется, или не удается открыть таблицу базы данных...
05.12.2012 11:30:24 1004 Alerts() Microsoft Office Excel Запрос не выполняется, или не удается открыть таблицу базы данных...
05.12.2012 11:31:57 1004 Alerts() Microsoft Office Excel Запрос не выполняется, или не удается открыть таблицу базы данных...
05.12.2012 11:42:36 1004 Alerts() Microsoft Office Excel Запрос не выполняется, или не удается открыть таблицу базы данных...
05.12.2012 11:44:07 1004 Alerts() Microsoft Office Excel Запрос не выполняется, или не удается открыть таблицу базы данных...
05.12.2012 12:42:20 1004 Alerts() Microsoft Office Excel Запрос не выполняется, или не удается открыть таблицу базы данных...
05.12.2012 13:17:00 1004 Alerts() Microsoft Office Excel Запрос не выполняется, или не удается открыть таблицу базы данных...
05.12.2012 13:28:39 1004 Alerts() Microsoft Office Excel Запрос не выполняется, или не удается открыть таблицу базы данных...
05.12.2012 13:39:19 1004 Alerts() Microsoft Office Excel Запрос не выполняется, или не удается открыть таблицу базы данных...
05.12.2012 13:49:58 1004 Alerts() Microsoft Office Excel Запрос не выполняется, или не удается открыть таблицу базы данных...
Kycaka вне форума Ответить с цитированием
Старый 07.12.2012, 10:30   #8
Kycaka
Пользователь
 
Регистрация: 13.05.2009
Сообщений: 63
По умолчанию

есть у кого-нибудь хоть какие соображения, почему так происходит?
Kycaka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка 1004 при создании PivotCache.Recordset Cave_IAR Microsoft Office Excel 5 26.01.2012 00:53
Ошибка пр передаче данных из Access в Excel pla Microsoft Office Access 4 17.11.2010 10:31
Ошибка при обновлении связей с другой книгой Quatro_Drive Microsoft Office Excel 3 12.08.2009 16:36
Ошибка и падение (выход) Excel при выполнении сложной программы на VBA Serge_Bliznykov Microsoft Office Excel 6 13.08.2008 16:50