用ado以jet 4.0 驅動讀取Excel Q&A。

       在利用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表。 那么就算第一行是数字,后面的字符串也可以正常读出了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值