有一个几年前的MFC程序(VC++6编写),用CDaoDatabase访问access数据库。但是估计是用NT4.0+access97环境开发的。现在我是WIN2K+access2000环境下要改这个程序。我用access2000打开原来的数据库(mdb)文件,access提示要转化为新的数据库(mdb)文件后才能对某些数据进行改动,我就把老的mdb文件转成了新的mdb文件,但是却发现程序执行到CDaoDatabase的open()时出错了。(老的文件是可以成功打开的,把新的mdb文件再转成旧格式保存后也能打开)望各位有经验者帮我分析一下原因。

解决方案 »

  1.   

    vc 6不直接支持access 2000的,加
    AfxGetModuleState()->m_dwVersion = 0x0601;  在应用程序初始化函数里。
      

  2.   

    你可以在Access2000中创建好数据库以及其中的表字段,然后在Access2000中用实用工具中的数据库转换工具,将数据库转换为旧版的Access数据库,即可在vc中用CDaoDatabase 以及CDaoRecordset两个类对数据库进行操作了. 
    使用ADO不存在这个问题
      

  3.   

    To laiyiling(最熟悉的陌生人)
    我在Dllmain里加了AfxGetModuleState()->m_dwVersion = 0x0601;不过结果还是不行啊
      

  4.   

    DAO3.51不支持access2000, DAO3.6才支持,在引用中换DAO3.51为DAO3.6才
    是明智的选择