Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

[5分]找不到可安装的ISAM

lwlhy  发表于:2014-07-10 09:32:36  
复制

在导入excel表的时候出现这种情况,无法导入,修复安装OFFICE也没用,百度了也没解决问题

 

Top
飘摇王 发表于:2014-07-16 13:29:14

是不是你导入的代码有错误呢   猜的


导入Excel数值读不到,找不到可安装的 ISAM错误!

http://wenku.baidu.com/link?url=LPeF6LnS5DaZa4MIaKbwSCVY7N1aG9UpLqoBdhPxxdALfaECduqmafkvDR27cXorPmsfHxSbY5TBR_KcsV6HNUZcwTej32Dj04QsDUNuBBq


导入Excel数值读不到,找不到可安装的 ISAM错误! string conn = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source =" + Server.MapPath("file") + "/" + filename + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'";


问题:数据驱动问题,Excel中有一些列是数值,虽然把这个列改为文本存储方式或其它方式,用这种方式读取就是读取不到这些列的数据(string strCon = @" Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Path + ";Extended Properties=Excel 8.0;";),真是奇怪了.试验过修改EXCEL存储方式,格式,然后修改连接串,最后发现原因是数据驱动有问题,改为string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " + Path + ";Extended Properties ='Excel 8.0;HDR=NO;IMEX=1'"; 就正确了,这里需要大家注意的一个问题'Excel 8.0;HDR=NO;IMEX=1',与Excel 8.0;HDR=NO;IMEX=1的区别,没有'号会一直出现找不到可安装的 ISAM错误! 


  参数说明: 


  Microsoft Jet 提供程序用于连接到 Excel 工作簿。在以下连接字符串中,Extended Properties 关键 


  字设置 Excel 特定的属性。“HDR=Yes;”指示第一行中包含列名,而不是数据,“IMEX=1;”通知驱动程 


  序始终将“互混”数据列作为文本读取。注意 


  http://msdn2.microsoft.com/zh-cn/library/ms254978. aspx 


  默认情况下,系统认为 Excel 数据源的第一行包含可用作字段名的列标题。如果不是这种情况,则必须 


  将该设置关闭,否则,第一行数据将会“消失”,而被用作字段名称。这可通过向连接字符串的扩展属性 


  添加可选的 HDR= 设置来完成。默认情况下(无需指定)是 HDR=Yes。如果没有列标题,则需要指定 


  HDR=No;提供程序将字段命名为 F1、F2 等等。因为扩展属性字符串现在包含了多个值,所以必须用引号 


  单独包起来,如下例所示(为便于看清楚,添加了额外的空格)。 

      如第1个中hdr=no的话,where时就会报错 





  ConnStr ="Driver={Microsoft Excel Driver (*.xls)};Dbq=C:\Inetpub\wwwroot\test.xls; 


  Extended Properties='Excel 8.0;HDR=No;IMEX=1'" 


  Extended Properties参数属性这样写 Excel 5.0;HDR=YES;IMEX=1 


  IMEX=1就是指混合型转换为文本 


  select * from 


  OPENROWSET(’MICROSOFT.JET.OLEDB.4.0′ 


  ,’Excel 5.0;HDR=YES;IMEX=2;DATABASE=c:\book1.xls’,[sheet1$]) 


  1)hdr=yes时可以把xls的第1行作为字段看待,如第1个中hdr=no的话,where时就会报错 


  2)[]和美圆$必须要,否则M$可不认这个账 


  希望对做导入EXCEL功能的人有所帮助!



lwlhy 发表于:2014-07-16 15:57:56
你发的这个百度过了没用才发贴的,代码应该没问题,因为之前可以导入,数据是在这里下的,我没改过任何代码。

飘摇王 发表于:2014-07-17 09:00:34
在别的电脑上试试看,再就用最原始的笨办法吧,卸载Office 重新安装,或者Office升个级,都不行就重装系统

AC小于EX 发表于:2014-07-18 20:31:55
 

EXCEL 2007

 Extended Properties=""Excel 12.0;HDT=YES""

 

-----------------------------------------------------------------------------------------------------------------------------------------------

 

对于EXCEL 2003

Extended Properties=""Excel 8.0;HDT=YES""

 



ynfsr 发表于:2014-07-22 18:17:55

在宏中使用TransferDatabase操作导入Excel数据试一试,如果能用,就说明你的代码有错误,可将宏转换为代码。



总记录:5篇  页次:1/1 9 1 :