VB中想用EXCEL做数据源,但引用和加载时都出错,详见图片! 系统升级WIN10后,原2007版的OFFICE有一天不知什么原因莫名出错,就改装了Offic2016版。现在想在VB6中用excel做数据库,始终提示.dll错误,不知什么原因。ACCESS引用也有同类问题,不另附图了。请高手出招,谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 去微软下载 Microsoft Access Database Engine 2016 ,安装之后再试试https://www.baidu.com/link?url=uOAySLQOpA1riTchrNrot1xFDraJ7VFGG0QrGKb2w-nYf7NXZAbGEO_siunj3X5PCVOAAt2q1F1Y08HPtWWxd4yDBIfwKDZi-0dvkHncNuG&wd=&eqid=ed446c2c00004007000000065c258fd9 你看看第2张图片那个提示,找一下那个文件,看在哪个目录中。1. C:\Program Files (x86)\Common Files\microsoft shared\OFFICE122. 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等), 最好还是把它改成“长路径”。 1.在两个目录下都找这个文件了,目录1下的ACEODEXL.DLL 是06版的,目录2下ACEODEXL.DLL 最新修订日期是2012年,应该是两个不同的版本(见图)。但目录2下这个版本是我从网上下载后拷贝到目录2下的,因为原来出错提示这个文件不存在,所以下了一个放到提示的目录2下。后续如何操作?删除这个下载的ACEODEXL.DLL ?但我估计问题还是一样。2.另一个困惑是,无论我使用 ODBC数据源管理程序32位还是64位的,都显示我的excel 是32位的,但实际上我安装的office 是2016 64位版的,什么原因? 这个我也不清楚了。我没使用过“数据库引擎”方面的东西,安装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) "C:\Program Files (x86)\Common Files\microsoft shared\",我看了下,这个目录下没有OFFICE16这个文件夹,只有offcie11和office12两个文件夹。 这样啊…… 这就比较麻烦了…… 也许真是“组件不完整”,因为这肯定不是“一个dll就完事”的, 何况“数据库引擎”这么复杂的东西,才一个15KB都不到的dll就搞定?根本不可能。你可以尝试一下把2016卸载了,安装2007试试(可以选择不安装Word、PPT等没用的东西)。如果“可用”的话,不要卸载,直接再安装你的2016。如果还是不能用,我也想不到别的处理方法了。 有那样麻烦吗?下载一个 Excel 12.0 的驱动程序安装一下就解决问题了,这个主要是 Excel 的驱动不匹配引起的。 直接用ADO读取excel就可以了 https://download.csdn.net/download/andrezone/6584773 直接用ADO读取excel就可以了,像操作数据库一样。你都说要当成数据源了。还用引用的方式来读来写? 恭喜老魏再次當選MVP vba 如何判读一个目录是否存在? 如何修改按钮的文字颜色? 一个奇怪的问题 请问VB中设计的菜单可否从一个窗体复制到另一个窗体? 条形码有关问题 请教关于多声卡播放音频的程序,请大家指点 VB控件的问题(问题不难,解答有分) vb 的一个小问题!!!!!!!!!!!! 急!急!!急!!!最多只能给36分 Vfb调用Stdcall、cdcel、COM组件 哪位大佬帮我下载一下这个文件,感谢 联系QQ,3147421497
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等),
最好还是把它改成“长路径”。
2.另一个困惑是,无论我使用 ODBC数据源管理程序32位还是64位的,都显示我的excel 是32位的,但实际上我安装的office 是2016 64位版的,什么原因?
我没使用过“数据库引擎”方面的东西,安装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)
何况“数据库引擎”这么复杂的东西,才一个15KB都不到的dll就搞定?根本不可能。
你可以尝试一下把2016卸载了,安装2007试试(可以选择不安装Word、PPT等没用的东西)。
如果“可用”的话,不要卸载,直接再安装你的2016。
如果还是不能用,我也想不到别的处理方法了。