ИНФОРМАЦИЯ: Устранение неполадок ошибка 429 при автоматизации приложений Office

Переводы статьи Переводы статьи
Код статьи: 244264 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

При использовании Новый оператор или Функция CreateObject функции в Microsoft Visual Basic для создания экземпляра приложения Microsoft Office может появиться следующее сообщение об ошибке:
Ошибка выполнения «429»: компоненту ActiveX не удается создать объект
Эта ошибка возникает, если запрашиваемый объект автоматизации не может быть создан COM и поэтому недоступны в Visual Basic. Сообщение об ошибке обычно видели на определенных компьютерах, но не другие.

Эта статья содержит советы по устранению неполадок для диагностики и устранения неполадок, вызывающих возникновение этой ошибки.

Дополнительная информация

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

Элементы впоследствии дать некоторые практические советы для устранения этой ошибки при работе с приложениями Office. Часть этих данных также могут относиться к, так и серверов Office COM, но в данной статье предполагается, что вы пытаетесь автоматизации Microsoft Office.

Проверка кода

Следует начать поиск неполадок — в коде. До устранения ошибки, необходимо знать, где произошла ошибка. Попробуйте сузить до одной строки кода.

Когда код, который не удается найти, попробуйте следующее:
  • Убедитесь, что в коде используется явное создание объекта. Любые проблемы проще выявить и идентифицировать Если проблема сведена к одним действием. Например не делайте следующего:
    Application.Documents.Add 'DON'T USE THIS!!
    						
    или:
    
    Dim oWordApp As New Word.Application 'DON'T USE THIS!!
    '... some other code
    oWordApp.Documents.Add
    						
    Оба эти метода используется неявное создание объекта. Microsoft Word не запущена, пока переменная называется по крайней мере один раз. Поскольку переменная может вызываться в разных частях программы, это может сделать проблему локализацию. Кроме того является ли неполадка связана с создания приложения или объекта документа.

    Вместо этого явных вызовов для создания каждого объекта в отдельности.
    Dim oWordApp As Word.Application
    Dim oDoc As Word.Document
    Set oWordApp = CreateObject("Word.Application")
    '... some other code
    Set oDoc = oWordApp.Documents.Add
    						
    Это облегчает изолировать проблему и делает код более удобочитаемым.
  • При создании экземпляра приложения Microsoft Office, с помощью Функция CreateObject Вместо Новый. Функция CreateObject более точно сопоставляется с процессом создания, используемого клиентами большинства Visual C++ по и возможные изменения CLSID сервера между версиями. Функция CreateObject можно использовать с объектами с ранним связыванием и поздним связыванием.
  • Убедитесь, что идентификатор ProgID строка, передаваемая Функция CreateObject Исправьте и что он является независимость от версии (то есть, использовать «Excel.Application» вместо «Excel.Application.8»). Возможно наличие системы, в которой происходит сбой старой или новой версии Microsoft Office версии, чем указанная в идентификатор ProgID.
  • Для поддержки отладки приложений, которые не могут выполняться в среде IDE, с помощью Erl команду, чтобы вывести номер строки, в которой происходит сбой. Например следующий код вы узнаете какой объект автоматизации невозможно (Word или Excel):
    Dim oWord As Word.Application
    Dim oExcel As Excel.Application
    
    On Error Goto err_handler
    
    1: Set oWord = CreateObject("Word.Application")
    2: Set oExcel = CreateObject("Excel.Application")
    
    ' ... some other code
    
    err_handler:
      MsgBox "The code failed at line " & Erl, vbCritical
    						
    Отследить ошибки с помощью окна сообщений и номера строк.
  • Попробуйте использовать позднее связывание (то есть Dim oWordApp As Object). Объекты с ранней привязкой необходимо их настраиваемые интерфейсы были переданы через границы процессов. Если есть ошибки пользовательского интерфейса во время маршалинга Функция CreateObject -или- Новый, появится сообщение об ошибке 429. Позднее присоединенного объекта используется определенного системой интерфейса (IDispatch), не требуется настраиваемый прокси для маршалинга. Попробуйте использовать позднее присоединенного объекта для просмотра, если это влияние.

    Если проблема возникает только в том случае, когда объект с ранней привязкой, проблема связана с серверного приложения и обычно можно исправить путем переустановки приложения (см. ниже).
  • Используйте при автоматизации из ASP или компонентов MTS Функция CreateObject Вместо Server.CreateObject(). С помощью Server.CreateObject будет создать экземпляр приложения Office с идентификационными данными пакета MTS, которая может стать причиной проблем с Microsoft Office.

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

Самые распространенные причины ошибки Функция CreateObject -или- Новый При проблемах с самого приложения сервера. Как правило эти проблемы могут конфигурации или установки приложения. Ниже приведены некоторые элементы для проверки.
  • Проверьте Microsoft Office, установленных для Автоматизация приложения на локальном компьютере и убедитесь, что можно запустить приложение с самого начала, а затем запустите диалоговое окно. Если программа не запускается вручную, он не будет работать через автоматизацию.
  • Перерегистрируйте приложение, введя путь к серверу в начале и затем запустить диалоговое окно и затем добавить / RegServer до конца строки. Нажмите клавишу ОК. Это без вмешательства пользователя следует запустить приложение и повторно зарегистрировать его как COM-сервера. Если неполадка связана с разделом реестра отсутствует, это обычно будет исправить.
  • Проверьте раздел LocalServer32 в разделе CLSID для приложения, которые требуется автоматизация. Убедитесь, что он указывает на правильное расположение для приложения и убедитесь, что путь в формате короткого пути (DOS в формате 8.3). Пока это не требование, которое сервер быть зарегистрированы с использованием краткого пути, длинные имена путей, включающие пробелы известны вызывает проблемы в некоторых системах (см. ниже).

    Чтобы проверить путь ключ, хранящийся на сервере, запустите редактор реестра Windows, введя regedit в начало и затем диалоговое окно Запуск. Перейдите к разделу реестра HKEY_CLASSES_ROOT\Clsid. В этом разделе вы найдете CLSID для зарегистрированных серверов автоматизации в системе. Позже с помощью значений, найти ключ, представляющий приложение Office требуется Автоматизация и проверьте его раздел LocalServer32 пути.
       +========================+=========================================+
       | Office Server          | CLSID Key                               |
       +========================+=========================================+
       | Access.Application     | {73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9}  |
       +------------------------+-----------------------------------------+
       | Excel.Application      | {00024500-0000-0000-C000-000000000046}  |
       +------------------------+-----------------------------------------+
       | FrontPage.Application  | {04DF1015-7007-11D1-83BC-006097ABE675}  |
       +------------------------+-----------------------------------------+
       | Outlook.Application    | {0006F03A-0000-0000-C000-000000000046}  |
       +------------------------+-----------------------------------------+
       | PowerPoint.Application | {91493441-5A91-11CF-8700-00AA0060263B}  |
       +------------------------+-----------------------------------------+
       | Word.Application       | {000209FF-0000-0000-C000-000000000046}  |
       +------------------------+-----------------------------------------+
    						
    Соответствует ли путь фактическое расположение файла? Имейте в виду, что краткие пути могут дают впечатление, что путь указан правильно, когда он не может быть. Например Microsoft Office и Microsoft Internet Explorer (если он установлен в расположениях по умолчанию) будет иметь короткий путь «C:\PROGRA~1\MICROS~X\», где X — некоторое число. Это не очевидно, что вы находитесь на из краткий путь.

    Можно проверить, что путь правы, копирование значения из реестра и вставить его в начало, а затем запустите диалоговое окно (удаление И автоматизации Переключение до запуска приложения). Приложение запускается при выборе ОК? Если да, сервер зарегистрирован правильно. В противном случае следует заменить значение раздела LocalServer32 на правильный путь (используйте краткий путь, если это возможно).
  • Возникает при автоматизации Word или Excel, если шаблон Normal.dot (Word) или файл ресурсов Excel.xlb (Excel) поврежден известны проблемы. Чтобы проверить, произошло повреждение, поиск локальных жестких дисков для поиска всех экземпляров Normal.dot или *.xlb. (Имейте в виду при работе Windows 2000, Windows NT или Windows 95 или Windows 98 с включенными профилями, может оказаться несколько копий этих файлов, по одному для каждого профиля пользователя в системе.) Временно переименуйте файлы Normal.dot или файлов *.xlb и повторно запустите проверку автоматизации (Word и Excel будет создать эти файлы, если им не удается найти). Код теперь работает? Если да, можно переименовать файлы следует удалить, поскольку они повреждены. Если нет, переименуйте их обратно в их исходные имена так, чтобы все пользовательские параметры, сохраненные в этих файлах будут потеряны.
  • Если в Windows NT, Windows 2000, Windows XP или Windows Server 2003 система, запустите приложения под учетной записью администратора. Серверы Office требуется доступ на чтение и запись в реестре и жесткий диск и может не загружаться должным образом, если ваши текущие параметры безопасности запрещают эту привилегию.

Проверка системы

Конфигурация системы также может вызвать проблемы с созданием COM-серверов вне процесса. Ниже приведены несколько советов по проверке систем место возникновения ошибки.
  • -Таки это случилось с любым сервером вне процесса? Если у вас есть приложение, которое просто использует определенный COM-сервер (например, Word), вы захотите проверить на другой сервер вне процесса, чтобы убедиться, что неполадка не связана с сам слой COM. Если сервер COM не вне процесса могут быть созданы в этой системе, переустановки системы OLE файлов (см. ниже) или переустановки операционной системы нужно будет решить проблему.
  • Проверьте номера версий системных файлов OLE, которые управляют автоматизацией. Эти файлы обычно устанавливаются в виде набора и должны соответствовать номеров построений. Неправильно настроенная программа установки может ошибочно установить файлы отдельно, к ним становятся несоответствие. Во избежание проблем при автоматизации следует проверить файлы, убедитесь, что файлы соответствуют построений.

    Вы найдете файлы автоматизации в папку Windows\System или Winnt\System32. Ниже приведен список файлов для проверки.
       +---------------+-------------+----------------+
       | File Name     |  Version    | Date Modified  |
       +---------------+-------------+----------------+
       | Asycfilt.dll  |  2.40.4275  | March 08, 1999 |
       | Oleaut32.dll  |  2.40.4275  | March 08, 1999 |
       | Olepro32.dll  |  5.0.4275   | March 08, 1999 |
       | Stdole2.tlb   |  2.40.4275  | March 08, 1999 |
       +---------------+-------------+----------------+
    						
    Проверьте версию файла, щелкните правой кнопкой мыши файл в обозревателе и при выборе свойств из всплывающего меню. Наиболее важные значения, последние четыре цифры (номер сборки) версии файла и Дата последнего изменения. Необходимо убедиться, что эти значения одинаковы для всех файлов автоматизации.

    Обратите внимание на то, что номера версии и даты, приведенного выше, например, исключительно в целях. Значения могут отличаться. Важно, что эти значения совпадают друг с другом, а не в этой таблице.

    Если файлы не соответствуют номера сборок или измененной даты, можно загрузить самораспаковывающийся программа, которая будет обновлять файлы автоматизации. Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
    290887VBRun60sp6.exe устанавливает файлы времени выполнения Visual Basic 6.0 SP6
  • Windows NT 4.0 имеет проблемы с запуском серверы автоматизации, которые находятся в папке, которая содержит пробелы в имени и напоминает другую папку, чьи первые 8 символов, идентичны. Например сервера, живущих в C:\Program Files\SomeFolder может не запуститься во время вызова метода CreateObject, если в системе, называемый C:\Program Stuff\SomeFolder другую папку. Для получения дополнительных сведений обратитесь к следующей статье базы знаний:Для получения дополнительных сведений о данной проблеме и действия, чтобы избежать этого, щелкните следующий номер статьи базы знаний Майкрософт:
    185126 Ошибка: COM и OLE-сервер не запускается в Windows NT 4.0

Переустановка Microsoft Office

Если ни один из описанных выше действий не помогла устранить проблему, рассмотрите возможность удаления и переустановки Microsoft Office. Корпорация Майкрософт рекомендует сначала удалить существующую версию, а затем переустановите из исходных установочных дисков.

Полный список элементов можно найти в следующих статьях базы знаний:
219423 OFF2000: Как полностью удалить Microsoft Office 2000
158658 OFF97: Как полностью удалить Microsoft Office 97

Ссылки

Для получения дополнительных сведений об устранении неполадок, сообщение об ошибке «429» щелкните следующий номер статьи базы знаний Майкрософт:
240377 Методические УКАЗАНИЯ: Гарантировать правильность установки Jet 3.5 (часть I)
Самые последние сведения и примеры кода, касающиеся автоматизации Microsoft Office можно найти на сайте поддержки Microsoft Online в:
http://support.Microsoft.com/ofd

Свойства

Код статьи: 244264 - Последний отзыв: 6 октября 2011 г. - Revision: 6.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
  • Microsoft Access 2000 Standard Edition
  • Microsoft Access 97 Standard Edition
  • Microsoft Office Excel 2007
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft FrontPage 2002 Standard Edition
  • Microsoft FrontPage 2000 Standard Edition
  • Microsoft Office Outlook 2007
  • Microsoft Office Outlook 2003
  • Microsoft Outlook 2002 Standard Edition
  • Microsoft Outlook 2000 Standard Edition
  • Microsoft Outlook 97 Standard Edition
  • Microsoft Outlook 98 Standard Edition
  • Microsoft Office PowerPoint 2007
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft PowerPoint 2000 Standard Edition
  • Microsoft PowerPoint 97 Standard Edition
  • Microsoft Office Word 2007
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
  • Microsoft Word 97 Standard Edition
Ключевые слова: 
kbautomation kbinfo kbmt KB244264 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:244264

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com