在利用ado訪問excel的時候如果使用Provider=Microsoft.Jet.OLEDB.4.0;驅動讀取excel會發現可能在讀取超過255個字符的時候字符被截斷或將其再付給其他的rs的時候報異常。
解決方案:1.設置好rs的每列的寬度,如此就不會引起字符串截;
2.修改註冊表http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q189897 ms官方説明。
個人建議修改註冊表比較簡單,但是如果程序在多台機器上用那麽還是使用方案1比較好,畢竟不能修改每個機器的註冊表。
在访问excel的时候出现 “找不到可安裝的 ISAM ”错误可能是如下几种情况:
1.连接字符串出现问题。下面是vb的写法,确认每个参数后面都有分号,Extended Properties参数后面的value
必须要带引号哦。
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:/abcd.xls;Extended Properties=""Excel 8.0;HDR=YES;"";"
2.要访问的文件被其他用户独占打开,此时驱动无法访问文件也会报错。
3.没有Jet 4.0 的驱动,可以在注册表中确认有此驱动。
注册表位置: HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Jet/4.0/Engines/Excel
在读取excel的时候,ODBC会根据第一行的文字来设定返回的recordset的字段类型,当第一行是数字时,就会认为整列都是数字的。结果后面的字符无法读出。
这时,需要把连接字符串改为.ConnectionString = "Data Source=" & Me.ExcelPath & ";Extended Properties=""Excel 8.0;HDR=NO;IMEX=1;"""
其中,IMEX=1;这个属性的意思是,以文本方式读取excel表。 那么就算第一行是数字,后面的字符串也可以正常读出了。