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

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 244264 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

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 code
    oWordApp.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.Application
    Dim oDoc As Word.Document
    Set oWordApp = CreateObject("Word.Application")
    '... some other code
    Set 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.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
    						
    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:
http://support.Microsoft.com/ofd
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.

Thu?c tính

ID c?a bài: 244264 - L?n xem xét sau cùng: 21 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • 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
T? khóa: 
kbautomation kbinfo kbmt KB244264 KbMtvi
Máy d?ch
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

Cung cấp Phản hồi

 

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