我在同一个窗体上放了 两个控件,实现的功能分别是:将excel中的数据导入到access数据库中,另外一个刷新列表 就是简单的select的语句。如果打开此窗体后,直接刷新可以,能在dbgrid中显示,但是现在我导入数据后,再刷新,结果报错说:microsoft jet数据库引擎找不到对象‘’表名‘’,请确定对象是否存在。当然这些访问组件都是连接好数据库的!!请问该如何解决呢?急死了,谢谢!!

解决方案 »

  1.   

    ////导入数据按钮事件
    var
      OpenDialog:TOpenDialog;
      bl:boolean;
    begin    bl:=true;
        xuesheng_clear(bl);
        label1.Caption :='正在导入数据,请耐心等待......';
        label1.Update ;
      try
        OpenDialog:=TOpenDialog.Create(Self);
        OpenDialog.DefaultExt := 'xls';
        OpenDialog.Filter := 'Microsoft Excel 文件  (*.xls)|*.xls';
        OpenDialog.Execute;
        if OpenDialog.FileName<>'' then
        try
          Screen.Cursor:=crSqlWait;
          xuesheng_adconn.Close;
          xuesheng_adconn .ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+OpenDialog.FileName+';Extended Properties=Excel 8.0;Persist Security Info=False';
          xuesheng_adconn .Open;
          with xuesheng_qry do
          begin
            Close;
            Sql.Clear;
            Sql.Add('SELECT xuehao,xingming,xingbie ,yuanxi ,zhuanye,nianji,loudongno,susheno,xueshengtype FROM [Sheet1$]');
            Prepared:=true;
            Open;
          end;     xuesheng_adconn.BeginTrans;      xuesheng_qry.First;
          while not xuesheng_qry.Eof do
          begin
            with ADOCom do
            begin
              with xuesheng_qry do
                begin
                CommandText:='INSERT INTO student VALUES('+''''+Trim(FieldByName('xuehao').AsString)+''''+','+''''+trim(fieldbyname('xingming').AsString )+''''+','+''''+trim(fieldbyname('xingbie').AsString )+''''+','+''''+trim(fieldbyname('yuanxi').AsString )+''''+','+''''+trim(fieldbyname('zhuanye').AsString )+''''+','+''''+trim(fieldbyname('nianji').AsString )+''''+','+''''+trim(fieldbyname('loudongno').AsString )+''''+','+''''+trim(fieldbyname('susheno').AsString )+''''+','+''''+Trim(FieldByName('xueshengtype').AsString)+''''+')';            Execute;
                end;
            end;
            xuesheng_qry.Next;      end;
          xuesheng_adconn.CommitTrans;
          showmessage('EXCEL数据成功导入ACCESS数据库!');
        except
          xuesheng_adconn.RollbackTrans;
           showmessage('数据导入失败!');
        end;
      finally
        xuesheng_qry.Close;
        xuesheng_adconn.Close ;
        OpenDialog.Free;
        Screen.Cursor:=crDefault;  end;
    end;
      

  2.   

    xuesheng_adconn .ConnectionString在中间已经改变了。是不是系统都是用这个xuesheng_adconn 
      

  3.   

    xuesheng_adconn .ConnectionString在中间已经改变了????
    刚才留言没你说清楚  请问改变了什么?
    我只在这个地方用了 xuesheng_adconn .ConnectionString这种表示形式!
      

  4.   

    哦 我明白你的意思了 只有再这个窗体上用了 xuesheng_adconn 
    其他的地方没有用!
      

  5.   

    用两个Adoconnection一个连Excel,一个连数据库。就不会出错了。
      

  6.   

    对,你先试试linzhisong(無聊)的方法先。
      

  7.   

    高手们啊  我添加了个adoconnection adoquery  程序通过了!结贴!