Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Thông tin: Giải đáp thắc mắc lỗi 429 khi tự động hoá các ứng dụng văn phòng

Hỗ trợ dành cho Office 2003 đã kết thúc

Microsoft đã kết thúc hỗ trợ dành cho Office 2003 vào ngày 8 tháng 4 năm 2014. Thay đổi này đã ảnh hưởng đến các bản cập nhật phần mềm và các tùy chọn bảo mật của bạn. Tìm hiểu ý nghĩa của điều này với bạn và cách thực hiện để luôn được bảo vệ.

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:244264
TÓM TẮT
Khi bạn sử dụng các Mới nhà điều hành hoặc CreateObject chức năng trong Microsoft Visual Basic để tạo ra một thể hiện của một ứng dụng Microsoft Office, bạn có thể nhận được thông báo lỗi sau:
Thời gian chạy lỗi '429': ActiveX thành phần không thể tạo đối tượng
Lỗi này xảy ra khi các đối tượng tự động hóa được yêu cầu không thể được tạo ra bởi COM, và do đó không có sẵn để Visual Basic. Lỗi thường thấy trên các máy tính nhất định, nhưng không phải những người khác.

Bài viết này cung cấp một số mẹo xử lý sự cố giúp bạn chẩn đoán và giải quyết vấn đề thường được biết là gây ra lỗi này.
THÔNG TIN THÊM
Không giống như một số lỗi trong Visual Basic, không có không có nguyên nhân gây ra một lỗi 429. Vấn đề xảy ra vì của lỗi trong cấu hình ứng dụng hoặc hệ thống, hoặc một thành phần bị thiếu hoặc hỏng. Việc tìm kiếm nguyên nhân chính xác là một vấn đề của loại bỏ khả năng. Nếu bạn gặp lỗi này trên một máy tính khách hàng, có một số điều bạn sẽ cần phải kiểm tra để cô lập và giải quyết các lỗi.

Các mục sau đó cung cấp cho bạn một số gợi ý thiết thực cho giải đáp thắc mắc lỗi này khi bạn làm việc với các ứng dụng văn phòng. Một số thông tin này cũng có thể áp dụng cho phi - văn phòng COM máy chủ là tốt, nhưng bài viết này giả định bạn đang cố gắng tự động hoá Microsoft Office.

Kiểm tra mã

Nơi đầu tiên để bắt đầu tìm kiếm các vấn đề là trong các mã. Trước khi bạn có thể khắc phục lỗi, bạn cần phải biết nơi lỗi xảy ra. Cố gắng thu hẹp nó xuống đến một dòng mã.

Khi bạn tìm thấy mã số đó là không, cố gắng làm như sau:
  • Đảm bảo rằng mã sử dụng sáng tạo đối tượng rõ ràng. Bất kỳ vấn đề dễ dàng hơn để tại chỗ và xác định nếu vấn đề thu hẹp tới một hành động đơn lẻ. Ví dụ, không làm như sau:
    Application.Documents.Add 'DON'T USE THIS!!						
    hoặc:
    Dim oWordApp As New Word.Application 'DON'T USE THIS!!'... some other codeoWordApp.Documents.Add						
    Cả hai của những phương pháp này sử dụng sáng tạo đối tượng tiềm ẩn. Microsoft Word không bắt đầu cho đến khi biến được gọi là ít nhất một lần. Kể từ khi biến có thể được gọi là trong các phần khác nhau của chương trình, điều này có thể làm cho vấn đề khó để bản địa hoá. Ngoài ra, nó là không rõ ràng cho dù vấn đề là với việc tạo ra các đối tượng ứng dụng hoặc đối tượng tài liệu.

    Thay vào đó, thực hiện cuộc gọi rõ ràng để tạo ra đối tượng mỗi một cách riêng biệt:
    Dim oWordApp As Word.ApplicationDim oDoc As Word.DocumentSet oWordApp = CreateObject("Word.Application")'... some other codeSet oDoc = oWordApp.Documents.Add						
    Điều này làm cho vấn đề dễ dàng hơn để cô lập và làm cho mã dễ đọc hơn.
  • Khi tạo một thể hiện của một ứng dụng Microsoft Office, sử dụng CreateObject Thay vì Mới. CreateObject chặt chẽ hơn ánh xạ tới trình tạo được sử dụng bởi hầu hết khách hàng Visual C++, và cho phép để có thể thay đổi trong hệ phục vụ CLSID giữa các phiên bản. CreateObject có thể được sử dụng với cả đầu-ràng buộc và cuối-ràng buộc các đối tượng.
  • Kiểm chứng rằng ProgID chuỗi thông qua để CreateObject chính xác và rằng nó là phiên bản độc lập (có nghĩa là, sử dụng "Excel.Application" chứ không phải là "Excel.Application.8"). Nó có thể là hệ thống đó là không có cũ hoặc mới hơn phiên bản của Microsoft Office so với phiên bản bạn chỉ ra trong ProgID.
  • Để hỗ trợ trong gỡ lỗi các ứng dụng không thể chạy trong IDE, sử dụng các Erl lệnh báo cáo số dòng của dòng không thành công. Ví dụ, mã sau sẽ cho bạn biết đối tượng tự động hóa mà không thể được tạo ra (Word hoặc Excel):
    Dim oWord As Word.ApplicationDim oExcel As Excel.ApplicationOn Error Goto err_handler1: Set oWord = CreateObject("Word.Application")2: Set oExcel = CreateObject("Excel.Application")' ... some other codeerr_handler:  MsgBox "The code failed at line " & Erl, vbCritical						
    Sử dụng một sự kết hợp của hộp thư và số dòng để theo dõi lỗi.
  • Hãy thử sử dụng cuối ràng buộc (có nghĩa là, Dim oWordApp như đối tượng). Sớm bị ràng buộc các đối tượng yêu cầu giao diện tùy chỉnh của họ để được marshaled qua ranh giới của quá trình. Nếu có một vấn đề marshaling một giao diện tùy chỉnh trong CreateObject hoặc Mới, bạn sẽ nhận được một lỗi 429. Một đối tượng bị ràng buộc vào cuối sử dụng một hệ thống định nghĩa interface (IDispatch) mà không yêu cầu một proxy tùy chỉnh để được marshaled. Hãy thử sử dụng một đối tượng bị ràng buộc vào cuối để xem nếu điều này làm cho một sự khác biệt.

    Nếu vấn đề xảy ra chỉ khi các đối tượng là đầu bị ràng buộc, vấn đề là với các ứng dụng máy chủ, và thường có thể được sửa chữa bởi cài đặt lại ứng dụng (xem sau này).
  • Nếu bạn đang tự động hoá từ ASP hoặc một thành phần MTS, sử dụng CreateObject Thay vì Server.CreateObject(). Bằng cách sử dụng Server.CreateObject sẽ nhanh chóng ứng dụng văn phòng dưới danh tính của một gói MTS mà được biết là gây ra vấn đề với Microsoft Office.

Kiểm tra máy chủ tự động hóa

Những lý do phổ biến nhất cho một lỗi với CreateObject hoặc Mới các vấn đề với ứng dụng máy chủ riêng của mình. Thông thường, những vấn đề là với cấu hình hay cài đặt của ứng dụng. Dưới đây là một số bài kiểm tra:
  • Kiểm chứng Microsoft Office ứng dụng muốn tự động hóa được cài đặt trên máy tính địa phương, và đảm bảo rằng bạn có thể bắt đầu các ứng dụng từ đầu và sau đó chạy hộp thoại. Nếu chương trình không thể khởi động bằng tay, nó sẽ không làm việc thông qua tự động hóa.
  • Đăng ký lại các ứng dụng bằng cách gõ đường dẫn đến máy chủ vào lúc bắt đầu và sau đó chạy hộp thoại, và sau đó phụ thêm / RegServer đến cuối dòng. Báo chí Ok. Điều này âm thầm nên chạy các ứng dụng và đăng ký lại nó như một máy chủ COM. Nếu vấn đề là với một khóa registry bị thiếu, điều này thường sẽ sửa chữa nó.
  • Kiểm tra khóa LocalServer32 dưới CLSID cho ứng dụng mà bạn muốn tự động hóa. Hãy chắc chắn rằng nó trỏ đến vị trí chính xác cho các ứng dụng, và đảm bảo rằng tên đường dẫn là trong một định dạng ngắn đường dẫn (DOS 8.3). Trong khi nó không phải là một yêu cầu một máy chủ đăng ký bằng cách sử dụng tên đường dẫn ngắn, tên con đường dài bao gồm dấu cách nhúng đã được biết đến gây ra vấn đề trên một số hệ thống (xem sau này).

    Để kiểm tra đường dẫn chìa khóa Lưu trữ cho máy chủ, bắt đầu Windows Registry Editor bằng cách gõ regedit trong sự bắt đầu và sau đó chạy hộp thoại. Điều hướng đến các phím HKEY_CLASSES_ROOT\Clsid. Dưới phím này bạn sẽ tìm thấy các CLSIDs cho máy chủ đăng ký tự động hóa trên hệ thống. Bằng cách sử dụng các giá trị sau đó, tìm thấy chìa khóa mà đại diện cho ứng dụng văn phòng bạn muốn tự động hóa và kiểm tra khóa LocalServer32 của nó cho con đường.
       +========================+=========================================+   | 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}  |   +------------------------+-----------------------------------------+						
    Hiện đường dẫn phù hợp với vị trí thực tế của các tập tin? Lưu ý rằng tên đường dẫn ngắn có thể cung cấp cho bạn những ấn tượng rằng đường dẫn là chính xác khi không có. Ví dụ, cả Microsoft Office và Microsoft Internet Explorer (nếu được cài đặt ở vị trí mặc định của họ) sẽ có một con đường ngắn tương tự như "C:\PROGRA~1\MICROS~X\" trong đó x là số một số. Nó không phải ngay lập tức rõ ràng rằng bạn nhìn từ tên đường dẫn ngắn.

    Bạn có thể kiểm tra rằng đường dẫn thực sự đúng bằng cách sao chép giá trị từ sổ đăng ký và dán nó vào đầu và sau đó chạy hộp thoại (loại bỏ các / Tự động hóa chuyển đổi trước khi chạy ứng dụng). Hiện các ứng dụng bắt đầu khi bạn chọn Ok? Nếu có, sau đó các máy chủ được đăng ký một cách chính xác. Nếu không, bạn nên thay thế giá trị khoá LocalServer32 với đường dẫn chính xác (sử dụng tên đường dẫn ngắn nếu có thể).
  • Vấn đề đã được biết là xảy ra khi tự động hoá Word hoặc Excel nếu mẫu Normal.dot (Word) hoặc tập tin tài nguyên Excel.xlb (Excel) đã trở thành bị hỏng. Để kiểm tra nếu một tham nhũng đã xuất hiện, tìm kiếm các ổ đĩa cứng địa phương để tìm tất cả các trường hợp của Normal.dot hoặc *.xlb. (Xin lưu ý rằng nếu bạn đang chạy Windows 2000, Windows NT, hoặc Windows 95/98 với cấu hình được kích hoạt, bạn có thể tìm thấy nhiều bản sao của các tập tin, một cho mỗi hồ sơ người dùng trên hệ thống.) Tạm thời đổi tên tệp Normal.dot hoặc *.xlb tệp, và tái chạy thử nghiệm của bạn tự động hóa (Word và Excel sẽ tạo ra những tập tin này nếu họ không thể tìm thấy chúng). Để mã bây giờ làm việc? Nếu có, sau đó các tập tin bạn đổi tên thành cần xóa kể từ khi họ đang bị hỏng. Nếu không, bạn nên đổi tên chúng quay lại tên ban đầu của họ vì vậy, bất kỳ cài đặt tuỳ chỉnh được lưu trong những tập tin này sẽ không bị mất.
  • Nếu bạn đang trên Windows NT, Windows 2000, Windows XP hoặc Windows Server 2003 hệ thống, chạy ứng dụng theo tài khoản người quản trị. Văn phòng máy chủ yêu cầu truy cập đọc/ghi vào registry và ổ đĩa, và có thể không đúng cách nạp nếu thiết đặt an ninh hiện thời từ chối đặc quyền này.

Kiểm tra hệ thống

Cấu hình hệ thống cũng có thể gây ra vấn đề với việc tạo ra các máy chủ COM ra của quá trình. Sau đây là một số điều để kiểm tra vào hệ thống nơi mà lỗi xảy ra:
  • Vấn đề xảy ra với bất kỳ máy chủ ra quá trình? Nếu bạn có một ứng dụng chỉ sử dụng một máy chủ COM cụ thể (ví dụ, Word), bạn sẽ muốn kiểm tra một máy chủ ra quá trình khác nhau để đảm bảo rằng vấn đề không phải là với COM lớp chính nó. Nếu không có máy chủ COM ra quá trình có thể được tạo ra trên hệ thống đó, sau đó cài đặt lại hệ thống OLE tập tin (xem bên dưới) hoặc một cài đặt lại hệ điều hành sẽ được yêu cầu để giải quyết vấn đề.
  • Kiểm tra các số phiên bản cho các tập tin hệ thống OLE quản lý tự động hóa. Những tập tin này thường được cài đặt như là một tập, và nên phù hợp với các con số xây dựng. Cài một tiện ích thiết lập cấu hình không đúng cách có thể nhầm lẫn đặt các tập tin một cách riêng biệt, gây ra cho họ để trở thành mismatched. Để tránh những vấn đề với tự động hóa, bạn nên kiểm tra các tập tin để đảm bảo rằng các tập tin phù hợp với xây dựng.

    Bạn sẽ tìm thấy các tập tin tự động hóa trong thư mục Windows\System hoặc Winnt\System32. Border|phải|200px Đây là danh sách các tệp để kiểm tra:
       +---------------+-------------+----------------+   | 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 |   +---------------+-------------+----------------+						
    Kiểm tra phiên bản tập tin bằng cách nhấp chuột phải vào file Explorer và chọn Properties từ trình đơn popup. Các giá trị quan trọng nhất là cuối bốn chữ số của phiên bản tệp (số xây dựng) và ngày cuối lần. Bạn muốn đảm bảo rằng các giá trị này là như nhau cho tất cả các tập tin tự động hóa.

    Xin lưu ý rằng phiên bản số và ngày tháng được đưa ra ở trên ví dụ chỉ với mục đích. Giá trị của bạn có thể khác. Điều quan trọng là những giá trị này phù hợp với nhau, chứ không phải là bảng này.

    Nếu các tập tin không phù hợp với xây dựng số hoặc sửa đổi ngày tháng, bạn có thể tải một tiện ích self-extracting sẽ cập nhật các tập tin tự động hóa. Để biết thêm thông tin, bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:
    290887VBRun60sp6.exe cài đặt Visual Basic 6.0 SP6 lần chạy tệp
  • Windows NT 4.0 có một vấn đề được biết đến với bắt đầu máy chủ tự động hóa có thể sống trong một thư mục đó chứa một không gian nhúng trong tên, và/hoặc tương tự như một cặp khác mà trước tiên 8 ký tự là giống hệt nhau. Ví dụ, một máy chủ sống trong c: Program Files Files\SomeFolder có thể không bắt đầu trong một cuộc gọi đến CreateObject nếu có một cặp trên hệ thống được gọi là c: Program Files Stuff\SomeFolder. Để biết thêm chi tiết, xem bài viết cơ sở kiến thức sau:Để có thêm thông tin về vấn đề này và các bước để workaround nó, bấm vào số bài viết dưới đây để xem bài viết trong cơ sở kiến thức Microsoft:
    185126 LỖI: COM/OLE Server không khởi động trên Windows NT 4.0

Cài đặt lại Microsoft Office

Nếu không có những bước trước sẽ giúp giải quyết vấn đề, xem xét việc gỡ bỏ cài đặt và cài đặt lại Microsoft Office. Microsoft khuyến cáo rằng bạn gỡ bỏ cài đặt phiên bản hiện có lần đầu tiên, và sau đó cài đặt lại từ đĩa cài đặt gốc.

Đối với một danh sách đầy đủ các mục sẽ được gỡ bỏ, xin xem bài viết cơ sở kiến thức sau đây:
219423 OFF2000: Làm thế nào để gỡ bỏ hoàn toàn Microsoft Office 2000
158658 OFF97: Làm thế nào để gỡ bỏ hoàn toàn Microsoft văn phòng 97
THAM KHẢO
Cho thông tin bổ sung về khắc phục sự cố '429' lỗi thư, bấm vào số bài viết dưới đây để xem bài viết trong cơ sở kiến thức Microsoft:
240377 HOWTO: Bảo đảm Jet 3.5 được cài đặt đúng (phần I)
Đối với thông tin mới nhất và mẫu mã liên quan đến Microsoft văn phòng tự động hóa, xin vui lòng xem trang web hỗ trợ Microsoft Online tại:
Note This is a "FAST PUBLISH" article created directly from within the Microsoft support organization. The information contained herein is provided as-is in response to emerging issues. As a result of the speed in making it available, the materials may include typographical errors and may be revised at any time without notice. See Terms of Use for other considerations.

Cảnh báo: Bài viết này được dịch tự động

Thuộc tính

ID Bài viết: 244264 - Xem lại Lần cuối: 08/21/2011 11:51:00 - Bản sửa đổi: 2.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 KbMtvi
Phản hồi