随笔-20  评论-13  文章-23  trackbacks-0

数据库程序安装后出现错误:“ ActiveX 无法创建对象,错误号 429

     操作系统: Windows 98
    
编程工具: VB 6.0
    
问题:我用 VB 6.0 编写了一个软件,其中用到 DBGrid Data 控件和 Access 97 数据库,打包后安装在其他的计算机上运行时出现错误:“ ActiveX 无法创建对象,错误号 429 ”,但是安装在有 Offices 97 的计算机上运行正常。我怀疑是要求 Access 97 的缘故,我不希望对 Access 97 有依赖,请问如何解决 ?(linjinan)

 

 

    Mingjun Q 的意见:
    
估计是程序安装后没有正确注册所使用的 DLL OCX 。如果是 OCX 没有注册,只需使用 REGSVR32.EX
    E
注册相应的 OCX 即可。如果是 DAO 则需要 DAO350.DLL ,在 VB 中我没有找到有关如何注册它的说明,而
    
且使用 REGSVR32.EXE 注册也没用。通过查注册表(搜索 DAO ),我发现只要将相关注册分支导入到用
    
户的机器中,就可以使用 DAO.
    
    
在主键: HKEY_CLASSES_ROOT
     "DAO.DBEngine.35"
     "DAO.PrivateDBEngine.35"
     "DAO.TableDef.35"
     "DAO.Field.35"
     "DAO.Index.35"
     "DAO.Group.35"
     "DAO.User.35"
     "DAO.QueryDef.35"
     "DAO.Relation.35"
     "Microsoft DAO 3.51 Object Library"
    
在主键: HKEY_LOCAL_MACHINE 中也包含上述的分支。
    
而且建议在导入前使用 REGSVR32.EXE 先注册 DAO
    
    
刘利安的意见:
    VB
不尽人意的地方或者说独到之处,就在于它编译出的可执行文件过分依赖 dll ocx ,因此开发的程序安装时必须弄清楚它离不开那些 dll ocx
    
你的程序中 Data 控件是内置的,而 DBGrid 必须依赖 dbgrid32.ocx 。另外,调用数据库,一般需要安装 Msjet35.dll dao350.dll 。安装 Access 之后,这两个文件会分别添加在系统中(前一个在 Common Files\Microsoft Shared ,后一个在 System ),这也许就是你遇到的问题所在。
    
有一个软件 --DLLExplorer-- 可以帮到你,你自己在网上找找看,怎么用我不多言。
    
    
江凯 的意见:
    
可以将 DAO350.DLL 文件复制到 C:\Program Files\Common Files\Microsoft Shared\DAO\ 文件夹下,在 windows 开始选项的“运行”窗口下输入下面内容注册 DAO350.DLL 动态链接库
    regsvr32 "C:\Program Files\Common Files\Microsoft Shared\DAO\DAO350.DLL"

 

缺少组件或组件未注册

当您在分发 Visual Basic 程序后尝试运行它时,该程序引发以下运行时错误 429:

ActiveX component can't create object.

如果您没有包括程序需要或使用的一个或多个组件,通常会出现运行时错误 429。一个常见的示例就是以下 Microsoft 知识库文章中所述的 File System 对象。

247979 (http://support.microsoft.com/kb/247979/EN-US/)PRB:Error 429 Using MSDN File System Object Programming Example(使用 MSDN File System 对象编程示例时出现错误 429)

如果您没有分发程序可执行文件 (.exe) 所需的正确 Visual Basic 运行库文件,也可能会出现运行时错误 429。确保您通过用打包和部署向导 (PDW) 为程序创建安装程序软件包来分发正确的运行库文件。

出现运行时错误 429 的另一种情况是没有正确注册程序所需的组件之一。要确定哪一行代码导致此错误,最佳的方法是添加跟踪代码。这里建议的方法将写入文件(或事件日志),而不是生成消息框。当您确定哪一行代码引发此错误后,确保有问题的组件已注册。例如,您将错误范围缩小到以下代码行:

Dim fs as Scripting.FileSystemObject
Set fs = New Scripting.FileSystemObject      ' this line throws error 429

File System 对象包含在 Scrrun.dll 文件中。确保此 DLL 文件安装在目标计算机上并且已成功注册。

posted on 2006-03-31 11:21 海之蓝 阅读(3825) 评论(0)  编辑 收藏 引用 所属分类: 系统应用
只有注册用户登录后才能发表评论。