1. 先说安装VB2005和Office2003时遇到的问题,其实也只是个记录,方便以后查阅。
以前安装VB2005和Office2003,完成后,把老板发过来的VB程序打开(引用了Excel的Library),有时会出现引用的Excel Library出现黄色的感叹号,有时又不出现,就算把Excel Library删除,再重新引用也不行。很奇怪。反正刚开始不知道怎么解决,只好重装系统,好象按某个顺序装就OK。
后来发现,原来在编译时,VB2005会把Excel Library拷贝到obj目录,只要把这些Excel Library删除,再重新引用,再编译就OK了。
2. 上段把程序升级了一下,虽然还是用的是VB2005,可是,客户说,要把Office升级到2010。
环境: VB 2005 + 内置Crystal Report + Office2010
2.1 导出程序,把文件名改成 .xlsx,似乎一切OK。因为直接用Excel Library,使用Application,Workbook,Worksheet进行操作,当然没问题。
2.2 同事在公司的服务器安装进行测试,出了无数的问题。
环境: Windows 2003 64位 + Office 2010 32位
2.2.1 先是Crystal Report没办法生成报表了,OK,没装Run Time,找了一个32位的,不行,检查服务器版本,64位的,好吧,再安装64位的run time,问题解决。
2.2.2 数据导入出错,出现"Microsoft.Jet.OLEDB.4.0 provider is not registered on the local machine",找了好久,才发现Office 2010的连接串改变了,把提供商改为“Microsoft.ACE.OLEDB.12.0”,本地OK,上传给同事测,还是有问题,居然出现的是“'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine“,好吧,我查,查来查去查不出,后来一想,会不会是Office的版本?真是坑爹,果然,居然在64位的机器,装32位的Office,好吧,没辙了,总不能随便把Office的版本改了吧?毕竟是国外,版权还是要讲究的,还是改程序的编译得了,把Platform改成x86,问题解决。
小结:在发布程序时,一定要注意检查所依赖平台,软件的版本。