博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

关于excel导入access问题(已解决)

Posted on 2008-05-12 23:01  快乐家++  阅读(2371)  评论(0编辑  收藏  举报
问题是导入时数字能导入,字母无法导入  
  例如excel里是这样的:  
  a     b     c  
  1     1w   2w  
  2     3     4  
  l     m     n  
  导入到access时是这样的:  
   
  空     空     空  
  空     空     空  
  2       3         4  
  空     空     空  
   
  主要是数据类型的问题,如果在excel里将列设置为文本,就能够全部导入.  
  但是在asp中怎么写呢?  
   
   
  代码如下:  
   
   
  <%  
  dim   conn  
  dim   conn2  
  set   conn=CreateObject("ADODB.Connection")  
  conn.Open   "Provider=Microsoft.Jet.OLEDB.4.0;Jet   OLEDB:Database   Password=;Data   Source=D:\excel-daoru\test.mdb"  
  set   conn2=CreateObject("ADODB.Connection")  
  conn2.Open   "Provider=Microsoft.Jet.OLEDB.4.0;Jet   OLEDB:Database   Password=;Extended   properties=Excel   8.0;Data   Source=D:\excel-daoru\book1.xls"  
  sql   =   "SELECT   *   FROM   [Sheet1$]"    
  set   rs   =   conn2.execute(sql)  
  while   not   rs.eof  
  sql   =   "insert   into   ziyuan([lianxi],[jianchen],[33])   values('"&   fixsql(rs("0"))   &"','"&   fixsql(rs(1))   &"','"&   fixsql(rs(2))   &"')"    
                                                                                                         
   
  conn.execute(sql)  
  rs.movenext  
  %>  
  <%  
  wend  
  conn.close  
  set   conn   =   nothing  
  conn2.close  
  set   conn2   =   nothing  
  function   fixsql(str)  
  dim   newstr  
  newstr   =   str  
  if   isnull(newstr)   then  
  newstr   =   ""  
  else  
  newstr   =   replace(newstr,"'","''")  
  end   if  
  fixsql   =   newstr  
  end   function  
  %>  





问题解决了,只要改成:  
  conn2.Open   "Provider=Microsoft.Jet.OLEDB.4.0;Jet   OLEDB:Database   Password=;Extended   properties='Excel   8.0;IMEX=1';Data   Source="&Server.mapPath("book1.xls")  
   
  就可以了,最重要的是IMEX=1