问题.在VBE中执行程序时提示:无法创建部件或者OLE自动化错误
这个问题一般是因为引用的部件或者OLE对象的注册表HKCR\CLSID下面没有指定部件或OLD对象的InprocServer32路径。解决方法有两个,一是可以通过REGSVR32来注册的DLL使用REGSVR32重新注册DLL文件;二是不能通过REGSVR32来注册的DLL EXE OLB文件等必须手动注册。
如OFFICE2007在客户端无法连接并出现此信息时是因为缺少MSCDM或ACEOLEDB.DLL并没有相关注册表信息。如果缺少MSCDM文件会提示方法作用于对象失败或者自动化错误(找不到指定的模块),缺少ACEOLEDB.DLL则提示无法建立资料提供者.OFFICE2007的这两个文件不能使用REGSVR32来注册,所以只有手动注册,如下:
[HKEY_CLASSES_ROOT\Microsoft.Access.OLEDB.10.0\CLSID]
@="{25377C20-D19C-11D2-B483-00600832C573}"
[HKEY_CLASSES_ROOT\Microsoft.Access.OLEDB.10.0]
@="Microsoft.Access.OLEDB.10.0"
[HKEY_CLASSES_ROOT\CLSID\{25377C20-D19C-11D2-B483-00600832C573}\InprocServer32]
@="D:\\OFFICE2007\\OFFICE12\\MSCDM.DLL"
"ThreadingModel"="Both"
[HKEY_CLASSES_ROOT\CLSID\{25377C20-D19C-11D2-B483-00600832C573}\ProgID]
@="Microsoft.Access.OLEDB.10.0"
[HKEY_CLASSES_ROOT\CLSID\{25377C20-D19C-11D2-B483-00600832C573}\VersionIndependentProgID]
@="Microsoft.Access.OLEDB"
[HKEY_CLASSES_ROOT\CLSID\{25377C20-D19C-11D2-B483-00600832C573}]
@="Microsoft.Access.OLEDB.10.0"
[HKEY_CLASSES_ROOT\Msshed.ShedDSO\CLSID]
@="{5F6C4076-12F5-11D3-8CEE-005004838434}"
[HKEY_CLASSES_ROOT\Msshed.ShedDSO\CurVer]
@="Msshed.ShedDSO.1"
[HKEY_CLASSES_ROOT\Msshed.ShedDSO]
@="ShedDSO Class"
[HKEY_CLASSES_ROOT\Msshed.ShedDSO.1\CLSID]
@="{5F6C4076-12F5-11D3-8CEE-005004838434}"
[HKEY_CLASSES_ROOT\Msshed.ShedDSO.1]
@="ShedDSO Class"
[HKEY_CLASSES_ROOT\CLSID\{5F6C4076-12F5-11D3-8CEE-005004838434}\InprocServer32]
@="D:\\OFFICE2007\\OFFICE12\\MSCDM.DLL"
"ThreadingModel"="Both"
[HKEY_CLASSES_ROOT\CLSID\{5F6C4076-12F5-11D3-8CEE-005004838434}\ProgID]
@="Msshed.ShedDSO.1"
[HKEY_CLASSES_ROOT\CLSID\{5F6C4076-12F5-11D3-8CEE-005004838434}\Programmable]
[HKEY_CLASSES_ROOT\CLSID\{5F6C4076-12F5-11D3-8CEE-005004838434}\TypeLib]
@="{AE997BEB-0FBD-11D3-8CEE-005004838434}"
[HKEY_CLASSES_ROOT\CLSID\{5F6C4076-12F5-11D3-8CEE-005004838434}\VersionIndependentProgID]
@="Msshed.ShedDSO"
[HKEY_CLASSES_ROOT\CLSID\{5F6C4076-12F5-11D3-8CEE-005004838434}]
@="ShedDSO Class"
[HKEY_CLASSES_ROOT\Microsoft.Access.OLEDB.RecordsetConstructor.10.0\CLSID]
@="{D33A1BCE-649E-11D3-8CF2-005004641AC4}"
[HKEY_CLASSES_ROOT\Microsoft.Access.OLEDB.RecordsetConstructor.10.0]
@="Microsoft.Access.OLEDB.RecordsetConstructor.10.0"
[HKEY_CLASSES_ROOT\CLSID\{D33A1BCE-649E-11D3-8CF2-005004641AC4}\InprocServer32]
@="D:\\OFFICE2007\\OFFICE12\\MSCDM.DLL"
"ThreadingModel"="Both"
[HKEY_CLASSES_ROOT\CLSID\{D33A1BCE-649E-11D3-8CF2-005004641AC4}\ProgID]
@="Microsoft.Access.OLEDB.RecordsetConstructor.10.0"
[HKEY_CLASSES_ROOT\CLSID\{D33A1BCE-649E-11D3-8CF2-005004641AC4}\VersionIndependentProgID]
@="Microsoft.Access.OLEDB.RecordsetConstructor"
[HKEY_CLASSES_ROOT\CLSID\{D33A1BCE-649E-11D3-8CF2-005004641AC4}]
@="Microsoft.Access.OLEDB.RecordsetConstructor.10.0"
[HKEY_CLASSES_ROOT\Microsoft.ACE.OLEDB.12.0\CLSID]
@="{3BE786A0-0366-4F5C-9434-25CF162E475E}"
[HKEY_CLASSES_ROOT\Microsoft.ACE.OLEDB.12.0]
@="Microsoft.ACE.OLEDB.12.0"
[HKEY_CLASSES_ROOT\CLSID\{3BE786A0-0366-4F5C-9434-25CF162E475E}\InprocServer32]
@="D:\\OFFICE2007\\OFFICE12\\ACEOLEDB.DLL"
"ThreadingModel"="Both"
[HKEY_CLASSES_ROOT\CLSID\{3BE786A0-0366-4F5C-9434-25CF162E475E}\OLE DB Provider]
@="Microsoft Office 12.0 Access Database Engine OLE DB Provider"
[HKEY_CLASSES_ROOT\CLSID\{3BE786A0-0366-4F5C-