高手的问题 (两个程序有冲突)?我的计算机上有一套用Access编写的程序,后我又安装上了用VB+Access编写的另一套程序(调用的DAO3.50 & ADO2.5),但当我再打开原有的Access编写的程序时就发生错误,提示ActiveX不能产生对象,我在程序里定义了Rs对象:
Dim Rs as Object,但Rs对象以下的属性和方法都失效了,请问这是否与安装VB程序时更新了系统的DLL文件有关呢?如果是又怎么解决,怎样在VB程序打包选取对其它程序没影响的DLL文件???

解决方案 »

  1.   

    加入显式声明
    dim rs as adodb.object
      

  2.   

    如:
    dim rs as adodb.recordset
    dim rs as dao.recordset
      

  3.   

    小马哥:
    这些问题有否与DAO版本冲突有关吗?如ACCESS程序是用DAO3.51
    而VB程序是用DAO3.50,而在安装VB程序时更新为DAO3.50,则
    ACCESS程序得不到所需的DAO版本从而发生错误,若果我将VB程
    序的DAO都引用DAO3.51,这会否使它们都不产生冲突呢? 如果我不对ACCESS程序进行显式声明,只是对VB程序修改,哪又
    怎样改呢? 请给我解答以上问题! Thanks !
      

  4.   

    的确有可能。
    你可以将所有的声明改成类似dim rstData as Object的形式,然后在引用中去调ADO或者DAO的引用,把set XXX=new XXX改成set XXX=creatobject("")一类的。
    试试吧,如果是用ADO连接数据库,这样作没问题,如果是用DAO我就不知道了,应该也行吧,自己试一下。
      

  5.   

    安装的时候带上MDAC_TYP.EXE数据包~~~
      

  6.   

    在win2000,office2000下,ACCESS的程序是用DAO3.60或以上的版本,
    但你的VB程序是用了DAO3.50,所以當你在安裝VB程序時更新了系統文件,
    這時系統裡全都是你的VB程序打包的舊文件,而ACCESS程序就無法調用這些組件。
    你隻須在VB打包時不選用DAO3.50和哪些舊文件就OK!