系统升级WIN10后,原2007版的OFFICE有一天不知什么原因莫名出错,就改装了Offic2016版。现在想在VB6中用excel做数据库,始终提示.dll错误,不知什么原因。ACCESS引用也有同类问题,不另附图了。请高手出招,谢谢。

解决方案 »

  1.   

    去微软下载 Microsoft Access Database Engine 2016 ,安装之后再试试https://www.baidu.com/link?url=uOAySLQOpA1riTchrNrot1xFDraJ7VFGG0QrGKb2w-nYf7NXZAbGEO_siunj3X5PCVOAAt2q1F1Y08HPtWWxd4yDBIfwKDZi-0dvkHncNuG&wd=&eqid=ed446c2c00004007000000065c258fd9
      

  2.   

    你看看第2张图片那个提示,找一下那个文件,看在哪个目录中。
    1. C:\Program Files (x86)\Common Files\microsoft shared\OFFICE12
    2. C:\Program Files\Common Files\microsoft shared\OFFICE12上面“1”中所示的文件夹中,有没有 ACEODEXL.DLL ?
    如果有,你在注册表中搜索一下“数值”: ACEODEXL.DLL
    凡是找到如上图2中提示的那个“路径”的地方,全部改成我所说的“1.”的路径。如果没有,“2”的目录中有没有?如果在这儿有(可能性很小),那是组件不兼容,没法了。另外一种可能:
     文件夹“OFFICE12”是Office2007的组件路径,而你安装的是“Office 2016”了,
    那个路径应该是一个“更大的数值”而不是12(具体多少我不清楚),
    你看看你的Office组件具体是多少,你把注册表中相应的 ACEODEXL.DLL 的路径改正一下试试。
    并且,那个“短路径”与你系统盘中未必相符(因为你“升级系统”,有“重复”会造成~3、~4等),
     最好还是把它改成“长路径”。
      

  3.   

    1.在两个目录下都找这个文件了,目录1下的ACEODEXL.DLL 是06版的,目录2下ACEODEXL.DLL 最新修订日期是2012年,应该是两个不同的版本(见图)。但目录2下这个版本是我从网上下载后拷贝到目录2下的,因为原来出错提示这个文件不存在,所以下了一个放到提示的目录2下。后续如何操作?删除这个下载的ACEODEXL.DLL ?但我估计问题还是一样。
    2.另一个困惑是,无论我使用 ODBC数据源管理程序32位还是64位的,都显示我的excel 是32位的,但实际上我安装的office 是2016 64位版的,什么原因?
      

  4.   

    这个我也不清楚了。
    我没使用过“数据库引擎”方面的东西,安装VB6时我也把很多数据库相关组件去掉的。看文件的版本信息,我的电脑中那个dll除了“时间”是20:13跟你的有差异之外,其它似乎都一样。
    并且我的电脑中安装的就是32位的07版,目录1中还有很多“有点相似”的dll文件。
    (ACE****.dll 就有23个,另外还有三个“子目录”中有一大堆文件)
    你的那个目录中,如果只有几个、十来个文件,估计07版的组件是无法用的。
    你安装的是2016了,看看“C:\Program Files (x86)\Common Files\microsoft shared\OFFICE16”
     中是不是有ACEODEXL.DLL啊……
    也许你的这些“驱动”,应该更换成16版的组件。
    (反正“不正常”,可以尝试regsvr32 /u  07版的dll,然后重新注册16版的那个dll)
      

  5.   

    "C:\Program Files (x86)\Common Files\microsoft shared\",我看了下,这个目录下没有OFFICE16这个文件夹,只有offcie11和office12两个文件夹。
      

  6.   

    这样啊…… 这就比较麻烦了…… 也许真是“组件不完整”,因为这肯定不是“一个dll就完事”的,
     何况“数据库引擎”这么复杂的东西,才一个15KB都不到的dll就搞定?根本不可能。
    你可以尝试一下把2016卸载了,安装2007试试(可以选择不安装Word、PPT等没用的东西)。
    如果“可用”的话,不要卸载,直接再安装你的2016。
    如果还是不能用,我也想不到别的处理方法了。
      

  7.   

    有那样麻烦吗?下载一个 Excel 12.0 的驱动程序安装一下就解决问题了,这个主要是 Excel 的驱动不匹配引起的。
      

  8.   

    直接用ADO读取excel就可以了
      

  9.   

    https://download.csdn.net/download/andrezone/6584773
      

  10.   

    直接用ADO读取excel就可以了,像操作数据库一样。你都说要当成数据源了。还用引用的方式来读来写?