OLE Error 80020102 при попытке выгрузить отчет на одном компьютере

Прежде всего, хочу заметить, что подобное сообщение абсолютно не информативно, и по нему редко можно определить истинную причину. Столкнулась с такой ситуацией:

1. Появляется только на одном компьютере;
2. Под всеми пользователями;
3. Для любого отчета Word/Excel;

Решить проблему можно только путем активации отладчика: необходимо выяснить, на какой строке программа вылетает. Если это это строка finally - значит, проблема где-то в блоке try, и его нужно последовательно пройти отладчиком, каждую строку проверяя watch'ем.

В моем случае проблемной строкой оказалась следующая:

Result = GetIsMSOfficeApplicationIstalledViaRegistry(MSOfficeApplicationName);

Это системная функция обращения к реестру. Остановка отладчика на этой строке говорит о том, что проблема в операционной системе, а именно - в службах работы реестра.

Чтобы устранить проблему, нужно перезапустить либо переустановить системные службы Windows. Это можно сделать через консоль (Пуск - Выполнить - cmd)

Перезапустить:

net stop winmgmt
cd /d %windir%\system32\wbem
for %i in (*.dll) do RegSvr32 -s %i
for %i in (*.exe) do %i /RegServer
net start winmgmt

Переустановить:

rundll32.exe setupapi,InstallHinfSection WBEM 132 %windir%\inf\wbemoc.inf

После переустановки системных служб реестра Windows проверка инсталляции офиса проходит корректно и отчет выгружается.

Отдельное спасибо Евгению Лобову за сотрудничество в решении проблемы.

Нравится

Поделиться

2 комментария

Еще как вариант, просто снести ветку в реестре, например того же самого Excel.
HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Options\DefSheets -> именно этот параметр
P.S. Мне например помогло!

Ценное наблюдение. Павел, благодарю.

Показать все комментарии