excel 导入access 提示: missing connection or connectionstring错误,但是我找不到原因是什么,如何解决!@!procedure TForm1.Button1Click(Sender: TObject);
var
  OpenDialog:TOpenDialog;
  iCount:integer;
begin
  if application.MessageBox('导入前将删除原考生基本信息表', '警告! ',MB_OKCANCEL+MB_ICONQUESTION)=IDok then
  try
    OpenDialog:=TOpenDialog.Create(Self);
    OpenDialog.DefaultExt := 'xls';
    OpenDialog.Filter := 'Microsoft Excel 文件  (*.xls)|*.xls';
    OpenDialog.Execute;
    if OpenDialog.FileName<>'' then
    try
      Screen.Cursor:=crSqlWait;
      ADOConExcel.Close;
      ADOConExcel.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+OpenDialog.FileName+';Extended Properties=Excel 8.0;Persist Security Info=False';
     ADOConExcel.Open;      ADOQryExcel.Close;
      ADOQryExcel.Sql.Clear;
      ADOQryExcel.Sql.Add('SELECT 学校,考号,姓名,性别 FROM [Sheet1$]');
      ADOQryExcel.Prepared:=true;
      ADOQryExcel.Open;     ADOConacc.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+extractfilepath(application.ExeName)+'\db\tybm.mdb;Persist Security Info=False';
     ADOConacc.Connected:=true;
     ADOConacc.Open;
     
      ADOQryExcel.First;
      while not ADOQryExcel.Eof do
      begin
         ADOacc.Close;
         ADOacc.SQL.Clear;
         ADOacc.Connection:=ADOConacc;
         ADOacc.SQL.Add(' INSERT INTO ks VALUES('+''''+Trim(ADOQryExcel.FieldByName('考号').AsString)+''''+','+Trim(ADOQryExcel.FieldByName('学校').AsString)+','+Trim(ADOQryExcel.FieldByName('姓名').AsString)+','+Trim(ADOQryExcel.FieldByName('性别').AsString)+')');
         ADOacc.ExecSQL ;
         ADOacc.Close;        ADOQryExcel.Next;
    end;
       showmessage('导入成功!');
    except
      showmessage('导入失败!');
    end;
  finally
    ADOQryExcel.Close;
    ADOConExcel.Close;
    OpenDialog.Free;
    Screen.Cursor:=crDefault;  end;
end;end.

解决方案 »

  1.   

    設定connectionstring後,不要open。
    如果你要事先連接,為什么不要connection?
      

  2.   

    TADOQuery控件需要一个TADOConnection组件已没有给她,光给一个ConnectionString是不够的,毕竟数据库连接的工作是TADOConnection来完成的!
      

  3.   

    因为你没有说明错误在哪里发生,所以不好判断
    不过看样子应该是ADOConExcel.Open的时间不对,应该在给定sql语句后open
      

  4.   


          ADOConExcel.Close;
          ADOConExcel.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+OpenDialog.FileName+';Extended Properties=Excel 8.0;Persist Security Info=False';
         //ADOConExcel.Open;  把这句注释掉