Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Проблема с открытием файла Excel Добавлено: 26.02.09 17:18  

Автор вопроса:  Jasmin
Здравствуйте !

Такая проблемка. Есть файл. Создан в Excel 2003 (циферки версии) SP2. В макросах используются компоненты DAO, Access, Form, Calendar, Office Web Components Wizard и RefEdit Control (все с 11.0).
На той машине, где создавался, и на всех куда ставился в дальнейшем работает нормально. А на одной машине при попытке открытия самого файла виснет на некоторое время, затем пишет, что произошла ошибка и запускает восстановление. Восстанавливает без всяких кнопок и прочего. Только текст.
На этой машине стоял Excel 2003 (циферки версии), но без SP. Переставили. Сейчас стоит Excel 2003 (циферки версии выше) SP3. При попытке открытия опять же виснет, затем пишет, что произошла ошибка, запускает процесс восстановления. После начала сего процесса выскакивает окошко с текстом, что произошел "Разрушающий сбой". После нажатия ОК закрывает Excel полностью.

Сначала думала, что из-за отсутствия компонент, но с этим все нормально. Файлы есть. DLL и OCX зарегистрированны на той машине. Единственное, что они почему-то не отражаются в окошке References (если запустить какой-либо другой файл). Но в тоже время их можно пожно подключить через ручной выбор. Если пробовать создать файл на этой машине, то все нормально. Запоминает все ссылки. А тот файл с макросами не хочет открывать ни в какую.

Помогите, кто чем может. Очень нужно запустить файл.

Спасибо.

Ответить

  Ответы Всего ответов: 13  

Номер ответа: 1
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #1
Добавлено: 26.02.09 18:30
1. Попробуйте полное удаление Office, т.е. удалить его деинсталлятором, почистить временные файлы, файлы Office в поддиректориях Document And Settings, в Programm Files/Common Files, в реестре хорошенько поискать и пощелкать и т.д. Какими-нибудь программными чистильщиками можно пройтись. Удостовериться, что все следы раннего присутствия убраны и поставить снова.

2. Возможно, что какое-то ПО конфликтует. Особенно нахально себя ведут некоторые комплексы антивирусной защиты... Или вирусы, но это маловероятно. Возможно, что в реестре не все компоненты зарегистрированы правильно, либо какая-то установленная программа заменила ряд библиотек на другие версии, такое вряд-ли установишь самостоятельно.

Ответить

Номер ответа: 2
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #2 Добавлено: 27.02.09 06:03
Спасибо за отклик.

1. (Да и 2, наверно тоже) Office переставляла не я. У нас спец. служба занимается поддержкой и сопровождением. И мы им можем сказать только, что нужно переставить. (И то нужно объяснить почему и зачем). А уж как они там переставляют нам не известно ("наука пока не в курсе" :-) ) Антивирусники тоже не имеем возможности трогать вообще. (Права и все такое).

Компоненты регистрировать, как я понимаю, нужно через Regsvr32 и Regocx32. Но я их зарегистрировала. Хотя брала файлы, которые уже были на той машине. Может нужно списать с машины, на которой работает, и потом зарегистрировать ??? (Может глупость, но что-то делать нужно, раз прав админа не дают на машину)

Ответить

Номер ответа: 3
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #3 Добавлено: 27.02.09 07:29
Паршиво бывает без админки.
Я перед повторной регистрацией вручную реестр чистил, иначе регистрация не работала.

Ответить

Номер ответа: 4
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #4 Добавлено: 27.02.09 09:19
Согласна, но что поделать. :-( На другом языке тож не разрешают. Приходиться "изгалятся" с написанием. :-(
А регистрация какая самого Office или компонентов ?

Ответить

Номер ответа: 5
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #5
Добавлено: 27.02.09 10:49
Без админки на целевой машине жесть. Тут понимаешь, весь Office со всем VBA и вытекающими отсюда последствиями построен на технологии COM. А что это такое? Это куча записей в реестре, которые вручную можно даже не пытаться лопатить в реестре. Потому как все объекты в Office имеют по веточке в реестре как минимум с указанием имени класса, GUID и прочими интимными подробностями OLE Automation. Установщик Office все делает сам, а прикладному разработчику о реестре вообще как бы знать не полагается. Так вот, после непропатченного Office могло что-то остаться (например, оно на момент его удаления использовалось другими программами) и теперь это что-то не дает тебе жизнь. Фиг знает, чем тут можно тебе помочь. Скажи службе поддержки, что конфигурация на целевой машине не позволяет в полной мере использовать все встроенные компоненты Office, но это же ничего не даст..

Попробуй поставить на той машине высокий уровень безопасности, открыть документ, убрать все дополнительные контролы и отключить добавленные тобой связи. А потом попробуй поочередно их подключать к проекту. Бывает например так, что версия библиотеки, скажем DAO, не совпадает с той, которая имеется на твоей машине. Но подключишь ручками то, что имеется и код станет работать. Трудно, но что делать, раз другого выхода пока нет.

Ответить

Номер ответа: 6
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #6 Добавлено: 27.02.09 11:52
Тут понимаешь, весь Office со всем VBA и вытекающими отсюда последствиями построен на технологии COM. А что это такое? Это куча записей в реестре... помочь. Скажи службе поддержки, что конфигурация на целевой машине не позволяет в полной мере использовать все встроенные компоненты Office, но это же ничего не даст.
Попробую сказать/попросить, чтобы поставили именно ту конфигурацию, что у меня на машине. Хотя меня терзают смутные сомнения в отношении того, что после переустановки нужной версии компоненты нормально встанут. А вдруг опять будут проблемы с запуском. Хотя пробовать надо, куда деться.

По совету: Я пробовала открыть пустой дуокумент на целевой машине. Открывается со стандартными подключенными компонентами (4 кажется штуки). На момент открытия пустого документа, нужные компоненты в списке References отсутствуют. Нахожу через Browse нужный файл, нажимаю. В списке появляется. Все вроде нормально. Сохраняю этот документ. Открываю, все на месте. Пустые по прежнему открываются с 4 стандартными.

А нужный файц ВООБЩЕ не открывается. Контролы и связи недостыпны, по причине кусочечно прорисованного экрана с пометкой "Разрушительный сбой". Не то, что в связи зайти, просто файл не открывается.

Ответить

Номер ответа: 7
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #7 Добавлено: 27.02.09 12:05
Файл с нужным, не сложным, но муторным форматированием. Не хотелось бы его переделывать. Не уверена, что будет результат. Ведь, кроме этой машины, на других прекрасно работает.

Терзает еще одна мысль. Если сейчас будут переставлять на остальных машинах, то может начать не работать на всех. (Но тогда наверно, у всех будут одинаковые файлы компонентов и все будет нормально.)

Ответить

Номер ответа: 8
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #8
Добавлено: 27.02.09 13:33
Как вообще быть в таких случаях, когда программка в Excel должна запускаться на разных версиях Office (в разумных пределах от .. и до ..)? Попробую предположить, поправьте меня, если надо:

1. Больше пользоваться программным кодом VBA, объектами из моделей Office, Excel и т.д. но лучше без наворотов.

2. Желательно не подключать дополнительные библиотеки и контролы. Контролы брать только из стандартного набора.

3. Если надо DAO / ADO, использовать более старые версии библиотек, чтобы другие, более древние конфигурации не встретили для них еще незнакомую версию.

Дополните или поправьте этот список, у кого есть мнение на этот счет.

Ответить

Номер ответа: 9
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #9 Добавлено: 27.02.09 14:50
Мои заметки :-) :
1. Так и делаю. Но тут пришлось использовать. Начальство сказало НАДО и ни в какую. (Может после этих проблем разрешит-таки нормально существовать-писать. :-))
2. См. п.1
3. Использую самую старую из имеющихся. Но как выяснилось это еще не факт, что пойдет. :-)

P.S. Тех. поддержка поступила проще. :-) Поставили 2 системник (с нужной версией). Мдаааа.... :-)

Ответить

Номер ответа: 10
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #10
Добавлено: 27.02.09 16:31
Поставили 2 системник (с нужной версией).

Это классно, всегда бы так! На западе, смотришь в фильмах, у офисных работников частенько комп. видно с двумя мониторами, чтобы удобно было работать.

Ответить

Номер ответа: 11
Автор ответа:
 AngryBadger



Вопросов: 33
Ответов: 245
 Профиль | | #11 Добавлено: 27.02.09 17:38
у офисных работников частенько комп. видно с двумя мониторами
У нас так трейдеры сидят. 2 монитора + 2 плазмы с новостями на отдел.

Ответить

Номер ответа: 12
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #12 Добавлено: 27.02.09 19:36
Кажется, что тут просто редкое и никем не учтеное стечение нескольких неизвестных обстоятельств.
Мне приходилось перед регистрацией дллки искать и удалять все ключи в реестре, где в строке одного из значений встречается название моей дллки.

Ответить

Номер ответа: 13
Автор ответа:
 Jasmin



Вопросов: 23
Ответов: 417
 Профиль | | #13 Добавлено: 27.02.09 22:54
To mc-black: Классно-то классно, но представь если бы ПО на всю машину писали также. Веселуха 15 компов, каждый для работы отдельного приложения. :-)

To Михаил a.k.a. AngryBadger: Ты в каком городе работаешь ? Можно к вам попроситься ? :-)

To Smith: Чур тебя, чур... :-) До такого пока не дожили. Пока обошлись постановкой системника с нужной версией. Надеюсь не будет нужно, но спасибо за информацию. Запомню на всякий случай. Вдруг пригодиться. Я с ума сойду, если придеться в реестре искать/удалять без права администрирования на этом компе. Тех. поддержка в шоке валяться будет. :-)

To All: Спасибо за рекомендации. Пока проблему удалось решить. А там посмотрим, что будет.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам