p_exporttb   @tbname='TR_P_Customer',@path='c:\',@fname='aa.xls'  
  --*/   
  if   exists   (select   *   from   dbo.sysobjects   where   id   =   object_id(N'[dbo].[p_exporttb]')   and   OBJECTPROPERTY(id,   N'IsProcedure')   =   1)   
  drop   procedure   [dbo].[p_exporttb]   
  GO   
    
  create   proc   p_exporttb   
  @tbname   sysname, --要导出的表名,注意只能是表名/视图名   
  @path   nvarchar(1000), --文件存放目录   
  @fname   nvarchar(250)='' --文件名,默认为表名   
  as   
  declare   @err   int,@src   nvarchar(255),@desc   nvarchar(255),@out   int   
  declare   @obj   int,@constr   nvarchar(1000),@sql   varchar(8000),@fdlist   varchar(8000)   
    
  --参数检测   
  if   isnull(@fname,'')='' set   @fname=@tbname+'.xls'   
    
  --检查文件是否已经存在   
  if   right(@path,1)<>'\'   set   @path=@path+'\'   
  create   table   #tb(a   bit,b   bit,c   bit)   
  set   @sql=@path+@fname   
  insert   into   #tb   exec   master..xp_fileexist   @sql   
    
  --数据库创建语句   
  set   @sql=@path+@fname   
  if   exists(select   1   from   #tb   where   a=1)   
  set   @constr='DRIVER={Microsoft   Excel   Driver   (*.xls)};DSN='''';READONLY=FALSE'   
          +';CREATE_DB="'+@sql+'";DBQ='+@sql   
  else   
  set   @constr='Provider=Microsoft.Jet.OLEDB.4.0;Extended   Properties="Excel   5.0;HDR=YES'   
  +';DATABASE='+@sql+'"'   
    
  --连接数据库   
  exec   @err=sp_oacreate   'adodb.connection',@obj   out   
  if   @err<>0   goto   lberr   
    
  exec   @err=sp_oamethod   @obj,'open',null,@constr   
  if   @err<>0   goto   lberr   
    
  --创建表的SQL   
  select   @sql='',@fdlist=''   
  select   @fdlist=@fdlist+','+a.name   
  ,@sql=@sql+',['+a.name+']   '   
  +case   when   b.name   in('char','nchar','varchar','nvarchar')   then   
    'text('+cast(case   when   a.length>255   then   255   else   a.length   end   as   varchar)+')'   
  when   b.name   in('tynyint','int','bigint','tinyint')   then   'int'   
  when   b.name   in('smalldatetime','datetime')   then   'datetime'   
  when   b.name   in('money','smallmoney')   then   'money'   
  else   b.name   end   
  FROM   syscolumns   a   left   join   systypes   b   on   a.xtype=b.xusertype   
  where   b.name   not   in('image','text','uniqueidentifier','sql_variant','ntext','varbinary','binary','timestamp')   
  and   object_id(@tbname)=id   
  select   @sql='create   table   ['+@tbname   
  +']('+substring(@sql,2,8000)+')'   
  ,@fdlist=substring(@fdlist,2,8000)   
    
  exec   @err=sp_oamethod   @obj,'execute',@out   out,@sql   
  if   @err<>0   goto   lberr   
    
  exec   @err=sp_oadestroy   @obj   
    
  --导入数据   
  set   @sql='openrowset(''MICROSOFT.JET.OLEDB.4.0'',''Excel   5.0;HDR=YES   
  ;DATABASE='+@path+@fname+''',['+@tbname+'$])'   
    
  exec('insert   into   '+@sql+'('+@fdlist+')   select   '+@fdlist+'   from   '+@tbname)   
    
  return   
    
  lberr:   
  exec   sp_oageterrorinfo   0,@src   out,@desc   out   
  lbexit:   
  select   cast(@err   as   varbinary(4))   as   错误号   
  ,@src   as   错误源,@desc   as   错误描述   
  select   @sql,@constr,@fdlist   
  go  报这个错 0x80004005 Microsoft JET Database Engine 找不到可安装的 ISAM。 

解决方案 »

  1.   

    难道CSDN真的没有高手了吗
    没人能解决这个问题吗
      

  2.   

    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Me.ofdSelectExcel.FileName & ";Extended Properties=""Excel 8.0;HDR=Yes"""引用里再添加一下就OK了
      

  3.   

    检查''MICROSOFT.JET.OLEDB.4.0'',''Excel   5.0 和你安装的Excel版本是否一致
      

  4.   

    连这个问题都没人解决
    CSDN顶个屁用
      

  5.   

    解决-找不到可安装的 ISAM 
    今天在连接access数据库的时候出现:找不到可安装的 ISAM
    从来没有见过这样的错误信息,于是到google里搜索一下,之后发现原来是在连接的时候连接字符串出了问题
    data source 应该分开写。
    http://yuanweiming84.cnblogs.com/archive/2005/10/07/249701.aspx
      

  6.   

    http://www.connectionstrings.com/
    连接字符串 你看下你的是否都正确