开发环境:win2000sp4+vb6sp5
工程中需要调用ACCESS97格式的数据库文件,只引用了DAO3.51,打包一切正常(打包用setupfactory6、wise9.02及vb6自带打包工具均试过了 )。在只装有win98se的机子上安装后发现只要有代码调用数据库的窗体就不能正常运行,而只用data控件和dbgrid控件的窗体则一切OK。但是安装OFFICE97后问题就解决了。
请问各位有谁遇到过类似的问题呀?我该怎么解决呢?大家多帮帮忙,先谢过了。

解决方案 »

  1.   

    OLE Automation的原因,没有什么好的解决办法,OLE是Microsoft所有的对象中最乱的时候,以前还在98、2000的时候,我的一个朋友简单查看了一下Ole的版本,发现在2000下,安装不同的补丁、软件,至少将他的ole对象更新了5、6个版本。
    建议不要使用DAO,还是使用ADO的比较好,而且打包是后不要加上以ole开头的两个文件
      

  2.   

    如果我没有记错, 这个问题是由于VB连接数据库所需要的文件没有包含,
    我是把mdac_typ.exe 和 mdac_typ.cab 文件一起包含给用户, 
    如果安装后不能访问数据库, 就安装 mdac
      

  3.   

    谢谢AresChen兄关注:程序中DAO调用特别多,要是一一改为ADO任务量巨大呀。
      

  4.   

    to seakingx:
    能不能提供缺少文件的清单呀,再就是没有ADO的调用安装MDAC是不是有些大才小用呀。我刚开始学习用sf6 和wise 请问它们打包时能正确把mdac加进去吗。
      

  5.   

    不要装最新的Mdac2.7。最好先装一个mdac2.1把
      

  6.   

    昨天刚遇到的问题,在win98装的时候,一直显示adodc错误,靠,我已经装过好几个客户,也是win98但没有问题,后来他们操作计算机的给我说,他装的office xp有点问题,要先装vb后在装office xp 才装的起!我只有给他说,那就再装个vb算了,要不换个操作系统。
    不知道能不能参考一下。反正我听过好多,都说软件用的有问题的时候,干脆装个开发环境。
      

  7.   

    就是(OLE)文件版本問題,
    最簡單就是每台使用的機器上裝一下Office97不就沒問題了?
      

  8.   

    如果你用setup factory 那么有一个运行时支持的选项,里面有一个支持mdac的选项,选中之后你的程序在安装之后就能支持数据库联接了,不过他好像不是默认安装的,需要从网上下载组件。
      

  9.   

    对不起各位,我太粗心了,数据库调用方面一切正常,实际上不能正常调用的窗体都调用了FM20.DLL。大家再帮我想想有没有办法在用户没有安装OFFICE的情况下,也能正确调用FM20.DLL呀?非得安装OFFICE不可吗?
      

  10.   

    去掉安装文件中以ole开头的两个文件吧,试试看看吧。如果你用的是Vb自带的安装程序,在打好包之后,找到安装包存放的路径下,有一个setup.lst文件,删掉其中以ole开头的两个文件,然后运行路径下的一个叫makecab的bat文件,记不清是不是这个文件名了,反正只有一个bat文件,它会重新创建安装包。
    试试吧,也许可以。
      

  11.   

    AresChen兄:
    还是不行,而且系统(WIN98SE)安装后就已经有这两个文件了。另外运行到调用这些窗体——Form.show时系统提示:“运行时错误:“7”内存溢出!”。郁闷……
      

  12.   

    你先试着加几个VB的SP
    有时侯你打包运行后再删除就会出现一引起问题,你再重新装一下VB就可以了
    还有最好换一个平台,到2000下面打包,不就可以搞定了,一样的可以在98下面装
      

  13.   

    所有的系统都会有这两个文件,如果你是在安装过错误的程序的机子上在去安装,当然没有用了。
    还有另外一个办法,不是在安装过office 97的机子上就没事了吗?如果是这样的话,你可以这样试一下,用VB打完的包,会生成一个package目录,下面有一个support目录,support目录下有重新打包用的所有文件,你只要把office 97系统下的ole开头的两个文件copy道support目录下,也不要去改setup.lst中的内容,在重新运行那个bat文件重新生成cab包。
    试试吧,也许可以。
      

  14.   

    多谢各位相帮!问题总算解决了。经过无数次比较检查后,发现原来我的安装包里缺少了FM20CHS.DLL文件,单独把它添加进去后问题就不存在了。以前打包时曾提示过缺少FM20.DEP文件我没有在意,估计是这个原因了。还有就是那位计算机上有此文件呀,方便的话请发给我邮箱:[email protected],注明在CSDN上的ID,收到后另开贴答谢。