请教ADO对象和DAO对象不能共存的方法  我的工程同时ADO对象和DAO对象,运行出现“类型不匹配”的情况,已知这是它们冲突的现象,它们真的不能共存吗?请各位指点一下解决方法。 

解决方案 »

  1.   

    ADO与DAO有许多相同的子对象,所以定义这些子对象时必须明确说明它是属于ADO还是DAO。
      

  2.   

    当然可以共存了,问题是你在做如下类似的变量声明时:dim rs as Recordset要注意
    因为如果你先加载得是ADO后加载的是DAO,那么这句就相当于dim rs as ADODB.Recordset;而如果加载顺序是相反的,那么这句就相当于dim rs as DAO.Recordset
    所以,如果出现下面的情况:你先在Reference中加载了ADO,然后有加载了DAO,在程序中还出现如下的语句:
    dim rs as Recordset
    dim db as Database
    set rs=db.OpenRecordset("your source")
    那么第三句就会出现你所说的“类型不批配”的错误,因为在这里你的rs实际上是ADODB.Recordset类型,而db.OpenRecordset返回的是DAO.Recordset
    当然了,如果你现在加载的是DAO,那么dim rs as Recordset就相当于
    dim rs as DAO.Recordset
      

  3.   

    huang_yi_cn
    说得太详细了
    就是这么一会事
    所以定义对象时一定要写全
    不能偷懒
      

  4.   

    DAO用前绑定,ADO用后绑定就是
      

  5.   

    声明的时候注意,如果是这样:
    dim daoRs as recordset
    dim adoRs as recordset
    肯定是不行的,VB不知道你要用哪个库,改成这样:
    dim daoRs as DAO.recordset
    dim adoRs as ADODBrecordset问题应该可以解决
      

  6.   

    可以同存的用ADO时:
    dim rs as new adodb.recordset注意这个adodb这个关键字。