我按照以前的贴子总是报错,说什么没有权限打开或被独占方式打开,根本就没法编译,各位谁有这方面的经验或资料,谢谢!

解决方案 »

  1.   

    给excel建个数据源﹐然后用adoquery连接﹐也就是设置它的connectionstring属性﹐然后sql这样写﹕select  *  from  [Sheet1$]  不能少中括号﹐也不能少$
      

  2.   

    你是不打开了你要读取的Excel文档?
      

  3.   

    第二种方法﹕
    procedure TForm1.Button1Click(Sender: TObject);var
      SqlStr: string;
      SqlStr1: string;
    begin   ///
      SqlStr1:='Data Source='+Trim(Ed_File.Text)+';User ID=Admin;Password=;Extended properties=Excel 8.0';
      SqlStr:=' SELECT *  FROM ';
      SqlStr:=SqlStr+' OpenDataSource( '+''''+'Microsoft.Jet.OLEDB.4.0'+''''+',';
      SqlStr:=SqlStr+''''+SqlStr1+'''';
      SqlStr:=SqlStr+')...sheet1$';
      //Memo1.Text:=SqlStr;
      //Exit;
      with Qry do
           begin
             Sql.Clear;
             Sql.Add(SqlStr);
             open;
             memo1.Text:= SqlStr;
             showmessage('成功! :) ')
           end;
    end;用这个方法时﹐adoquery的connectionstring属性可设置与一个sqlserver数据库连接﹐而且这个数据库所再的机子好象要装又office
    如﹕Qry.ConnectionString:= 'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=;Data Source=127.0.0.1';(如果你本机装了sqlserver的话)
      

  4.   

    我用EXCEL作数据源,某列(A)中有若干条数据为:K14,14,J32,2,17……等,当带字母的第一行,则只能查询到A=(字母开头的数据),反之以数字第一行,则只能查询到数字。在数据库中,可以把字段设成CHAR型,但EXCEL中如何处理呢?
      

  5.   

    没有权限打开或被独占方式打开************************************
    你建一个系统DSN就可以了。